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