This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch ty/TableModelGrammar
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/ty/TableModelGrammar by this 
push:
     new f9a55a1dff1 push PredicatePushIntoIndexScanChecker
f9a55a1dff1 is described below

commit f9a55a1dff15bddb1f7914e99f26a4fd5dbd16f1
Author: JackieTien97 <[email protected]>
AuthorDate: Sun Apr 21 09:27:41 2024 +0800

    push PredicatePushIntoIndexScanChecker
---
 .../PredicatePushIntoIndexScanChecker.java         | 29 +++++++---------------
 1 file changed, 9 insertions(+), 20 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoIndexScanChecker.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoIndexScanChecker.java
index aafad07faa7..3f7488205df 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoIndexScanChecker.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoIndexScanChecker.java
@@ -27,7 +27,6 @@ import org.apache.iotdb.db.relational.sql.tree.InPredicate;
 import org.apache.iotdb.db.relational.sql.tree.IsNotNullPredicate;
 import org.apache.iotdb.db.relational.sql.tree.IsNullPredicate;
 import org.apache.iotdb.db.relational.sql.tree.LikePredicate;
-import org.apache.iotdb.db.relational.sql.tree.Literal;
 import org.apache.iotdb.db.relational.sql.tree.LogicalExpression;
 import org.apache.iotdb.db.relational.sql.tree.NotExpression;
 import org.apache.iotdb.db.relational.sql.tree.NullIfExpression;
@@ -39,6 +38,8 @@ import 
org.apache.iotdb.db.relational.sql.tree.SymbolReference;
 import java.util.List;
 import java.util.Set;
 
+import static 
org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoScanChecker.isSymbolReference;
+
 public class PredicatePushIntoIndexScanChecker extends 
PredicateVisitor<Boolean, Void> {
 
   private final Set<String> idOrAttributeColumnNames;
@@ -79,7 +80,11 @@ public class PredicatePushIntoIndexScanChecker extends 
PredicateVisitor<Boolean,
     }
     List<Expression> children = node.getTerms();
     for (Expression child : children) {
-      if (!process(child, context)) {
+      Boolean result = process(child, context);
+      if (result == null) {
+        throw new IllegalStateException("Should never return null.");
+      }
+      if (!result) {
         return Boolean.FALSE;
       }
     }
@@ -95,7 +100,7 @@ public class PredicatePushIntoIndexScanChecker extends 
PredicateVisitor<Boolean,
   protected Boolean visitComparisonExpression(ComparisonExpression node, Void 
context) {
     if (node.getOperator() == ComparisonExpression.Operator.EQUAL) {
       return (isIdOrAttributeColumn(node.getLeft()) && 
isStringLiteral(node.getRight()))
-          || (isIdOrAttributeColumn(node.getRight()) && 
isLiteral(node.getLeft()));
+          || (isIdOrAttributeColumn(node.getRight()) && 
isStringLiteral(node.getLeft()));
     } else {
       return Boolean.FALSE;
     }
@@ -128,26 +133,10 @@ public class PredicatePushIntoIndexScanChecker extends 
PredicateVisitor<Boolean,
 
   @Override
   protected Boolean visitBetweenPredicate(BetweenPredicate node, Void context) 
{
-    return (isSymbolReference(node.getValue())
-            && isLiteral(node.getMin())
-            && isLiteral(node.getMax()))
-        || (isLiteral(node.getValue())
-            && isSymbolReference(node.getMin())
-            && isLiteral(node.getMax()))
-        || (isLiteral(node.getValue())
-            && isLiteral(node.getMin())
-            && isSymbolReference(node.getMax()));
-  }
-
-  public static boolean isLiteral(Expression expression) {
-    return expression instanceof Literal;
+    return Boolean.FALSE;
   }
 
   public static boolean isStringLiteral(Expression expression) {
     return expression instanceof StringLiteral;
   }
-
-  public static boolean isSymbolReference(Expression expression) {
-    return expression instanceof SymbolReference;
-  }
 }

Reply via email to