This is an automated email from the ASF dual-hosted git repository. chengzhang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new 92289550403 Upgrade calcite version to latest 1.39.0 (#35035) 92289550403 is described below commit 922895504036e721163c366ba93efe973586b50f Author: Zhengqiang Duan <duanzhengqi...@apache.org> AuthorDate: Wed Mar 19 15:48:36 2025 +0800 Upgrade calcite version to latest 1.39.0 (#35035) --- distribution/proxy/src/main/release-docs/LICENSE | 8 ++++---- kernel/sql-federation/optimizer/pom.xml | 2 +- .../cases/federation-delete-sql-cases.xml | 2 +- .../resources/cases/federation-query-sql-cases.xml | 24 ++++++++-------------- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/distribution/proxy/src/main/release-docs/LICENSE b/distribution/proxy/src/main/release-docs/LICENSE index d6e0c48ceab..381805d95ae 100644 --- a/distribution/proxy/src/main/release-docs/LICENSE +++ b/distribution/proxy/src/main/release-docs/LICENSE @@ -219,11 +219,11 @@ The text of each license is the standard Apache 2.0 license. aggdesigner-algorithm 6.0: Apache 2.0 apiguardian-api 1.1.2: https://github.com/apiguardian-team/apiguardian, Apache 2.0 audience-annotations 0.12.0: https://github.com/apache/yetus, Apache 2.0 - avatica-core 1.25.0: https://calcite.apache.org/avatica, Apache 2.0 - avatica-metrics 1.25.0: https://calcite.apache.org/avatica, Apache 2.0 + avatica-core 1.26.0: https://calcite.apache.org/avatica, Apache 2.0 + avatica-metrics 1.26.0: https://calcite.apache.org/avatica, Apache 2.0 caffeine 2.9.3: https://github.com/ben-manes/caffeine, Apache 2.0 - calcite-core 1.38.0: https://calcite.apache.org, Apache 2.0 - calcite-linq4j 1.38.0: https://calcite.apache.org, Apache 2.0 + calcite-core 1.39.0: https://calcite.apache.org, Apache 2.0 + calcite-linq4j 1.39.0: https://calcite.apache.org, Apache 2.0 commons-codec 1.16.0: https://github.com/apache/commons-codec, Apache 2.0 commons-dbcp2 2.11.0: https://commons.apache.org/proper/commons-dbcp, Apache 2.0 commons-exec 1.3: https://github.com/apache/commons-exec, Apache 2.0 diff --git a/kernel/sql-federation/optimizer/pom.xml b/kernel/sql-federation/optimizer/pom.xml index c8bb3e9e169..3108babfa87 100644 --- a/kernel/sql-federation/optimizer/pom.xml +++ b/kernel/sql-federation/optimizer/pom.xml @@ -27,7 +27,7 @@ <name>${project.artifactId}</name> <properties> - <calcite.version>1.38.0</calcite.version> + <calcite.version>1.39.0</calcite.version> </properties> <dependencies> diff --git a/kernel/sql-federation/optimizer/src/test/resources/cases/federation-delete-sql-cases.xml b/kernel/sql-federation/optimizer/src/test/resources/cases/federation-delete-sql-cases.xml index 6d7b7ab5b89..be6623b8023 100644 --- a/kernel/sql-federation/optimizer/src/test/resources/cases/federation-delete-sql-cases.xml +++ b/kernel/sql-federation/optimizer/src/test/resources/cases/federation-delete-sql-cases.xml @@ -22,6 +22,6 @@ </test-case> <test-case sql="DELETE FROM t_single_table WHERE id in (SELECT order_id FROM t_order)"> - <assertion expected-result="EnumerableModify(table=[[federate_jdbc, t_single_table]], operation=[DELETE], flattened=[false]) EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}]) EnumerableHashJoin(condition=[=($1, $3)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_single_table]], sql=[SELECT * FROM `federate_jdbc`.`t_single_table`], dynamicParameters=[null]) EnumerableAggregate(group=[{0}]) EnumerableScan(table=[[federate_jdbc, t_order] [...] + <assertion expected-result="EnumerableModify(table=[[federate_jdbc, t_single_table]], operation=[DELETE], flattened=[false]) EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}]) EnumerableHashJoin(condition=[=($1, $3)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_single_table]], sql=[SELECT * FROM `federate_jdbc`.`t_single_table`], dynamicParameters=[null]) EnumerableAggregate(group=[{0}]) EnumerableCalc(expr#0..5=[{inputs}], expr#6=[C [...] </test-case> </test-cases> diff --git a/kernel/sql-federation/optimizer/src/test/resources/cases/federation-query-sql-cases.xml b/kernel/sql-federation/optimizer/src/test/resources/cases/federation-query-sql-cases.xml index f865905be43..a1e9a2e7998 100644 --- a/kernel/sql-federation/optimizer/src/test/resources/cases/federation-query-sql-cases.xml +++ b/kernel/sql-federation/optimizer/src/test/resources/cases/federation-query-sql-cases.xml @@ -73,14 +73,6 @@ <assertion expected-result="EnumerableCalc(expr#0..9=[{inputs}], proj#0..8=[{exprs}]) EnumerableHashJoin(condition=[=($1, $9)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_single_table]], sql=[SELECT * FROM `federate_jdbc`.`t_single_table`], dynamicParameters=[null]) EnumerableCalc(expr#0..5=[{inputs}], expr#6=[CAST($t0):JavaType(class java.lang.Integer)], proj#0..6=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT * FROM `feder [...] </test-case> - <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.remarks = 't_order_item_federate_sharding' "> - <assertion expected-result="EnumerableCalc(expr#0..9=[{inputs}], proj#0..2=[{exprs}], item_id=[$t4], order_id1=[$t5], user_id0=[$t6], status0=[$t7], remarks=[$t8]) EnumerableHashJoin(condition=[=($3, $9)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t0):INTEGER], proj#0..3=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableCalc(exp [...] - </test-case> - - <test-case sql="select o.*, i.* from t_order_federate o, t_order_item_federate_sharding i where o.order_id = i.item_id"> - <assertion expected-result="EnumerableCalc(expr#0..9=[{inputs}], proj#0..2=[{exprs}], item_id=[$t4], order_id1=[$t5], user_id0=[$t6], status0=[$t7], remarks=[$t8]) EnumerableHashJoin(condition=[=($3, $9)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t0):INTEGER], proj#0..3=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableCalc(exp [...] - </test-case> - <test-case sql="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (10, 11) AND o.order_id BETWEEN 1000 AND 1909 ORDER BY i.item_id"> <assertion expected-result="EnumerableSort(sort0=[$0], dir0=[ASC]) EnumerableCalc(expr#0..7=[{inputs}], item_id=[$t2], order_id=[$t3], user_id=[$t4], product_id=[$t5], quantity=[$t6], creation_date=[$t7]) EnumerableHashJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT `order_id`, `user_id` FROM `federate_jdbc`.`t_order` WHERE CAST(`user_id` AS SIGNED) IN (10, 11) AND (`order_id` >= 1000 AND `orde [...] </test-case> @@ -170,7 +162,7 @@ </test-case> <test-case sql="SELECT * FROM t_single_table s INNER JOIN t_user_info o ON s.id = o.user_id"> - <assertion expected-result="EnumerableCalc(expr#0..6=[{inputs}], proj#0..2=[{exprs}], user_id=[$t4], information=[$t5]) EnumerableHashJoin(condition=[=($3, $6)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t1):INTEGER], proj#0..3=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_single_table]], sql=[SELECT * FROM `federate_jdbc`.`t_single_table`], dynamicParameters=[null]) EnumerableCalc(expr#0..1=[{inputs}], expr#2=[CAST($t0):INTEGER], p [...] + <assertion expected-result="EnumerableHashJoin(condition=[=($1, $3)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_single_table]], sql=[SELECT * FROM `federate_jdbc`.`t_single_table`], dynamicParameters=[null]) EnumerableScan(table=[[federate_jdbc, t_user_info]], sql=[SELECT * FROM `federate_jdbc`.`t_user_info`], dynamicParameters=[null]) " /> </test-case> <test-case sql="SELECT o.*, i.* FROM t_order_federate o, t_order_item i WHERE o.order_id = 1000 AND i.item_id = 100000"> @@ -182,15 +174,15 @@ </test-case> <test-case sql="SELECT GROUP_CONCAT(i.item_id SEPARATOR ';') AS item_ids FROM t_order_federate o INNER JOIN t_order_item_federate_sharding i ON o.order_id = i.item_id WHERE i.order_id >= 10000"> - <assertion expected-result="EnumerableAggregate(group=[{}], item_ids=[LISTAGG($0, $1)]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[_UTF-8';'], $f0=[$t2], $f1=[$t3]) EnumerableHashJoin(condition=[=($0, $1)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t0):INTEGER], order_id0=[$t3]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) Enumerabl [...] + <assertion expected-result="EnumerableAggregate(group=[{}], item_ids=[LISTAGG($0, $1)]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[_UTF-8';'], $f0=[$t2], $f1=[$t3]) EnumerableHashJoin(condition=[=($0, $1)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT `order_id` FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableCalc(expr#0..4=[{inputs}], expr#5=[CAST($t0):VARCHAR CHARACTER SET "UTF-8&q [...] </test-case> <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.remarks = 't_order_item_federate_sharding' "> - <assertion expected-result="EnumerableCalc(expr#0..9=[{inputs}], proj#0..2=[{exprs}], item_id=[$t4], order_id1=[$t5], user_id0=[$t6], status0=[$t7], remarks=[$t8]) EnumerableHashJoin(condition=[=($3, $9)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t0):INTEGER], proj#0..3=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableCalc(exp [...] + <assertion expected-result="EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableScan(table=[[federate_jdbc, t_order_item_federate_sharding]], sql=[SELECT * FROM `federate_jdbc`.`t_order_item_federate_sharding` WHERE `remarks` = 't_order_item_federate_sharding'], dynamicParameters=[null]) " /> </test-case> <test-case sql="select o.*, i.* from t_order_federate o, t_order_item_federate_sharding i where o.order_id = i.item_id"> - <assertion expected-result="EnumerableCalc(expr#0..9=[{inputs}], proj#0..2=[{exprs}], item_id=[$t4], order_id1=[$t5], user_id0=[$t6], status0=[$t7], remarks=[$t8]) EnumerableHashJoin(condition=[=($3, $9)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[CAST($t0):INTEGER], proj#0..3=[{exprs}]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableCalc(exp [...] + <assertion expected-result="EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`], dynamicParameters=[null]) EnumerableScan(table=[[federate_jdbc, t_order_item_federate_sharding]], sql=[SELECT * FROM `federate_jdbc`.`t_order_item_federate_sharding`], dynamicParameters=[null]) " /> </test-case> <test-case sql="SELECT * FROM t_order o INNER JOIN t_order_item i ON o.order_id = i.order_id WHERE o.user_id = ? ORDER BY o.order_id, 7"> @@ -390,7 +382,7 @@ </test-case> <test-case sql="SELECT * FROM (SELECT o.* FROM t_order o WHERE o.user_id IN (10, 11, 12)) AS t, t_order_item i WHERE t.order_id = i.order_id AND t.order_id > 10 ORDER BY item_id"> - <assertion expected-result="EnumerableSort(sort0=[$6], dir0=[ASC]) EnumerableHashJoin(condition=[=($0, $7)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT * FROM `federate_jdbc`.`t_order` WHERE CAST(`user_id` AS SIGNED) IN (10, 11, 12) AND `order_id` > 10], dynamicParameters=[null]) EnumerableScan(table=[[federate_jdbc, t_order_item]], sql=[SELECT * FROM `federate_jdbc`.`t_order_item` WHERE `order_id` > 10], dynamicParameters=[null]) " /> + <assertion expected-result="EnumerableSort(sort0=[$6], dir0=[ASC]) EnumerableHashJoin(condition=[=($0, $7)], joinType=[inner]) EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT * FROM `federate_jdbc`.`t_order` WHERE CAST(`user_id` AS SIGNED) IN (10, 11, 12) AND `order_id` > 10], dynamicParameters=[null]) EnumerableScan(table=[[federate_jdbc, t_order_item]], sql=[SELECT * FROM `federate_jdbc`.`t_order_item` WHERE `order_id` > 10], dynamicParameters=[null]) " /> </test-case> <test-case sql="SELECT * FROM t_order o WHERE o.order_id IN (SELECT i.order_id FROM t_order_item i INNER JOIN t_product p ON i.product_id = p.product_id WHERE p.product_id = 10) ORDER BY order_id"> @@ -398,7 +390,7 @@ </test-case> <test-case sql="SELECT MAX(p.price) AS max_price, MIN(p.price) AS min_price, SUM(p.price) AS sum_price, AVG(p.price) AS avg_price, COUNT(1) AS count FROM t_order o INNER JOIN t_order_item i ON o.order_id = i.order_id INNER JOIN t_product p ON i.product_id = p.product_id GROUP BY o.order_id HAVING SUM(p.price) > 10 ORDER BY max_price"> - <assertion expected-result="EnumerableSort(sort0=[$0], dir0=[ASC]) EnumerableCalc(expr#0..5=[{inputs}], expr#6=[0], expr#7=[=($t4, $t6)], expr#8=[null:JavaType(class java.math.BigDecimal)], expr#9=[CASE($t7, $t8, $t3)], expr#10=[/($t9, $t4)], expr#11=[CAST($t10):JavaType(class java.math.BigDecimal)], expr#12=[10:DECIMAL(10, 0)], expr#13=[>($t9, $t12)], max_price=[$t1], min_price=[$t2], sum_price=[$t9], avg_price=[$t11], count=[$t5], $condition=[$t13]) EnumerableAggregate(gr [...] + <assertion expected-result="EnumerableSort(sort0=[$0], dir0=[ASC]) EnumerableCalc(expr#0..5=[{inputs}], expr#6=[0], expr#7=[=($t4, $t6)], expr#8=[null:JavaType(class java.math.BigDecimal)], expr#9=[CASE($t7, $t8, $t3)], expr#10=[/($t9, $t4)], expr#11=[CAST($t10):JavaType(class java.math.BigDecimal)], expr#12=[10], expr#13=[>($t9, $t12)], max_price=[$t1], min_price=[$t2], sum_price=[$t9], avg_price=[$t11], count=[$t5], $condition=[$t13]) EnumerableAggregate(group=[{0}], max_ [...] </test-case> <test-case sql="SELECT * FROM t_order UNION ALL SELECT * FROM t_order ORDER BY order_id LIMIT 5, 5"> @@ -434,7 +426,7 @@ </test-case> <test-case sql="WITH cte AS (SELECT 1 AS col1, 2 AS col2 UNION ALL SELECT 3, 4) SELECT col1, col2 FROM cte"> - <assertion expected-result="EnumerableUnion(all=[true]) EnumerableValues(tuples=[[{ 1, 2 }]]) EnumerableValues(tuples=[[{ 3, 4 }]]) " /> + <assertion expected-result="EnumerableValues(tuples=[[{ 1, 2 }, { 3, 4 }]]) " /> </test-case> <test-case sql="WITH cte1(col1, col2, col3) AS (SELECT id, bit_column, tiny_int_column FROM multi_types_first), cte2(col1, col2, col3) AS (SELECT id, bit_column, tiny_int_column FROM multi_types_second) SELECT * FROM cte1 inner join cte2 on cte1.col1 = cte2.col1"> @@ -442,6 +434,6 @@ </test-case> <test-case sql="WITH cte1(col1, col2, col3) AS (SELECT 1, 2, 3 UNION ALL SELECT 4, 5, 6), cte2(col1, col2, col3) AS (SELECT 1, 2, 3 UNION ALL SELECT 4, 5, 6) SELECT cte1.* FROM cte1 inner join cte2 on cte1.col1 = cte2.col1 WHERE cte1.col1 = 1"> - <assertion expected-result="EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}]) EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner]) EnumerableUnion(all=[true]) EnumerableValues(tuples=[[{ 1, 2, 3 }]]) EnumerableValues(tuples=[[]]) EnumerableUnion(all=[true]) EnumerableCalc(expr#0..2=[{inputs}], EXPR$0=[$t0]) EnumerableValues(tuples=[[{ 1, 2, 3 }]]) EnumerableCalc(expr#0..2=[{inputs}], EXPR$0=[$t0]) EnumerableValues(t [...] + <assertion expected-result="EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}]) EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[1], expr#4=[=($t0, $t3)], proj#0..2=[{exprs}], $condition=[$t4]) EnumerableValues(tuples=[[{ 1, 2, 3 }, { 4, 5, 6 }]]) EnumerableCalc(expr#0..2=[{inputs}], expr#3=[1], expr#4=[=($t0, $t3)], EXPR$0=[$t0], $condition=[$t4]) EnumerableValues(tuples=[[{ 1, 2, 3 }, { 4, 5, 6 [...] </test-case> </test-cases>