You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2019/04/12 17:46:39 UTC
[calcite] branch master updated: [CALCITE-2427] Allow sub-queries
in DML statements (Pressenna Sockalingasamy)
This is an automated email from the ASF dual-hosted git repository.
jhyde 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 f596539 [CALCITE-2427] Allow sub-queries in DML statements (Pressenna Sockalingasamy)
f596539 is described below
commit f596539fcd31e60193d0032c72db9fed3b6f2654
Author: Pressenna Sockalingasamy <pr...@omnisci.com>
AuthorDate: Tue Apr 9 16:02:22 2019 +0100
[CALCITE-2427] Allow sub-queries in DML statements (Pressenna Sockalingasamy)
Close apache/calcite#1151
---
.../apache/calcite/sql2rel/SqlToRelConverter.java | 2 ++
.../apache/calcite/test/SqlToRelConverterTest.java | 1 -
.../java/org/apache/calcite/tools/PlannerTest.java | 3 +--
.../apache/calcite/test/SqlToRelConverterTest.xml | 20 +++++++-------------
4 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index 698a028..c015548 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -3552,6 +3552,8 @@ public class SqlToRelConverter {
final SqlValidatorScope scope = validator.getWhereScope(call.getSourceSelect());
Blackboard bb = createBlackboard(scope, null, false);
+ replaceSubQueries(bb, call, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
+
Builder<RexNode> rexNodeSourceExpressionListBuilder = ImmutableList.builder();
for (SqlNode n : call.getSourceExpressionList()) {
RexNode rn = bb.convertExpression(n);
diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
index 499df02..9dcbb4b 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@@ -2110,7 +2110,6 @@ public class SqlToRelConverterTest extends SqlToRelTestBase {
sql(sql).ok();
}
- @Ignore("CALCITE-1527")
@Test public void testUpdateSubQuery() {
final String sql = "update emp\n"
+ "set empno = (\n"
diff --git a/core/src/test/java/org/apache/calcite/tools/PlannerTest.java b/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
index 4e73edd..7d73397 100644
--- a/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
+++ b/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
@@ -455,8 +455,7 @@ public class PlannerTest {
EnumerableRules.ENUMERABLE_PROJECT_RULE,
EnumerableRules.ENUMERABLE_FILTER_RULE,
EnumerableRules.ENUMERABLE_VALUES_RULE,
- EnumerableRules.ENUMERABLE_UNION_RULE
- );
+ EnumerableRules.ENUMERABLE_UNION_RULE);
rules.add(extraRules);
Program program = Programs.ofRules(rules.build());
Planner planner = getPlanner(null, program);
diff --git a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
index 3d343c6..6d367b7 100644
--- a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
@@ -4479,19 +4479,13 @@ set empno = (
</Resource>
<Resource name="plan">
<![CDATA[
-LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], updateColumnList=[[EMPNO]], sourceExpressionList=[[]], flattened=[true])
- LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[$9])
- LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[$10])
- LogicalJoin(condition=[=($7, $9)], joinType=[left])
- LogicalTableScan(table=[[CATALOG, SALES, EMP]])
- LogicalAggregate(group=[{0}], EXPR$0=[MIN($1)])
- LogicalProject(DEPTNO0=[$1], EMPNO=[$0])
- LogicalProject(EMPNO=[$0], DEPTNO0=[$9])
- LogicalJoin(condition=[=($7, $9)], joinType=[inner])
- LogicalTableScan(table=[[CATALOG, SALES, EMP]])
- LogicalAggregate(group=[{0}])
- LogicalProject(DEPTNO=[$7])
- LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], updateColumnList=[[EMPNO]], sourceExpressionList=[[$0]], flattened=[true])
+ LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[$10])
+ LogicalJoin(condition=[=($7, $9)], joinType=[left])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+ LogicalAggregate(group=[{0}], EXPR$0=[MIN($1)])
+ LogicalProject(DEPTNO=[$7], EMPNO=[$0])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
]]>
</Resource>
</TestCase>