PHOENIX-1956 SELECT (FALSE OR FALSE) RETURNS TRUE
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/c2fee39e Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/c2fee39e Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/c2fee39e Branch: refs/heads/calcite Commit: c2fee39efff87930ab3a00d4ed36ec32a493cf7d Parents: 45a919f Author: James Taylor <jtay...@salesforce.com> Authored: Fri May 8 13:13:44 2015 -0700 Committer: James Taylor <jtay...@salesforce.com> Committed: Fri May 8 13:14:24 2015 -0700 ---------------------------------------------------------------------- .../org/apache/phoenix/end2end/EvaluationOfORIT.java | 11 +++++++++++ .../org/apache/phoenix/compile/ExpressionCompiler.java | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/c2fee39e/phoenix-core/src/it/java/org/apache/phoenix/end2end/EvaluationOfORIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/EvaluationOfORIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/EvaluationOfORIT.java index c9cc1e2..4355036 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/EvaluationOfORIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/EvaluationOfORIT.java @@ -19,6 +19,7 @@ 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; @@ -34,6 +35,16 @@ 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); http://git-wip-us.apache.org/repos/asf/phoenix/blob/c2fee39e/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java index 92899a6..66c1b85 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java @@ -71,7 +71,6 @@ import org.apache.phoenix.expression.function.ArrayAnyComparisonExpression; import org.apache.phoenix.expression.function.ArrayElemRefExpression; import org.apache.phoenix.expression.function.RoundDecimalExpression; import org.apache.phoenix.expression.function.RoundTimestampExpression; -import org.apache.phoenix.expression.function.UDFExpression; import org.apache.phoenix.parse.AddParseNode; import org.apache.phoenix.parse.AndParseNode; import org.apache.phoenix.parse.ArithmeticParseNode; @@ -261,7 +260,7 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio determinism = determinism.combine(child.getDeterminism()); } if (children.size() == 0) { - return LiteralExpression.newConstant(true, determinism); + return LiteralExpression.newConstant(false, determinism); } if (children.size() == 1) { return children.get(0);