You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2021/09/20 11:02:44 UTC
[calcite] branch master updated: [CALCITE-4784] Ensure
Correlate#requiredColumns is subset of columns in left relation
This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new 8ddb3f8 [CALCITE-4784] Ensure Correlate#requiredColumns is subset of columns in left relation
8ddb3f8 is described below
commit 8ddb3f82e997d1a10619fc37ff7900823c7c0b91
Author: Stamatis Zampetakis <za...@gmail.com>
AuthorDate: Fri Sep 17 16:31:40 2021 +0200
[CALCITE-4784] Ensure Correlate#requiredColumns is subset of columns in left relation
Enforce the implicit class invariant (see Correlate#getRequiredColumns)
via assertion to prevent construction of invalid plans and fail fast.
---
core/src/main/java/org/apache/calcite/rel/core/Correlate.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Correlate.java b/core/src/main/java/org/apache/calcite/rel/core/Correlate.java
index c73e7e5..d7d3602 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Correlate.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Correlate.java
@@ -122,7 +122,10 @@ public abstract class Correlate extends BiRel {
//~ Methods ----------------------------------------------------------------
@Override public boolean isValid(Litmus litmus, @Nullable Context context) {
+ ImmutableBitSet leftColumns = ImmutableBitSet.range(left.getRowType().getFieldCount());
return super.isValid(litmus, context)
+ && litmus.check(leftColumns.contains(requiredColumns),
+ "Required columns {} not subset of left columns {}", requiredColumns, leftColumns)
&& RelOptUtil.notContainsCorrelation(left, correlationId, litmus);
}