blob: 68ef81ce4ff644ba97ccd717c6e89c17d5b958a3 [file] [log] [blame]
/**
* 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 BaseHBaseManagedTimeIT{
@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);
conn.setAutoCommit(false);
String create = "CREATE TABLE DIE ( ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(50))";
PreparedStatement createStmt = conn.prepareStatement(create);
createStmt.execute();
PreparedStatement stmt = conn.prepareStatement(
"upsert into " +
"DIE 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 DIE 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();
}
}