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 1381e924e09 Revise pr#27599 (#27624)
1381e924e09 is described below

commit 1381e924e09d880866c24c50400047bc0fcb707e
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Wed Aug 2 12:34:28 2023 +0800

    Revise pr#27599 (#27624)
    
    * Revise pr#27599
    
    * Revise pr#27599
---
 .../segment/from/impl/DeleteMultiTableConverter.java   | 18 +++++++-----------
 .../statement/delete/DeleteStatementConverter.java     | 17 ++++++-----------
 .../statement/select/SelectStatementConverter.java     |  6 ++----
 3 files changed, 15 insertions(+), 26 deletions(-)

diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/from/impl/DeleteMultiTableConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/from/impl/DeleteMultiTableConverter.java
index 3089d88982d..8e7e5750999 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/from/impl/DeleteMultiTableConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/from/impl/DeleteMultiTableConverter.java
@@ -30,7 +30,6 @@ import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
-import java.util.ArrayList;
 
 /**
  * Delete multi table converter.
@@ -42,16 +41,13 @@ public final class DeleteMultiTableConverter implements 
SQLSegmentConverter<Dele
         if (null == segment) {
             return Optional.empty();
         }
-        Collection<SqlNode> sqlNodeList = new LinkedList<>();
-        SqlNode table = new 
TableConverter().convert(segment.getRelationTable()).get();
-        sqlNodeList.add(table);
-        List<SimpleTableSegment> actualDeleteTables = 
segment.getActualDeleteTables();
-        List<String> names = new ArrayList<>();
-        for (SimpleTableSegment each : actualDeleteTables) {
-            String tableName = each.getTableName().getIdentifier().getValue();
-            names.add(tableName);
+        Collection<SqlNode> sqlNodes = new LinkedList<>();
+        new 
TableConverter().convert(segment.getRelationTable()).ifPresent(sqlNodes::add);
+        List<String> tableNames = new LinkedList<>();
+        for (SimpleTableSegment each : segment.getActualDeleteTables()) {
+            tableNames.add(each.getTableName().getIdentifier().getValue());
         }
-        sqlNodeList.add(new SqlIdentifier(names, SqlParserPos.ZERO));
-        return Optional.of(new SqlNodeList(sqlNodeList, SqlParserPos.ZERO));
+        sqlNodes.add(new SqlIdentifier(tableNames, SqlParserPos.ZERO));
+        return Optional.of(new SqlNodeList(sqlNodes, SqlParserPos.ZERO));
     }
 }
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/delete/DeleteStatementConverter.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/delete/DeleteStatementConverter.java
index b6666b26e3d..154bb26f6db 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/delete/DeleteStatementConverter.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/statement/delete/DeleteStatementConverter.java
@@ -17,13 +17,12 @@
 
 package 
org.apache.shardingsphere.sqlfederation.compiler.converter.statement.delete;
 
-import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlDelete;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlOrderBy;
-import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.OrderBySegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.limit.LimitSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DeleteStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.handler.dml.DeleteStatementHandler;
@@ -43,8 +42,7 @@ public final class DeleteStatementConverter implements 
SQLStatementConverter<Del
     @Override
     public SqlNode convert(final DeleteStatement deleteStatement) {
         SqlDelete sqlDelete = convertDelete(deleteStatement);
-        Optional<OrderBySegment> orderByfetcher = 
DeleteStatementHandler.getOrderBySegment(deleteStatement);
-        SqlNodeList orderBy = orderByfetcher.flatMap(optional -> new 
OrderByConverter().convert(optional)).orElse(SqlNodeList.EMPTY);
+        SqlNodeList orderBy = 
DeleteStatementHandler.getOrderBySegment(deleteStatement).flatMap(optional -> 
new OrderByConverter().convert(optional)).orElse(SqlNodeList.EMPTY);
         Optional<LimitSegment> limit = 
DeleteStatementHandler.getLimitSegment(deleteStatement);
         if (limit.isPresent()) {
             SqlNode offset = limit.get().getOffset().flatMap(optional -> new 
PaginationValueSQLConverter().convert(optional)).orElse(null);
@@ -55,12 +53,9 @@ public final class DeleteStatementConverter implements 
SQLStatementConverter<Del
     }
     
     private SqlDelete convertDelete(final DeleteStatement deleteStatement) {
-        SqlNode targetTable = new 
TableConverter().convert(deleteStatement.getTable()).get();
+        SqlNode deleteTable = new 
TableConverter().convert(deleteStatement.getTable()).orElseThrow(IllegalStateException::new);
         SqlNode condition = deleteStatement.getWhere().flatMap(optional -> new 
WhereConverter().convert(optional)).orElse(null);
-        if (deleteStatement.getTable().getAliasName().isPresent()) {
-            SqlIdentifier alias = new 
SqlIdentifier(deleteStatement.getTable().getAliasName().toString(), 
SqlParserPos.ZERO);
-            return new SqlDelete(SqlParserPos.ZERO, targetTable, condition, 
null, alias);
-        }
-        return new SqlDelete(SqlParserPos.ZERO, targetTable, condition, null, 
null);
+        SqlIdentifier alias = 
deleteStatement.getTable().getAliasName().map(optional -> new 
SqlIdentifier(optional, SqlParserPos.ZERO)).orElse(null);
+        return new SqlDelete(SqlParserPos.ZERO, deleteTable, condition, null, 
alias);
     }
 }
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 e70f9a2d8b0..bab0b9feb32 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
@@ -25,10 +25,8 @@ import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.parser.SqlParserPos;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.combine.CombineSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.limit.LimitSegment;
-import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WindowSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.handler.dml.SelectStatementHandler;
-import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.window.WindowConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.from.TableConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.groupby.GroupByConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.groupby.HavingConverter;
@@ -37,6 +35,7 @@ import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.orderb
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.projection.DistinctConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.projection.ProjectionsConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.where.WhereConverter;
+import 
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.window.WindowConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.statement.SQLStatementConverter;
 import 
org.apache.shardingsphere.sqlfederation.compiler.converter.type.CombineOperatorConverter;
 
@@ -69,8 +68,7 @@ public final class SelectStatementConverter implements 
SQLStatementConverter<Sel
         SqlNode where = selectStatement.getWhere().flatMap(optional -> new 
WhereConverter().convert(optional)).orElse(null);
         SqlNodeList groupBy = selectStatement.getGroupBy().flatMap(optional -> 
new GroupByConverter().convert(optional)).orElse(null);
         SqlNode having = selectStatement.getHaving().flatMap(optional -> new 
HavingConverter().convert(optional)).orElse(null);
-        Optional<WindowSegment> windowSegment = 
SelectStatementHandler.getWindowSegment(selectStatement);
-        SqlNodeList window = windowSegment.map(new 
WindowConverter()::convert).map(Optional::get).orElse(SqlNodeList.EMPTY);
+        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);
     }
     

Reply via email to