You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by ru...@apache.org on 2022/06/21 10:47:44 UTC
[calcite] branch main updated: [CALCITE-5177] Query loses hint after decorrelation (minor follow-up)
This is an automated email from the ASF dual-hosted git repository.
rubenql pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 4a01c99e9d [CALCITE-5177] Query loses hint after decorrelation (minor follow-up)
4a01c99e9d is described below
commit 4a01c99e9d1fdf8742e909159a2a0292d8519e7e
Author: rubenada <ru...@gmail.com>
AuthorDate: Mon Jun 13 09:57:55 2022 +0100
[CALCITE-5177] Query loses hint after decorrelation (minor follow-up)
---
core/src/main/java/org/apache/calcite/plan/RelOptUtil.java | 4 ++++
core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java b/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java
index c7b5c7cbcc..0b5f1ddd12 100644
--- a/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java
+++ b/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java
@@ -475,6 +475,10 @@ public abstract class RelOptUtil {
* or {@code newRel} directly if one of them are not {@link Hintable}
*/
public static RelNode copyRelHints(RelNode originalRel, RelNode newRel, boolean filterHints) {
+ if (originalRel == newRel && !filterHints) {
+ return originalRel;
+ }
+
if (originalRel instanceof Hintable
&& newRel instanceof Hintable
&& ((Hintable) originalRel).getHints().size() > 0) {
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java b/core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java
index 3790026bf7..1862725f84 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java
@@ -297,7 +297,7 @@ public class RelFieldTrimmer implements ReflectiveVisitor {
assert newFieldCount > 0 : "rel has no fields after trim: " + rel;
}
if (newRel.equals(rel)) {
- return result(rel, mapping, rel);
+ return result(rel, mapping);
}
return trimResult;
}