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 <rube...@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; }