This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 efef9e41411 Update Calcite to 1.35.0 to support the use of 
`TIMESTAMP_TRUNC` functions under sqlFederation (#28279)
efef9e41411 is described below

commit efef9e41411227a8052ff0e2c946b70b089939a2
Author: Ling Hengqian <[email protected]>
AuthorDate: Mon Aug 28 11:46:37 2023 +0800

    Update Calcite to 1.35.0 to support the use of `TIMESTAMP_TRUNC` functions 
under sqlFederation (#28279)
---
 distribution/proxy-native/src/main/release-docs/LICENSE           | 8 ++++----
 distribution/proxy/src/main/release-docs/LICENSE                  | 8 ++++----
 .../converter/statement/select/SelectStatementConverter.java      | 2 +-
 .../core/src/test/resources/cases/federation-query-sql-cases.xml  | 8 ++++----
 pom.xml                                                           | 2 +-
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/distribution/proxy-native/src/main/release-docs/LICENSE 
b/distribution/proxy-native/src/main/release-docs/LICENSE
index 00b8283675c..ec977cc692f 100644
--- a/distribution/proxy-native/src/main/release-docs/LICENSE
+++ b/distribution/proxy-native/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.22.0: https://calcite.apache.org/avatica, Apache 2.0
-    avatica-metrics 1.22.0: https://calcite.apache.org/avatica, Apache 2.0
+    avatica-core 1.23.0: https://calcite.apache.org/avatica, Apache 2.0
+    avatica-metrics 1.23.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.32.0: https://calcite.apache.org, Apache 2.0
-    calcite-linq4j 1.32.0: https://calcite.apache.org, Apache 2.0
+    calcite-core 1.35.0: https://calcite.apache.org, Apache 2.0
+    calcite-linq4j 1.35.0: https://calcite.apache.org, Apache 2.0
     commons-codec 1.15: https://github.com/apache/commons-codec, Apache 2.0
     commons-collections4 4.4: https://github.com/apache/commons-collections, 
Apache 2.0
     commons-exec 1.3: https://github.com/apache/commons-exec, Apache 2.0
diff --git a/distribution/proxy/src/main/release-docs/LICENSE 
b/distribution/proxy/src/main/release-docs/LICENSE
index 00b8283675c..ec977cc692f 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.22.0: https://calcite.apache.org/avatica, Apache 2.0
-    avatica-metrics 1.22.0: https://calcite.apache.org/avatica, Apache 2.0
+    avatica-core 1.23.0: https://calcite.apache.org/avatica, Apache 2.0
+    avatica-metrics 1.23.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.32.0: https://calcite.apache.org, Apache 2.0
-    calcite-linq4j 1.32.0: https://calcite.apache.org, Apache 2.0
+    calcite-core 1.35.0: https://calcite.apache.org, Apache 2.0
+    calcite-linq4j 1.35.0: https://calcite.apache.org, Apache 2.0
     commons-codec 1.15: https://github.com/apache/commons-codec, Apache 2.0
     commons-collections4 4.4: https://github.com/apache/commons-collections, 
Apache 2.0
     commons-exec 1.3: https://github.com/apache/commons-exec, Apache 2.0
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/select/SelectStatementConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/select/SelectStatementConverter.java
index bab0b9feb32..86685b01eac 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/select/SelectStatementConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/select/SelectStatementConverter.java
@@ -69,7 +69,7 @@ public final class SelectStatementConverter implements 
SQLStatementConverter<Sel
         SqlNodeList groupBy = selectStatement.getGroupBy().flatMap(optional -> 
new GroupByConverter().convert(optional)).orElse(null);
         SqlNode having = selectStatement.getHaving().flatMap(optional -> new 
HavingConverter().convert(optional)).orElse(null);
         SqlNodeList window = 
SelectStatementHandler.getWindowSegment(selectStatement).flatMap(new 
WindowConverter()::convert).orElse(SqlNodeList.EMPTY);
-        return new SqlSelect(SqlParserPos.ZERO, distinct, projection, from, 
where, groupBy, having, window, null, null, null, SqlNodeList.EMPTY);
+        return new SqlSelect(SqlParserPos.ZERO, distinct, projection, from, 
where, groupBy, having, window, null, null, null, null, SqlNodeList.EMPTY);
     }
     
     private SqlNode convertCombine(final SqlNode sqlNode, final 
SelectStatement selectStatement) {
diff --git 
a/kernel/sql-federation/core/src/test/resources/cases/federation-query-sql-cases.xml
 
b/kernel/sql-federation/core/src/test/resources/cases/federation-query-sql-cases.xml
index 9585657c322..2438f44d052 100644
--- 
a/kernel/sql-federation/core/src/test/resources/cases/federation-query-sql-cases.xml
+++ 
b/kernel/sql-federation/core/src/test/resources/cases/federation-query-sql-cases.xml
@@ -46,15 +46,15 @@
     </test-case>
     
     <test-case sql="SELECT t_order_federate.order_id, t_order_federate.user_id 
FROM t_order_federate WHERE EXISTS (SELECT * FROM t_user_info WHERE 
t_order_federate.user_id = t_user_info.user_id)">
-        <assertion expected-result="EnumerableCalc(expr#0..3=[{inputs}], 
expr#4=[IS NOT NULL($t3)], proj#0..1=[{exprs}], $condition=[$t4])   
EnumerableCorrelate(correlation=[$cor0], joinType=[left], 
requiredColumns=[{1}])     EnumerableScan(table=[[federate_jdbc, 
t_order_federate]], sql=[SELECT * FROM `federate_jdbc`.`t_order_federate`])     
EnumerableAggregate(group=[{}], agg#0=[MIN($0)])       
EnumerableCalc(expr#0..1=[{inputs}], expr#2=[true], expr#3=[$cor0], 
expr#4=[$t3.user_id], exp [...]
+        <assertion expected-result="EnumerableScan(table=[[federate_jdbc, 
t_order_federate]], sql=[SELECT `order_id`, `user_id` FROM 
`federate_jdbc`.`t_order_federate` WHERE EXISTS (SELECT * FROM 
`federate_jdbc`.`t_user_info` WHERE CAST(`t_order_federate`.`user_id` AS CHAR) 
= CAST(`user_id` AS CHAR))]) " />
     </test-case>
     
     <test-case sql="SELECT t_order_federate.order_id, t_order_federate.user_id 
FROM t_order_federate WHERE t_order_federate.user_id IN (SELECT 
t_user_info.user_id FROM t_user_info)">
-        <assertion expected-result="EnumerableCalc(expr#0..2=[{inputs}], 
proj#0..1=[{exprs}])   EnumerableHashJoin(condition=[=($1, $2)], 
joinType=[inner])     EnumerableScan(table=[[federate_jdbc, t_order_federate]], 
sql=[SELECT `order_id`, `user_id` FROM `federate_jdbc`.`t_order_federate`])     
EnumerableAggregate(group=[{0}])       EnumerableScan(table=[[federate_jdbc, 
t_user_info]], sql=[SELECT `user_id` FROM `federate_jdbc`.`t_user_info`]) " />
+        <assertion expected-result="EnumerableScan(table=[[federate_jdbc, 
t_order_federate]], sql=[SELECT `order_id`, `user_id` FROM 
`federate_jdbc`.`t_order_federate` WHERE `user_id` IN (SELECT `user_id` FROM 
`federate_jdbc`.`t_user_info`)]) " />
     </test-case>
     
     <test-case sql="SELECT t_order_federate.order_id, t_order_federate.user_id 
FROM t_order_federate WHERE user_id BETWEEN (SELECT user_id FROM t_user_info 
WHERE user_id = 1) AND (SELECT user_id FROM t_user_info WHERE user_id = 3)">
-        <assertion expected-result="EnumerableCalc(expr#0..2=[{inputs}], 
proj#0..1=[{exprs}])   EnumerableNestedLoopJoin(condition=[&lt;=($1, $2)], 
joinType=[inner])     EnumerableCalc(expr#0..2=[{inputs}], proj#0..1=[{exprs}]) 
      EnumerableNestedLoopJoin(condition=[&gt;=($1, $2)], joinType=[inner])     
    EnumerableScan(table=[[federate_jdbc, t_order_federate]], sql=[SELECT 
`order_id`, `user_id` FROM `federate_jdbc`.`t_order_federate`])         
EnumerableAggregate(group=[{}], agg#0= [...]
+        <assertion expected-result="EnumerableScan(table=[[federate_jdbc, 
t_order_federate]], sql=[SELECT `order_id`, `user_id` FROM 
`federate_jdbc`.`t_order_federate` WHERE `user_id` &gt;= (((SELECT `user_id` 
FROM `federate_jdbc`.`t_user_info` WHERE `user_id` = 1))) AND `user_id` &lt;= 
(((SELECT `user_id` FROM `federate_jdbc`.`t_user_info` WHERE `user_id` = 3)))]) 
" />
     </test-case>
     
     <test-case sql="SELECT order_id, user_id FROM t_order_federate UNION 
SELECT 1, user_id FROM t_user_info WHERE information = 'before'">
@@ -398,7 +398,7 @@
     </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">
-        <assertion expected-result="EnumerableSort(sort0=[$0], dir0=[ASC])   
EnumerableCalc(expr#0..6=[{inputs}], proj#0..5=[{exprs}])     
EnumerableHashJoin(condition=[=($0, $6)], joinType=[inner])       
EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT * FROM 
`federate_jdbc`.`t_order`])       EnumerableAggregate(group=[{0}])         
EnumerableCalc(expr#0..2=[{inputs}], order_id=[$t0])           
EnumerableHashJoin(condition=[=($1, $2)], joinType=[inner])             
Enumerabl [...]
+        <assertion expected-result="EnumerableSort(sort0=[$0], dir0=[ASC])   
EnumerableScan(table=[[federate_jdbc, t_order]], sql=[SELECT * FROM 
`federate_jdbc`.`t_order` WHERE `order_id` IN (SELECT `t_order_item`.`order_id` 
FROM `federate_jdbc`.`t_order_item` INNER JOIN `federate_jdbc`.`t_product` ON 
`t_order_item`.`product_id` = `t_product`.`product_id` WHERE 
CAST(`t_product`.`product_id` AS SIGNED) = 10)]) " />
     </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) &gt; 10 ORDER BY max_price">
diff --git a/pom.xml b/pom.xml
index 2e4c33dcf24..aa743a7b073 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,7 @@
         <activation-api.version>1.2.0</activation-api.version>
         <truffle-api.version>21.2.0</truffle-api.version>
         
-        <calcite.version>1.32.0</calcite.version>
+        <calcite.version>1.35.0</calcite.version>
         <immutables.version>2.9.3</immutables.version>
         <netty.version>4.1.90.Final</netty.version>
         <bouncycastle.version>1.70</bouncycastle.version>

Reply via email to