This is an automated email from the ASF dual-hosted git repository.
sereda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new ad5cbdb [CALCITE-4965] IS NOT NULL failed in Elasticsearch Adapter
ad5cbdb is described below
commit ad5cbdbe27e18a779372785c1af3a3baa80c52a6
Author: ILuffZhe <[email protected]>
AuthorDate: Mon Jan 17 22:58:41 2022 +0800
[CALCITE-4965] IS NOT NULL failed in Elasticsearch Adapter
---
core/src/main/java/org/apache/calcite/util/Bug.java | 5 -----
.../apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java | 3 +++
.../org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java | 7 ++-----
3 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/util/Bug.java
b/core/src/main/java/org/apache/calcite/util/Bug.java
index b759341..602984c 100644
--- a/core/src/main/java/org/apache/calcite/util/Bug.java
+++ b/core/src/main/java/org/apache/calcite/util/Bug.java
@@ -205,11 +205,6 @@ public abstract class Bug {
* In Elasticsearch adapter, a range predicate should be translated to a
range query</a> is
* fixed. */
public static final boolean CALCITE_4645_FIXED = false;
- /** Whether
- * <a
href="https://issues.apache.org/jira/browse/CALCITE-4965">[CALCITE-4965]
- * IS NOT NULL failed in Elasticsearch Adapter</a> is
- * fixed. */
- public static final boolean CALCITE_4965_FIXED = false;
/**
* Use this to flag temporary code.
diff --git
a/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java
b/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java
index b8e5c45..0f48de9 100644
---
a/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java
+++
b/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java
@@ -604,6 +604,9 @@ class PredicateAnalyzer {
public abstract QueryExpression isTrue();
public static QueryExpression create(TerminalExpression expression) {
+ if (expression instanceof CastExpression) {
+ expression = CastExpression.unpack(expression);
+ }
if (expression instanceof NamedFieldExpression) {
return new SimpleQueryExpression((NamedFieldExpression) expression);
diff --git
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
index 26a009c..2245dba 100644
---
a/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
+++
b/elasticsearch/src/test/java/org/apache/calcite/adapter/elasticsearch/BooleanLogicTest.java
@@ -21,7 +21,6 @@ import org.apache.calcite.schema.SchemaPlus;
import org.apache.calcite.schema.impl.ViewTable;
import org.apache.calcite.schema.impl.ViewTableMacro;
import org.apache.calcite.test.CalciteAssert;
-import org.apache.calcite.util.Bug;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.ImmutableMap;
@@ -119,10 +118,8 @@ class BooleanLogicTest {
assertEmpty("select * from view where num > 42 and num < 42 and num = 42");
assertEmpty("select * from view where num > 42 or num < 42 and num = 42");
assertSingle("select * from view where num > 42 and num < 42 or num = 42");
- if (Bug.CALCITE_4965_FIXED) {
- assertSingle("select * from view where num > 42 or num < 42 or num =
42");
- assertEmpty("select * from view where num is null");
- }
+ assertSingle("select * from view where num > 42 or num < 42 or num = 42");
+ assertEmpty("select * from view where num is null");
assertSingle("select * from view where num >= 42 and num <= 42 and num =
42");
assertEmpty("select * from view where num >= 42 and num <= 42 and num <>
42");
assertEmpty("select * from view where num < 42");