/** | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package org.apache.phoenix.end2end; | |
import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; | |
import static org.junit.Assert.assertEquals; | |
import static org.junit.Assert.assertFalse; | |
import static org.junit.Assert.assertTrue; | |
import java.sql.Connection; | |
import java.sql.DriverManager; | |
import java.sql.PreparedStatement; | |
import java.sql.ResultSet; | |
import java.sql.SQLException; | |
import java.util.Properties; | |
import org.apache.phoenix.util.PropertiesUtil; | |
import org.junit.Test; | |
public class EvaluationOfORIT extends ParallelStatsDisabledIT{ | |
@Test | |
public void testFalseOrFalse() throws SQLException { | |
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); | |
Connection conn = DriverManager.getConnection(getUrl(), props); | |
ResultSet rs = conn.createStatement().executeQuery("SELECT (FALSE OR FALSE) AS B FROM \"SYSTEM\".\"CATALOG\" LIMIT 1"); | |
assertTrue(rs.next()); | |
assertFalse(rs.getBoolean(1)); | |
conn.close(); | |
} | |
@Test | |
public void testPKOrNotPKInOREvaluation() throws SQLException { | |
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); | |
Connection conn = DriverManager.getConnection(getUrl(), props); | |
String tableName = generateUniqueName(); | |
conn.setAutoCommit(false); | |
String create = "CREATE TABLE " + tableName + " ( ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(50))"; | |
conn.createStatement().execute(create); | |
PreparedStatement stmt = conn.prepareStatement( | |
"upsert into " + | |
tableName + " VALUES (?, ?)"); | |
stmt.setInt(1, 1); | |
stmt.setString(2, "Tester1"); | |
stmt.execute(); | |
stmt.setInt(1,2); | |
stmt.setString(2, "Tester2"); | |
stmt.execute(); | |
stmt.setInt(1,3); | |
stmt.setString(2, "Tester3"); | |
stmt.execute(); | |
stmt.setInt(1,4); | |
stmt.setString(2, "LikeTester1"); | |
stmt.execute(); | |
stmt.setInt(1,5); | |
stmt.setString(2, "LikeTester2"); | |
stmt.execute(); | |
stmt.setInt(1,6); | |
stmt.setString(2, "LikeTesterEnd"); | |
stmt.execute(); | |
stmt.setInt(1,7); | |
stmt.setString(2, "LikeTesterEnd2"); | |
stmt.execute(); | |
stmt.setInt(1,8); | |
stmt.setString(2, "Tester3"); | |
stmt.execute(); | |
stmt.setInt(1,9); | |
stmt.setString(2, "Tester4"); | |
stmt.execute(); | |
stmt.setInt(1,10); | |
stmt.setString(2, "Tester5"); | |
stmt.execute(); | |
stmt.setInt(1,11); | |
stmt.setString(2, "Tester6"); | |
stmt.execute(); | |
stmt.setInt(1,12); | |
stmt.setString(2, "tester6"); | |
stmt.execute(); | |
stmt.setInt(1,13); | |
stmt.setString(2, "lester1"); | |
stmt.execute(); | |
stmt.setInt(1,14); | |
stmt.setString(2, "le50ster1"); | |
stmt.execute(); | |
stmt.setInt(1,15); | |
stmt.setString(2, "LE50ster1"); | |
stmt.execute(); | |
stmt.setInt(1,16); | |
stmt.setString(2, "LiketesterEnd"); | |
stmt.execute(); | |
stmt.setInt(1,17); | |
stmt.setString(2, "la50ster1"); | |
stmt.execute(); | |
stmt.setInt(1,18); | |
stmt.setString(2, "lA50ster0"); | |
stmt.execute(); | |
stmt.setInt(1,19); | |
stmt.setString(2, "lA50ster2"); | |
stmt.execute(); | |
stmt.setInt(1,20); | |
stmt.setString(2, "la50ster0"); | |
stmt.execute(); | |
stmt.setInt(1,21); | |
stmt.setString(2, "la50ster2"); | |
stmt.execute(); | |
stmt.setInt(1,22); | |
stmt.setString(2, "La50ster3"); | |
stmt.execute(); | |
stmt.setInt(1,23); | |
stmt.setString(2, "la50ster3"); | |
stmt.execute(); | |
stmt.setInt(1,24); | |
stmt.setString(2, "l[50ster3"); | |
stmt.execute(); | |
stmt.setInt(1,25); | |
stmt.setString(2, "Tester1"); | |
stmt.execute(); | |
stmt.setInt(1,26); | |
stmt.setString(2, "Tester100"); | |
stmt.execute(); | |
conn.commit(); | |
String select = "Select * from " + tableName + " where ID=6 or Name between 'Tester1' and 'Tester3'"; | |
ResultSet rs; | |
rs = conn.createStatement().executeQuery(select); | |
assertTrue(rs.next()); | |
assertEquals(1,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(2,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(3,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(6,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(8,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(25,rs.getInt(1)); | |
assertTrue(rs.next()); | |
assertEquals(26,rs.getInt(1)); | |
conn.close(); | |
} | |
} |