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 99392dccc5f Update Apache Calcite to 1.30.0 to improve GraalVM support 
(#19737)
99392dccc5f is described below

commit 99392dccc5fa367872d299b53e1e5fe7b7ac61ae
Author: Ling Hengqian <[email protected]>
AuthorDate: Mon Aug 1 15:00:59 2022 +0800

    Update Apache Calcite to 1.30.0 to improve GraalVM support (#19737)
    
    * Update Apache Calcite to 1.30.0 to improve GraalVM support.
    
    * Processes 
`org.apache.shardingsphere.infra.federation.optimizer.converter.segment.expression.impl.InExpressionConverter`
 and 
`org.apache.shardingsphere.infra.federation.optimizer.converter.segment.projection.impl.AggregationProjectionConverter`,
 in Deprecated methods and deprecated classes of .
    
    * Handle deprecated methods and deprecated classes.
    
    * Fix CheckStyle.
    
    * Refactored 
`org.apache.shardingsphere.infra.federation.optimizer.converter.segment.expression.impl.FunctionConverter#getSqlNodes`.
---
 pom.xml                                                       |  2 +-
 .../src/main/release-docs/LICENSE                             |  8 ++++----
 .../optimizer/converter/SQLNodeConverterEngine.java           |  4 +++-
 .../segment/expression/impl/BetweenExpressionConverter.java   |  6 ++++--
 .../expression/impl/BinaryOperationExpressionConverter.java   |  3 ++-
 .../expression/impl/ExistsSubqueryExpressionConverter.java    |  6 ++++--
 .../converter/segment/expression/impl/FunctionConverter.java  |  4 ++--
 .../segment/expression/impl/InExpressionConverter.java        |  9 +++++----
 .../segment/expression/impl/ListExpressionConverter.java      |  3 ++-
 .../converter/segment/from/impl/SimpleTableConverter.java     |  3 ++-
 .../converter/segment/from/impl/SubqueryTableConverter.java   |  3 ++-
 .../segment/orderby/item/ColumnOrderByItemConverter.java      |  3 ++-
 .../projection/impl/AggregationProjectionConverter.java       | 11 ++++++-----
 .../segment/projection/impl/ColumnProjectionConverter.java    |  3 ++-
 .../projection/impl/ExpressionProjectionConverter.java        |  5 +++--
 .../segment/projection/impl/SubqueryProjectionConverter.java  |  3 ++-
 16 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/pom.xml b/pom.xml
index 38f950b1a25..0877697b918 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,7 +73,7 @@
         <annotation-api.version>1.3.2</annotation-api.version>
         <activation-api.version>1.2.0</activation-api.version>
         
-        <calcite.version>1.27.0</calcite.version>
+        <calcite.version>1.30.0</calcite.version>
         <vertx.version>4.2.3</vertx.version>
         <netty.version>4.1.73.Final</netty.version>
         
diff --git 
a/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/release-docs/LICENSE
 
b/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/release-docs/LICENSE
index 05a297be4ac..7e4d9409121 100644
--- 
a/shardingsphere-distribution/shardingsphere-proxy-distribution/src/main/release-docs/LICENSE
+++ 
b/shardingsphere-distribution/shardingsphere-proxy-distribution/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.0: https://github.com/apiguardian-team/apiguardian, 
Apache 2.0
     audience-annotations 0.5.0: https://github.com/apache/yetus, Apache 2.0
-    avatica-core 1.18.0: https://calcite.apache.org/avatica, Apache 2.0 
-    avatica-metrics 1.18.0: https://calcite.apache.org/avatica, Apache 2.0
+    avatica-core 1.20.0: https://calcite.apache.org/avatica, Apache 2.0 
+    avatica-metrics 1.20.0: https://calcite.apache.org/avatica, Apache 2.0
     caffeine 2.9.2: https://github.com/ben-manes/caffeine, Apache 2.0
-    calcite-core 1.27.0: https://calcite.apache.org, Apache 2.0
-    calcite-linq4j 1.27.0: https://calcite.apache.org, Apache 2.0
+    calcite-core 1.30.0: https://calcite.apache.org, Apache 2.0
+    calcite-linq4j 1.30.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/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/SQLNodeConverterEngine.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/SQLNodeConverterEngine.java
index e3fd737f749..8ab06566eae 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/SQLNodeConverterEngine.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/SQLNodeConverterEngine.java
@@ -32,6 +32,8 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.combine.Combi
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 
+import java.util.Arrays;
+
 /**
  * SQL node converter engine.
  */
@@ -49,7 +51,7 @@ public final class SQLNodeConverterEngine {
             SqlNode sqlNode = new 
SelectStatementConverter().convertToSQLNode((SelectStatement) statement);
             for (CombineSegment each : ((SelectStatement) 
statement).getCombines()) {
                 SqlNode combineSqlNode = 
convertToSQLNode(each.getSelectStatement());
-                return new 
SqlBasicCall(CombineOperatorConverter.convert(each.getCombineType()), new 
SqlNode[]{sqlNode, combineSqlNode}, SqlParserPos.ZERO);
+                return new 
SqlBasicCall(CombineOperatorConverter.convert(each.getCombineType()), 
Arrays.asList(sqlNode, combineSqlNode), SqlParserPos.ZERO);
             }
             return sqlNode;
         }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BetweenExpressionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BetweenExpressionConverter.java
index 707edbd84cf..ece631faab1 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BetweenExpressionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BetweenExpressionConverter.java
@@ -27,7 +27,9 @@ import 
org.apache.shardingsphere.infra.federation.optimizer.converter.segment.ex
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.Optional;
 
@@ -53,8 +55,8 @@ public final class BetweenExpressionConverter implements 
SQLSegmentConverter<Bet
         
expressionConverter.convertToSQLNode(expression.getLeft()).ifPresent(sqlNodes::add);
         
expressionConverter.convertToSQLNode(expression.getBetweenExpr()).ifPresent(sqlNodes::add);
         
expressionConverter.convertToSQLNode(expression.getAndExpr()).ifPresent(sqlNodes::add);
-        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.BETWEEN, 
sqlNodes.toArray(new SqlNode[]{}), SqlParserPos.ZERO);
-        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, new SqlNode[]{sqlNode}, 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
+        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.BETWEEN, 
new ArrayList<>(sqlNodes), SqlParserPos.ZERO);
+        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, Collections.singletonList(sqlNode), 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
index 9f6d096040c..a1e8c57df82 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
@@ -30,6 +30,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOp
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ListExpression;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.Optional;
 import java.util.TreeMap;
@@ -75,7 +76,7 @@ public final class BinaryOperationExpressionConverter 
implements SQLSegmentConve
         SqlOperator operator = convertOperator(segment.getOperator());
         SqlNode left = new 
ExpressionConverter().convertToSQLNode(segment.getLeft()).orElseThrow(IllegalStateException::new);
         SqlNode right = new 
ExpressionConverter().convertToSQLNode(segment.getRight()).orElseThrow(IllegalStateException::new);
-        return Optional.of(new SqlBasicCall(operator, new SqlNode[]{left, 
right}, SqlParserPos.ZERO));
+        return Optional.of(new SqlBasicCall(operator, Arrays.asList(left, 
right), SqlParserPos.ZERO));
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
index 76f0c16397e..d4d5272b0f2 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExistsSu
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 
+import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -47,8 +48,9 @@ public final class ExistsSubqueryExpressionConverter 
implements SQLSegmentConver
         if (null == expression) {
             return Optional.empty();
         }
-        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.EXISTS, 
new SqlNode[]{new 
SelectStatementConverter().convertToSQLNode(expression.getSubquery().getSelect())},
 SqlParserPos.ZERO);
-        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, new SqlNode[]{sqlNode}, 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
+        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.EXISTS, 
+                Collections.singletonList(new 
SelectStatementConverter().convertToSQLNode(expression.getSubquery().getSelect())),
 SqlParserPos.ZERO);
+        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, Collections.singletonList(sqlNode), 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/FunctionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/FunctionConverter.java
index 53ee1021b3e..744d3964009 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/FunctionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/FunctionConverter.java
@@ -101,7 +101,7 @@ public final class FunctionConverter implements 
SQLSegmentConverter<FunctionSegm
         return result;
     }
     
-    private SqlNode[] getSqlNodes(final Collection<ExpressionSegment> 
sqlSegments) {
+    private List<SqlNode> getSqlNodes(final Collection<ExpressionSegment> 
sqlSegments) {
         List<SqlNode> sqlNodes = new ArrayList<>();
         sqlSegments.forEach(each -> {
             if (each instanceof LiteralExpressionSegment) {
@@ -114,6 +114,6 @@ public final class FunctionConverter implements 
SQLSegmentConverter<FunctionSegm
                 sqlNodes.add(new 
SqlDynamicParam(((ParameterMarkerExpressionSegment) 
each).getParameterMarkerIndex(), SqlParserPos.ZERO));
             }
         });
-        return sqlNodes.toArray(new SqlNode[0]);
+        return new ArrayList<>(sqlNodes);
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/InExpressionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/InExpressionConverter.java
index f1b0b79cbcc..c583b9e518a 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/InExpressionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/InExpressionConverter.java
@@ -29,8 +29,9 @@ import 
org.apache.shardingsphere.infra.federation.optimizer.converter.segment.ex
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
 
-import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.Optional;
 
@@ -56,13 +57,13 @@ public final class InExpressionConverter implements 
SQLSegmentConverter<InExpres
         
expressionConverter.convertToSQLNode(expression.getLeft()).ifPresent(sqlNodes::add);
         
expressionConverter.convertToSQLNode(expression.getRight()).ifPresent(optional 
-> {
             if (optional instanceof SqlBasicCall) {
-                sqlNodes.add(new SqlNodeList(Arrays.asList(((SqlBasicCall) 
optional).getOperands().clone()), SqlParserPos.ZERO));
+                sqlNodes.add(new SqlNodeList(((SqlBasicCall) 
optional).getOperandList(), SqlParserPos.ZERO));
             } else {
                 sqlNodes.add(optional);
             }
         });
-        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.IN, 
sqlNodes.toArray(new SqlNode[]{}), SqlParserPos.ZERO);
-        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, new SqlNode[]{sqlNode}, 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
+        SqlBasicCall sqlNode = new SqlBasicCall(SqlStdOperatorTable.IN, new 
ArrayList<>(sqlNodes), SqlParserPos.ZERO);
+        return expression.isNot() ? Optional.of(new 
SqlBasicCall(SqlStdOperatorTable.NOT, Collections.singletonList(sqlNode), 
SqlParserPos.ZERO)) : Optional.of(sqlNode);
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ListExpressionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ListExpressionConverter.java
index 4d9b2b94c59..08c62746518 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ListExpressionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/expression/impl/ListExpressionConverter.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.infra.federation.optimizer.converter.segment.ex
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ListExpression;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
@@ -47,7 +48,7 @@ public final class ListExpressionConverter implements 
SQLSegmentConverter<ListEx
                 left = sqlNode.get();
                 continue;
             }
-            left = new SqlBasicCall(SqlStdOperatorTable.OR, new 
SqlNode[]{left, sqlNode.get()}, SqlParserPos.ZERO);
+            left = new SqlBasicCall(SqlStdOperatorTable.OR, 
Arrays.asList(left, sqlNode.get()), SqlParserPos.ZERO);
         }
         return Optional.ofNullable(left);
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SimpleTableConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SimpleTableConverter.java
index 5b61cd76c8f..c37928c5a23 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SimpleTableConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SimpleTableConverter.java
@@ -30,6 +30,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.Tab
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
@@ -49,7 +50,7 @@ public final class SimpleTableConverter implements 
SQLSegmentConverter<SimpleTab
         SqlNode tableNameSQLNode = new SqlIdentifier(names, SqlParserPos.ZERO);
         if (segment.getAlias().isPresent()) {
             SqlNode aliasSQLNode = new SqlIdentifier(segment.getAlias().get(), 
SqlParserPos.ZERO);
-            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
SqlNode[]{tableNameSQLNode, aliasSQLNode}, SqlParserPos.ZERO));
+            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, 
Arrays.asList(tableNameSQLNode, aliasSQLNode), SqlParserPos.ZERO));
         }
         return Optional.of(tableNameSQLNode);
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SubqueryTableConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SubqueryTableConverter.java
index c0211ed893c..2342fe9db62 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SubqueryTableConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/from/impl/SubqueryTableConverter.java
@@ -30,6 +30,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.Sub
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Optional;
@@ -47,7 +48,7 @@ public final class SubqueryTableConverter implements 
SQLSegmentConverter<Subquer
         Collection<SqlNode> sqlNodes = new LinkedList<>();
         sqlNodes.add(new 
SelectStatementConverter().convertToSQLNode(segment.getSubquery().getSelect()));
         segment.getAlias().ifPresent(optional -> sqlNodes.add(new 
SqlIdentifier(optional, SqlParserPos.ZERO)));
-        return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, 
sqlNodes.toArray(new SqlNode[]{}), SqlParserPos.ZERO));
+        return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
ArrayList<>(sqlNodes), SqlParserPos.ZERO));
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/orderby/item/ColumnOrderByItemConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/orderby/item/ColumnOrderByItemConverter.java
index 48c370e001a..4d3fd383574 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/orderby/item/ColumnOrderByItemConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/orderby/item/ColumnOrderByItemConverter.java
@@ -30,6 +30,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.Co
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
+import java.util.Collections;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -42,7 +43,7 @@ public final class ColumnOrderByItemConverter implements 
SQLSegmentConverter<Col
     public Optional<SqlNode> convertToSQLNode(final ColumnOrderByItemSegment 
segment) {
         Optional<SqlNode> result = new 
ColumnConverter().convertToSQLNode(segment.getColumn()).map(optional -> 
optional);
         if (result.isPresent() && Objects.equals(OrderDirection.DESC, 
segment.getOrderDirection())) {
-            result = Optional.of(new SqlBasicCall(SqlStdOperatorTable.DESC, 
new SqlNode[]{result.get()}, SqlParserPos.ZERO));
+            result = Optional.of(new SqlBasicCall(SqlStdOperatorTable.DESC, 
Collections.singletonList(result.get()), SqlParserPos.ZERO));
         }
         return result;
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/AggregationProjectionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/AggregationProjectionConverter.java
index e3e72abf9a1..5430c92f643 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/AggregationProjectionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/AggregationProjectionConverter.java
@@ -37,6 +37,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegm
 import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -76,12 +77,12 @@ public final class AggregationProjectionConverter 
implements SQLSegmentConverter
             functionQuantifier = 
SqlLiteral.createSymbol(SqlSelectKeyword.DISTINCT, SqlParserPos.ZERO);
         }
         if (segment.getAlias().isPresent()) {
-            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
SqlNode[]{new SqlBasicCall(convertOperator(segment.getType().name()),
-                    new SqlNode[]{createParametersSqlNode(parameters)}, 
SqlParserPos.ZERO, false, functionQuantifier),
-                    
SqlIdentifier.star(Collections.singletonList(segment.getAlias().get()), 
SqlParserPos.ZERO, Collections.singletonList(SqlParserPos.ZERO))}, 
SqlParserPos.ZERO));
+            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, 
Arrays.asList(new SqlBasicCall(convertOperator(segment.getType().name()),
+                            
Collections.singletonList(createParametersSqlNode(parameters)), 
SqlParserPos.ZERO, functionQuantifier).withExpanded(false),
+                    
SqlIdentifier.star(Collections.singletonList(segment.getAlias().get()), 
SqlParserPos.ZERO, Collections.singletonList(SqlParserPos.ZERO))), 
SqlParserPos.ZERO));
         }
-        return Optional.of(new 
SqlBasicCall(convertOperator(segment.getType().name()),
-                new SqlNode[]{createParametersSqlNode(parameters)}, 
SqlParserPos.ZERO, false, functionQuantifier));
+        return Optional.of((SqlBasicCall) new 
SqlBasicCall(convertOperator(segment.getType().name()),
+                
Collections.singletonList(createParametersSqlNode(parameters)), 
SqlParserPos.ZERO, functionQuantifier).withExpanded(false));
     }
     
     @Override
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ColumnProjectionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ColumnProjectionConverter.java
index a62fd982693..925331bc21b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ColumnProjectionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ColumnProjectionConverter.java
@@ -29,6 +29,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnPr
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 
@@ -42,7 +43,7 @@ public final class ColumnProjectionConverter implements 
SQLSegmentConverter<Colu
         if (segment.getAlias().isPresent()) {
             Optional<SqlIdentifier> columnSqlIdentifier = new 
ColumnConverter().convertToSQLNode(segment.getColumn());
             SqlIdentifier aliasSqlIdentifier = new 
SqlIdentifier(segment.getAlias().get(), SqlParserPos.ZERO);
-            return Optional.of(new SqlBasicCall(new SqlAsOperator(), new 
SqlNode[]{columnSqlIdentifier.get(), aliasSqlIdentifier}, SqlParserPos.ZERO));
+            return Optional.of(new SqlBasicCall(new SqlAsOperator(), 
Arrays.asList(columnSqlIdentifier.get(), aliasSqlIdentifier), 
SqlParserPos.ZERO));
         }
         return new 
ColumnConverter().convertToSQLNode(segment.getColumn()).map(optional -> 
optional);
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ExpressionProjectionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ExpressionProjectionConverter.java
index e1e7cba79cb..913cf628dab 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ExpressionProjectionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/ExpressionProjectionConverter.java
@@ -32,6 +32,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.Expressi
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
@@ -47,8 +48,8 @@ public final class ExpressionProjectionConverter implements 
SQLSegmentConverter<
         }
         Optional<SqlNode> result = new 
ExpressionConverter().convertToSQLNode(segment.getExpr());
         if (result.isPresent() && segment.getAlias().isPresent()) {
-            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
SqlNode[]{result.get(),
-                    
SqlIdentifier.star(Collections.singletonList(segment.getAlias().get()), 
SqlParserPos.ZERO, Collections.singletonList(SqlParserPos.ZERO))}, 
SqlParserPos.ZERO));
+            return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, 
Arrays.asList(result.get(),
+                    
SqlIdentifier.star(Collections.singletonList(segment.getAlias().get()), 
SqlParserPos.ZERO, Collections.singletonList(SqlParserPos.ZERO))), 
SqlParserPos.ZERO));
         }
         return result;
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
index f6ee7214c32..642956326f1 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/converter/segment/projection/impl/SubqueryProjectionConverter.java
@@ -31,6 +31,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.SubqueryProjectionSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Optional;
@@ -53,7 +54,7 @@ public final class SubqueryProjectionConverter implements 
SQLSegmentConverter<Su
         Collection<SqlNode> sqlNodes = new LinkedList<>();
         sqlNodes.add(sqlNode);
         sqlNodes.add(new SqlIdentifier(alias, SqlParserPos.ZERO));
-        return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, 
sqlNodes.toArray(new SqlNode[]{}), SqlParserPos.ZERO));
+        return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
ArrayList<>(sqlNodes), SqlParserPos.ZERO));
     }
     
     @Override

Reply via email to