You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by mb...@apache.org on 2024/11/13 23:47:41 UTC
(calcite) 02/04: [CALCITE-6614] InnodbFilterRule incorrectly constructs condition when creating InnodbFilter
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 <su...@foxmail.com>
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) {