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

tuichenchuxin 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 c920a84f98f Revise pr#28289 (#28354)
c920a84f98f is described below

commit c920a84f98fecbe943279f50fb36783b770a4dbe
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Sep 4 17:59:49 2023 +0800

    Revise pr#28289 (#28354)
---
 .../converter/segment/expression/impl/ColumnConverter.java     | 10 +++-------
 .../segment/expression/impl/RowExpressionConverter.java        |  4 ++--
 .../segment/projection/impl/ShorthandProjectionConverter.java  |  6 ++----
 .../segment/projection/impl/SubqueryProjectionConverter.java   | 10 +++++-----
 .../src/test/resources/converter/select-sub-query.xml          |  2 +-
 5 files changed, 13 insertions(+), 19 deletions(-)

diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/ColumnConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/ColumnConverter.java
index f7f9b4b429e..0668a96ac8b 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/ColumnConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/ColumnConverter.java
@@ -36,17 +36,13 @@ public final class ColumnConverter implements 
SQLSegmentConverter<ColumnSegment,
     @Override
     public Optional<SqlNode> convert(final ColumnSegment segment) {
         List<String> names = new ArrayList<>();
-        if (segment.getOwner().isPresent()) {
-            addOwnerNames(names, segment.getOwner().get());
-        }
+        segment.getOwner().ifPresent(optional -> addOwnerNames(names, 
optional));
         names.add(segment.getIdentifier().getValue());
         return Optional.of(new SqlIdentifier(names, SqlParserPos.ZERO));
     }
     
     private void addOwnerNames(final List<String> names, final OwnerSegment 
owner) {
-        if (null != owner) {
-            addOwnerNames(names, owner.getOwner().orElse(null));
-            names.add(owner.getIdentifier().getValue());
-        }
+        owner.getOwner().ifPresent(optional -> addOwnerNames(names, optional));
+        names.add(owner.getIdentifier().getValue());
     }
 }
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/RowExpressionConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/RowExpressionConverter.java
index f5431b0a3c0..928b68b7420 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/RowExpressionConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/expression/impl/RowExpressionConverter.java
@@ -38,8 +38,8 @@ public final class RowExpressionConverter implements 
SQLSegmentConverter<RowExpr
     public Optional<SqlNode> convert(final RowExpression segment) {
         List<SqlNode> sqlNodes = new ArrayList<>();
         ExpressionConverter expressionConverter = new ExpressionConverter();
-        for (ExpressionSegment expressionSegment : segment.getItems()) {
-            sqlNodes.add(expressionConverter.convert(expressionSegment).get());
+        for (ExpressionSegment each : segment.getItems()) {
+            expressionConverter.convert(each).ifPresent(sqlNodes::add);
         }
         return 
Optional.of(SqlStdOperatorTable.ROW.createCall(SqlParserPos.ZERO, sqlNodes));
     }
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/ShorthandProjectionConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/ShorthandProjectionConverter.java
index b80d845b8e3..6a0c1e8fe75 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/ShorthandProjectionConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/ShorthandProjectionConverter.java
@@ -50,9 +50,7 @@ public final class ShorthandProjectionConverter implements 
SQLSegmentConverter<S
     }
     
     private void addOwnerNames(final List<String> names, final OwnerSegment 
owner) {
-        if (null != owner) {
-            addOwnerNames(names, owner.getOwner().orElse(null));
-            names.add(owner.getIdentifier().getValue());
-        }
+        owner.getOwner().ifPresent(optional -> addOwnerNames(names, optional));
+        names.add(owner.getIdentifier().getValue());
     }
 }
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/SubqueryProjectionConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/SubqueryProjectionConverter.java
index e7cd09880cf..653749ce6f7 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/SubqueryProjectionConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/projection/impl/SubqueryProjectionConverter.java
@@ -23,9 +23,9 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
 import org.apache.shardingsphere.sql.parser.sql.common.enums.SubqueryType;
+import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.SubqueryProjectionSegment;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.SQLSegmentConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.statement.select.SelectStatementConverter;
-import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.SubqueryProjectionSegment;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -45,17 +45,17 @@ public final class SubqueryProjectionConverter implements 
SQLSegmentConverter<Su
         }
         SqlNode sqlNode = new 
SelectStatementConverter().convert(segment.getSubquery().getSelect());
         if (segment.getAliasName().isPresent()) {
-            sqlNode = convertToSQLStatement(sqlNode, 
segment.getAliasName().get()).get();
+            sqlNode = convertWithAlias(sqlNode, segment.getAliasName().get());
         }
-        return 
segment.getSubquery().getSubqueryType().equals(SubqueryType.EXISTS_SUBQUERY)
+        return SubqueryType.EXISTS_SUBQUERY == 
segment.getSubquery().getSubqueryType()
                 ? Optional.of(new SqlBasicCall(SqlStdOperatorTable.EXISTS, 
Collections.singletonList(sqlNode), SqlParserPos.ZERO))
                 : Optional.of(sqlNode);
     }
     
-    private Optional<SqlNode> convertToSQLStatement(final SqlNode sqlNode, 
final String alias) {
+    private SqlNode convertWithAlias(final SqlNode sqlNode, final String 
alias) {
         Collection<SqlNode> sqlNodes = new LinkedList<>();
         sqlNodes.add(sqlNode);
         sqlNodes.add(new SqlIdentifier(alias, SqlParserPos.ZERO));
-        return Optional.of(new SqlBasicCall(SqlStdOperatorTable.AS, new 
ArrayList<>(sqlNodes), SqlParserPos.ZERO));
+        return new SqlBasicCall(SqlStdOperatorTable.AS, new 
ArrayList<>(sqlNodes), SqlParserPos.ZERO);
     }
 }
diff --git 
a/test/it/optimizer/src/test/resources/converter/select-sub-query.xml 
b/test/it/optimizer/src/test/resources/converter/select-sub-query.xml
index 8042876c366..7ee7d0489b1 100644
--- a/test/it/optimizer/src/test/resources/converter/select-sub-query.xml
+++ b/test/it/optimizer/src/test/resources/converter/select-sub-query.xml
@@ -19,4 +19,4 @@
 <sql-node-converter-test-cases>
     <test-cases sql-case-id="select_with_exists_sub_query_with_project" 
expected-sql="SELECT EXISTS (SELECT 1 FROM `t_order`)" db-types="MySQL" />
     <test-cases sql-case-id="select_with_exists_sub_query_with_project" 
expected-sql="SELECT EXISTS (SELECT 1 FROM &quot;t_order&quot;)" 
db-types="PostgreSQL,openGauss" />
-</sql-node-converter-test-cases>
\ No newline at end of file
+</sql-node-converter-test-cases>

Reply via email to