You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2021/12/29 06:30:45 UTC
[ignite] branch sql-calcite updated: IGNITE-16228 Fix SetOp execution node rewindability - Fixes #9706.
This is an automated email from the ASF dual-hosted git repository.
alexpl pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/sql-calcite by this push:
new 1706f02 IGNITE-16228 Fix SetOp execution node rewindability - Fixes #9706.
1706f02 is described below
commit 1706f0281f530c4bc5f6de8bb594fd17d44c83cf
Author: Aleksey Plekhanov <pl...@gmail.com>
AuthorDate: Wed Dec 29 11:22:31 2021 +0500
IGNITE-16228 Fix SetOp execution node rewindability - Fixes #9706.
Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
.../query/calcite/exec/rel/AbstractSetOpNode.java | 1 +
.../query/calcite/integration/SetOpIntegrationTest.java | 14 ++++++++++++++
.../subquery/scalar/test_complex_correlated_subquery.test | 8 ++++++++
.../scalar/test_complex_correlated_subquery.test_ignore | 1 -
4 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractSetOpNode.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractSetOpNode.java
index 6e60a88..4f7bc59 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractSetOpNode.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractSetOpNode.java
@@ -121,6 +121,7 @@ public abstract class AbstractSetOpNode<Row> extends AbstractNode<Row> {
@Override protected void rewindInternal() {
requested = 0;
waiting = 0;
+ curSrcIdx = 0;
grouping.groups.clear();
}
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/SetOpIntegrationTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/SetOpIntegrationTest.java
index 0a85fae..2676706 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/SetOpIntegrationTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/SetOpIntegrationTest.java
@@ -417,4 +417,18 @@ public class SetOpIntegrationTest extends AbstractBasicIntegrationTest {
assertEquals(2, rows.size());
assertEquals(2, F.size(rows, r -> r.get(0).equals("Igor1")));
}
+
+ /**
+ * Test that set op node can be rewinded.
+ */
+ @Test
+ public void testSetOpRewindability() {
+ executeSql("CREATE TABLE test(i INTEGER)");
+ executeSql("INSERT INTO test VALUES (1), (2)");
+
+ assertQuery("SELECT (SELECT i FROM test EXCEPT SELECT test.i) FROM test")
+ .returns(1)
+ .returns(2)
+ .check();
+ }
}
diff --git a/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test b/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test
index 786a52c..0536be5 100644
--- a/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test
+++ b/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test
@@ -63,6 +63,14 @@ SELECT i, (SELECT SUM(s1.i) FROM integers s1 FULL OUTER JOIN integers s2 ON s1.i
statement error
SELECT i, (SELECT row_number() OVER (ORDER BY i)) FROM integers i1 ORDER BY i;
+# except with correlated expression
+query II
+SELECT i, (SELECT i FROM integers WHERE i IS NOT NULL EXCEPT SELECT i FROM integers WHERE i<>i1.i) AS j FROM integers i1 WHERE i IS NOT NULL ORDER BY i;
+----
+1 1
+2 2
+3 3
+
# uncorrelated query inside correlated query
query IR
SELECT i, (SELECT (SELECT SUM(i) FROM integers)+42+i1.i) AS j FROM integers i1 ORDER BY i;
diff --git a/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test_ignore b/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test_ignore
index c98bb24..5a2e4c3 100644
--- a/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test_ignore
+++ b/modules/calcite/src/test/sql/subquery/scalar/test_complex_correlated_subquery.test_ignore
@@ -5,7 +5,6 @@
# Ignore https://issues.apache.org/jira/browse/IGNITE-15594
# Ignore https://issues.apache.org/jira/browse/IGNITE-15593
# Ignore https://issues.apache.org/jira/browse/IGNITE-15588
-# Ignore https://issues.apache.org/jira/browse/IGNITE-15592
# Ignore https://issues.apache.org/jira/browse/IGNITE-16000
statement ok