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

mbudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 56f47eef5c12098d92f644ee917da2423ee3627e
Author: suibianwanwan <[email protected]>
AuthorDate: Mon Oct 7 16:38:19 2024 +0800

    [CALCITE-6614] InnodbFilterRule incorrectly constructs condition when 
creating InnodbFilter
---
 .../src/main/java/org/apache/calcite/adapter/innodb/InnodbRules.java | 5 ++++-
 .../apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java   | 3 +--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbRules.java 
b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbRules.java
index 8c66c0b4b6..2b92a6e664 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbRules.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbRules.java
@@ -184,10 +184,13 @@ public class InnodbRules {
       final IndexCondition indexCondition =
           translator.translateMatch(filter.getCondition());
 
+      RexNode condition =
+          RexUtil.composeConjunction(cluster.getRexBuilder(),
+              indexCondition.getPushDownConditions());
       InnodbFilter innodbFilter =
           InnodbFilter.create(cluster, traitSet,
               convert(filter.getInput(), InnodbRel.CONVENTION),
-              filter.getCondition(), indexCondition, tableDef,
+              condition, indexCondition, tableDef,
               scan.getForceIndexName());
 
       // if some conditions can be pushed down, we left the remainder 
conditions
diff --git 
a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
 
b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
index 858ddbb3a0..a30273ac41 100644
--- 
a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
+++ 
b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
@@ -73,8 +73,7 @@ public class InnodbToEnumerableConverter extends ConverterImpl
 
   @Override public @Nullable RelOptCost computeSelfCost(RelOptPlanner planner,
       RelMetadataQuery mq) {
-    final RelOptCost cost = requireNonNull(super.computeSelfCost(planner, mq));
-    return cost.multiplyBy(.1);
+    return requireNonNull(super.computeSelfCost(planner, mq));
   }
 
   static List<String> innodbFieldNames(final RelDataType rowType) {

Reply via email to