[CALCITE-1526] Use Strong to infer whether a predicate's inputs may be null
authorJulian Hyde <jhyde@apache.org>
Thu, 8 Dec 2016 18:43:48 +0000 (10:43 -0800)
committerJulian Hyde <jhyde@apache.org>
Fri, 9 Dec 2016 23:19:27 +0000 (15:19 -0800)
commit584432cacdd3cbe87c974e3657b3c93d811b65df
tree84876cb456e016c6e5691f7f5624466efcdafb4a
parente641211fd72a4f4a24f0f4644034c4b2f3c040ca
[CALCITE-1526] Use Strong to infer whether a predicate's inputs may be null

The goal is to combine into one place the logic for deducing whether
expressions are null.

Also, add SqlKind for COALESCE and NULLIF functions,
and baton down a flapping JDBC adapter test.
14 files changed:
core/src/main/java/org/apache/calcite/plan/RelOptUtil.java
core/src/main/java/org/apache/calcite/plan/RexImplicationChecker.java
core/src/main/java/org/apache/calcite/plan/Strong.java
core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java
core/src/main/java/org/apache/calcite/rex/RexUtil.java
core/src/main/java/org/apache/calcite/sql/SqlKind.java
core/src/main/java/org/apache/calcite/sql/fun/SqlCoalesceFunction.java
core/src/main/java/org/apache/calcite/sql/fun/SqlNullifFunction.java
core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
core/src/test/java/org/apache/calcite/sql/test/SqlOperatorBaseTest.java
core/src/test/java/org/apache/calcite/test/JdbcAdapterTest.java
core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
core/src/test/java/org/apache/calcite/test/RexImplicationCheckerTest.java
core/src/test/java/org/apache/calcite/test/RexProgramTest.java