From 7dd052b1f1c6abf19dcf7b9c5a0cfe1390d48ad6 Mon Sep 17 00:00:00 2001 From: duanzhengqiang Date: Thu, 26 Dec 2024 13:52:46 +0800 Subject: [PATCH 1/2] Support rename table statement sql bind and split segment bind to ddl and dml package --- .../column/ColumnDefinitionSegmentBinder.java | 8 +-- .../RenameTableDefinitionSegmentBinder.java | 50 ++++++++++++++ .../assign/AssignmentSegmentBinder.java | 8 +-- .../column/InsertColumnsSegmentBinder.java | 6 +- .../combine/CombineSegmentBinder.java | 4 +- .../expression/ExpressionSegmentBinder.java | 20 +++--- .../type/BetweenExpressionSegmentBinder.java | 6 +- .../type/BinaryOperationExpressionBinder.java | 6 +- .../expression/type/ColumnSegmentBinder.java | 8 +-- .../type/ExistsSubqueryExpressionBinder.java | 4 +- .../type/FunctionExpressionSegmentBinder.java | 6 +- .../expression/type/InExpressionBinder.java | 6 +- .../expression/type/NotExpressionBinder.java | 6 +- .../type/SubquerySegmentBinder.java | 4 +- .../{ => dml}/from/TableSegmentBinder.java | 14 ++-- .../context/TableSegmentBinderContext.java | 2 +- .../FunctionTableSegmentBinderContext.java | 4 +- .../type/SimpleTableSegmentBinderContext.java | 4 +- .../type/DeleteMultiTableSegmentBinder.java | 6 +- .../from/type/JoinTableSegmentBinder.java | 10 +-- .../from/type/SimpleTableSegmentBinder.java | 23 +++++-- .../from/type/SubqueryTableSegmentBinder.java | 8 +-- .../{ => dml}/lock/LockSegmentBinder.java | 6 +- .../{ => dml}/order/GroupBySegmentBinder.java | 6 +- .../{ => dml}/order/OrderBySegmentBinder.java | 6 +- .../item/ColumnOrderByItemSegmentBinder.java | 6 +- .../ExpressionOrderByItemSegmentBinder.java | 6 +- .../order/item/OrderByItemSegmentBinder.java | 4 +- .../predicate/HavingSegmentBinder.java | 6 +- .../predicate/WhereSegmentBinder.java | 6 +- .../projection/ProjectionsSegmentBinder.java | 16 ++--- .../type/ColumnProjectionSegmentBinder.java | 6 +- .../ShorthandProjectionSegmentBinder.java | 4 +- .../type/SubqueryProjectionSegmentBinder.java | 6 +- .../CommonTableExpressionSegmentBinder.java | 6 +- .../{ => dml}/with/WithSegmentBinder.java | 6 +- .../util/SubqueryTableBindUtils.java | 2 +- .../statement/SQLStatementBinderContext.java | 2 +- .../ddl/AlterTableStatementBinder.java | 4 +- .../ddl/CreateIndexStatementBinder.java | 6 +- .../ddl/CreateTableStatementBinder.java | 6 +- .../ddl/DropTableStatementBinder.java | 4 +- .../ddl/RenameTableStatementBinder.java | 51 ++++++++++++++ .../statement/dml/DeleteStatementBinder.java | 10 +-- .../statement/dml/InsertStatementBinder.java | 10 +-- .../statement/dml/SelectStatementBinder.java | 24 +++---- .../statement/dml/UpdateStatementBinder.java | 12 ++-- .../engine/type/DDLStatementBindEngine.java | 5 ++ .../assign/AssignmentSegmentBinderTest.java | 5 +- .../BinaryOperationExpressionBinderTest.java | 1 + .../type/ColumnSegmentBinderTest.java | 5 +- .../ExistsSubqueryExpressionBinderTest.java | 1 + .../FunctionExpressionSegmentBinderTest.java | 1 + .../type/InExpressionBinderTest.java | 1 + .../type/NotExpressionBinderTest.java | 1 + .../type/SubquerySegmentBinderTest.java | 5 +- .../from/type/JoinTableSegmentBinderTest.java | 3 +- .../type/SimpleTableSegmentBinderTest.java | 3 +- .../type/SubqueryTableSegmentBinderTest.java | 3 +- .../predicate/WhereSegmentBinderTest.java | 3 +- .../ShorthandProjectionSegmentBinderTest.java | 5 +- .../test/resources/cases/ddl/rename-table.xml | 68 +++++++++++++++++++ .../test/resources/sqls/ddl/rename-table.xml | 22 ++++++ 63 files changed, 395 insertions(+), 171 deletions(-) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => ddl}/column/ColumnDefinitionSegmentBinder.java (88%) create mode 100644 infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/RenameTableDefinitionSegmentBinder.java rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/assign/AssignmentSegmentBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/column/InsertColumnsSegmentBinder.java (89%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/combine/CombineSegmentBinder.java (94%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/ExpressionSegmentBinder.java (82%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/BetweenExpressionSegmentBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/BinaryOperationExpressionBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/ColumnSegmentBinder.java (97%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/ExistsSubqueryExpressionBinder.java (92%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/FunctionExpressionSegmentBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/InExpressionBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/NotExpressionBinder.java (89%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/expression/type/SubquerySegmentBinder.java (93%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/TableSegmentBinder.java (85%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/context/TableSegmentBinderContext.java (94%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/context/type/FunctionTableSegmentBinderContext.java (88%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/context/type/SimpleTableSegmentBinderContext.java (93%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/type/DeleteMultiTableSegmentBinder.java (89%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/type/JoinTableSegmentBinder.java (96%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/type/SimpleTableSegmentBinder.java (91%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/from/type/SubqueryTableSegmentBinder.java (91%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/lock/LockSegmentBinder.java (89%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/order/GroupBySegmentBinder.java (93%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/order/OrderBySegmentBinder.java (93%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/order/item/ColumnOrderByItemSegmentBinder.java (89%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/order/item/ExpressionOrderByItemSegmentBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/order/item/OrderByItemSegmentBinder.java (94%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/predicate/HavingSegmentBinder.java (88%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/predicate/WhereSegmentBinder.java (88%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/projection/ProjectionsSegmentBinder.java (92%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/projection/type/ColumnProjectionSegmentBinder.java (90%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/projection/type/ShorthandProjectionSegmentBinder.java (96%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/projection/type/SubqueryProjectionSegmentBinder.java (88%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/with/CommonTableExpressionSegmentBinder.java (91%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/{ => dml}/with/WithSegmentBinder.java (96%) rename infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/{ => segment}/util/SubqueryTableBindUtils.java (98%) create mode 100644 infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/RenameTableStatementBinder.java create mode 100644 test/it/binder/src/test/resources/cases/ddl/rename-table.xml create mode 100644 test/it/binder/src/test/resources/sqls/ddl/rename-table.xml diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/ColumnDefinitionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/ColumnDefinitionSegmentBinder.java similarity index 88% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/ColumnDefinitionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/ColumnDefinitionSegmentBinder.java index cffab8116b328..f9e720f7a90c5 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/ColumnDefinitionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/ColumnDefinitionSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.column; +package org.apache.shardingsphere.infra.binder.engine.segment.ddl.column; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; @@ -23,9 +23,9 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.ColumnDefinitionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/RenameTableDefinitionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/RenameTableDefinitionSegmentBinder.java new file mode 100644 index 0000000000000..5083861f2a6f6 --- /dev/null +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/ddl/column/RenameTableDefinitionSegmentBinder.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.infra.binder.engine.segment.ddl.column; + +import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; +import com.google.common.collect.Multimap; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; +import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.RenameTableDefinitionSegment; + +/** + * Rename table definition segment binder. + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public final class RenameTableDefinitionSegmentBinder { + + /** + * Bind rename table definition segment. + * + * @param segment rename table definition segment + * @param binderContext SQL statement binder context + * @param tableBinderContexts table binder contexts + * @return bound rename table definition segment + */ + public static RenameTableDefinitionSegment bind(final RenameTableDefinitionSegment segment, final SQLStatementBinderContext binderContext, + final Multimap tableBinderContexts) { + RenameTableDefinitionSegment result = new RenameTableDefinitionSegment(segment.getStartIndex(), segment.getStopIndex()); + result.setTable(SimpleTableSegmentBinder.bind(segment.getTable(), binderContext, tableBinderContexts)); + result.setRenameTable(SimpleTableSegmentBinder.bind(segment.getRenameTable(), binderContext, tableBinderContexts)); + return result; + } +} diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/assign/AssignmentSegmentBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/assign/AssignmentSegmentBinder.java index 2d47f9c66bec0..0de9a459bc71b 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/assign/AssignmentSegmentBinder.java @@ -15,16 +15,16 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.assign; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.assign; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.SetAssignmentSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/InsertColumnsSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/column/InsertColumnsSegmentBinder.java similarity index 89% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/InsertColumnsSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/column/InsertColumnsSegmentBinder.java index 5f02778d073b8..158b778765424 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/column/InsertColumnsSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/column/InsertColumnsSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.column; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.column; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; @@ -23,8 +23,8 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.InsertColumnsSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/combine/CombineSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java similarity index 94% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/combine/CombineSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java index a818cd2860465..73c70fd7fd6d5 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/combine/CombineSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.combine; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.combine; import com.cedarsoftware.util.CaseInsensitiveMap; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.dml.SelectStatementBinder; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.combine.CombineSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/ExpressionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/ExpressionSegmentBinder.java similarity index 82% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/ExpressionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/ExpressionSegmentBinder.java index 78b395fc203b8..365f7fed040c5 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/ExpressionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/ExpressionSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; @@ -23,15 +23,15 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.BetweenExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.BinaryOperationExpressionBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ExistsSubqueryExpressionBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.FunctionExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.InExpressionBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.NotExpressionBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.SubquerySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.BetweenExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.BinaryOperationExpressionBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ExistsSubqueryExpressionBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.FunctionExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.InExpressionBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.NotExpressionBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.SubquerySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BetweenExpression; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BetweenExpressionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BetweenExpressionSegmentBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BetweenExpressionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BetweenExpressionSegmentBinder.java index b12f2c5feaaf4..ce07eb57e1f17 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BetweenExpressionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BetweenExpressionSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BetweenExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BinaryOperationExpressionBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BinaryOperationExpressionBinder.java index 43cb19973c0df..bb244a823747e 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/BinaryOperationExpressionBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ColumnSegmentBinder.java similarity index 97% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ColumnSegmentBinder.java index d4f9cdeecbcb3..0e0c59a8b1435 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ColumnSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.cedarsoftware.util.CaseInsensitiveSet; @@ -25,9 +25,9 @@ import lombok.NoArgsConstructor; import org.apache.groovy.util.Maps; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.FunctionTableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.FunctionTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; import org.apache.shardingsphere.infra.exception.kernel.metadata.ColumnNotFoundException; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinder.java similarity index 92% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinder.java index 70026051bccd0..be38cb4f4534a 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinder.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExistsSubqueryExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/FunctionExpressionSegmentBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/FunctionExpressionSegmentBinder.java index a169c4b5e9e01..8e952738fdda1 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/FunctionExpressionSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.FunctionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/InExpressionBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/InExpressionBinder.java index 8233c07b324a9..487be4d00c7ef 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/InExpressionBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.InExpression; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/NotExpressionBinder.java similarity index 89% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/NotExpressionBinder.java index b877238d8704a..59b52baf3781d 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/NotExpressionBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; @@ -23,8 +23,8 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.NotExpression; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinder.java similarity index 93% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinder.java index 63596a38eadf6..e12eafd2e21a2 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinder.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.dml.SelectStatementBinder; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/TableSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/TableSegmentBinder.java similarity index 85% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/TableSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/TableSegmentBinder.java index a29186e97c3ce..bf1f362312a97 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/TableSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/TableSegmentBinder.java @@ -15,18 +15,18 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.FunctionTableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.DeleteMultiTableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.JoinTableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SubqueryTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.FunctionTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.DeleteMultiTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.JoinTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SubqueryTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.CollectionTableSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.DeleteMultiTableSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/TableSegmentBinderContext.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/TableSegmentBinderContext.java similarity index 94% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/TableSegmentBinderContext.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/TableSegmentBinderContext.java index c1dda0b3420f6..685fabe34d5cc 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/TableSegmentBinderContext.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/TableSegmentBinderContext.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.context; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/FunctionTableSegmentBinderContext.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/FunctionTableSegmentBinderContext.java similarity index 88% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/FunctionTableSegmentBinderContext.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/FunctionTableSegmentBinderContext.java index 2de4c6a93218a..d121beadd6ac3 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/FunctionTableSegmentBinderContext.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/FunctionTableSegmentBinderContext.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.context.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; import java.util.Collection; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/SimpleTableSegmentBinderContext.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/SimpleTableSegmentBinderContext.java similarity index 93% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/SimpleTableSegmentBinderContext.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/SimpleTableSegmentBinderContext.java index 48c985b1d9197..e7112afd4e8c8 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/context/type/SimpleTableSegmentBinderContext.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/context/type/SimpleTableSegmentBinderContext.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.context.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type; import com.cedarsoftware.util.CaseInsensitiveMap; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ShorthandProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/DeleteMultiTableSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/DeleteMultiTableSegmentBinder.java similarity index 89% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/DeleteMultiTableSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/DeleteMultiTableSegmentBinder.java index c1b7e331f81b6..a7317a25c57eb 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/DeleteMultiTableSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/DeleteMultiTableSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.TableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.TableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.DeleteMultiTableSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/JoinTableSegmentBinder.java similarity index 96% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/JoinTableSegmentBinder.java index 455d9d7a4936b..fda8fc2a42a47 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/JoinTableSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type; import com.cedarsoftware.util.CaseInsensitiveMap; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; @@ -24,10 +24,10 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.TableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.TableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java similarity index 91% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java index a7b9198874780..6b2561ce90a15 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SimpleTableSegmentBinder.java @@ -15,16 +15,16 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.util.SubqueryTableBindUtils; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; -import org.apache.shardingsphere.infra.binder.engine.util.SubqueryTableBindUtils; import org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData; import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; @@ -41,6 +41,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn; import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.ColumnDefinitionSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.RenameTableDefinitionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; @@ -52,6 +53,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement; +import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; import java.util.Collection; @@ -140,6 +142,10 @@ private static void checkTableExists(final SQLStatementBinderContext binderConte ShardingSpherePreconditions.checkState(((DropTableStatement) binderContext.getSqlStatement()).isIfExists() || schema.containsTable(tableName), () -> new TableNotFoundException(tableName)); return; } + if (binderContext.getSqlStatement() instanceof RenameTableStatement && isRenameTable((RenameTableStatement) binderContext.getSqlStatement(), tableName)) { + ShardingSpherePreconditions.checkState(binderContext.getHintValueContext().isSkipMetadataValidate() || !schema.containsTable(tableName), () -> new TableExistsException(tableName)); + return; + } if ("DUAL".equalsIgnoreCase(tableName)) { return; } @@ -156,6 +162,15 @@ private static boolean isRenameTable(final AlterTableStatement alterTableStateme return alterTableStatement.getRenameTable().isPresent() && alterTableStatement.getRenameTable().get().getTableName().getIdentifier().getValue().equalsIgnoreCase(tableName); } + private static boolean isRenameTable(final RenameTableStatement renameTableStatement, final String tableName) { + for (RenameTableDefinitionSegment each : renameTableStatement.getRenameTables()) { + if (each.getRenameTable().getTableName().getIdentifier().getValue().equalsIgnoreCase(tableName)) { + return true; + } + } + return false; + } + private static SimpleTableSegmentBinderContext createSimpleTableBinderContext(final SimpleTableSegment segment, final ShardingSphereSchema schema, final IdentifierValue databaseName, final IdentifierValue schemaName, final SQLStatementBinderContext binderContext) { IdentifierValue tableName = segment.getTableName().getIdentifier(); diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinder.java similarity index 91% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinder.java index 3ab92e9a56e48..e4c94bd49e4e1 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinder.java @@ -15,17 +15,17 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.from.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.dml.SelectStatementBinder; -import org.apache.shardingsphere.infra.binder.engine.util.SubqueryTableBindUtils; +import org.apache.shardingsphere.infra.binder.engine.segment.util.SubqueryTableBindUtils; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.AliasSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/lock/LockSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/lock/LockSegmentBinder.java similarity index 89% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/lock/LockSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/lock/LockSegmentBinder.java index 5ab1ae83f8577..c4eb5e86ccf34 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/lock/LockSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/lock/LockSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.lock; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.lock; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.LockSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/GroupBySegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/GroupBySegmentBinder.java similarity index 93% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/GroupBySegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/GroupBySegmentBinder.java index 8d36597ed7460..31b4b0c780708 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/GroupBySegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/GroupBySegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.order; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.order; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.order.item.OrderByItemSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.item.OrderByItemSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.exception.kernel.metadata.ColumnNotFoundException; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.GroupBySegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/OrderBySegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/OrderBySegmentBinder.java similarity index 93% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/OrderBySegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/OrderBySegmentBinder.java index 426549e60141a..be18c8a94ecfd 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/OrderBySegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/OrderBySegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.order; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.order; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.order.item.OrderByItemSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.item.OrderByItemSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.exception.kernel.metadata.ColumnNotFoundException; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ColumnOrderByItemSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ColumnOrderByItemSegmentBinder.java similarity index 89% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ColumnOrderByItemSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ColumnOrderByItemSegmentBinder.java index abedd2763b122..3474727f2305e 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ColumnOrderByItemSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ColumnOrderByItemSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.order.item; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.order.item; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ColumnOrderByItemSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ExpressionOrderByItemSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ExpressionOrderByItemSegmentBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ExpressionOrderByItemSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ExpressionOrderByItemSegmentBinder.java index 454fa2142f380..0f1445c71bfca 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/ExpressionOrderByItemSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/ExpressionOrderByItemSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.order.item; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.order.item; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ExpressionOrderByItemSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/OrderByItemSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/OrderByItemSegmentBinder.java similarity index 94% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/OrderByItemSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/OrderByItemSegmentBinder.java index b1e152b4938ad..c967cc415af72 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/order/item/OrderByItemSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/order/item/OrderByItemSegmentBinder.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.order.item; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.order.item; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ColumnOrderByItemSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.ExpressionOrderByItemSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/HavingSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/HavingSegmentBinder.java similarity index 88% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/HavingSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/HavingSegmentBinder.java index d321b700a2fba..1015524d1cd88 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/HavingSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/HavingSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.predicate; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.HavingSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/WhereSegmentBinder.java similarity index 88% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/WhereSegmentBinder.java index c9e57d1cb7871..9698c165753de 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/predicate/WhereSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.predicate; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/ProjectionsSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/ProjectionsSegmentBinder.java similarity index 92% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/ProjectionsSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/ProjectionsSegmentBinder.java index 9b3c92a48577b..42f8b6eaeb068 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/ProjectionsSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/ProjectionsSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.projection; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.projection; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; @@ -23,14 +23,14 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.ExpressionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.projection.type.ColumnProjectionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.projection.type.ShorthandProjectionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.projection.type.SubqueryProjectionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.ExpressionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type.ColumnProjectionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type.ShorthandProjectionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type.SubqueryProjectionSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; -import org.apache.shardingsphere.infra.binder.engine.util.SubqueryTableBindUtils; +import org.apache.shardingsphere.infra.binder.engine.segment.util.SubqueryTableBindUtils; import org.apache.shardingsphere.infra.exception.kernel.metadata.ColumnNotFoundException; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.AggregationDistinctProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ColumnProjectionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ColumnProjectionSegmentBinder.java similarity index 90% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ColumnProjectionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ColumnProjectionSegmentBinder.java index 3dd3cff32cca2..71bce34d34c97 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ColumnProjectionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ColumnProjectionSegmentBinder.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.projection.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinder.java similarity index 96% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinder.java index 65394bf10e584..0ee6d7a9180ff 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinder.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.projection.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ShorthandProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/SubqueryProjectionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/SubqueryProjectionSegmentBinder.java similarity index 88% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/SubqueryProjectionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/SubqueryProjectionSegmentBinder.java index 4feba0cb9b1df..d4950f86e8d6c 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/SubqueryProjectionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/SubqueryProjectionSegmentBinder.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.projection.type; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.SubquerySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.SubquerySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.SubqueryProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/CommonTableExpressionSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/CommonTableExpressionSegmentBinder.java similarity index 91% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/CommonTableExpressionSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/CommonTableExpressionSegmentBinder.java index 136c33e7fbdcc..6f5d3cbe651c6 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/CommonTableExpressionSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/CommonTableExpressionSegmentBinder.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.with; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.with; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SubqueryTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SubqueryTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.complex.CommonTableExpressionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/WithSegmentBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/WithSegmentBinder.java similarity index 96% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/WithSegmentBinder.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/WithSegmentBinder.java index ca4af9da753b7..4c5c4ef3c9e28 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/with/WithSegmentBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/with/WithSegmentBinder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.segment.with; +package org.apache.shardingsphere.infra.binder.engine.segment.dml.with; import com.cedarsoftware.util.CaseInsensitiveMap; import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; @@ -23,8 +23,8 @@ import com.google.common.collect.Multimap; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.complex.CommonTableExpressionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/util/SubqueryTableBindUtils.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/util/SubqueryTableBindUtils.java similarity index 98% rename from infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/util/SubqueryTableBindUtils.java rename to infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/util/SubqueryTableBindUtils.java index cafaac7a910f0..1e5b4032cd5e4 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/util/SubqueryTableBindUtils.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/util/SubqueryTableBindUtils.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.engine.util; +package org.apache.shardingsphere.infra.binder.engine.segment.util; import com.google.common.base.Strings; import lombok.AccessLevel; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementBinderContext.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementBinderContext.java index 9a0afe11c165f..d21f286a08cd6 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementBinderContext.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementBinderContext.java @@ -23,7 +23,7 @@ import com.google.common.collect.Multimap; import lombok.Getter; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/AlterTableStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/AlterTableStatementBinder.java index 4a3f1e31b1292..1373f80147f90 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/AlterTableStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/AlterTableStatementBinder.java @@ -21,8 +21,8 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateIndexStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateIndexStatementBinder.java index 6fb91821bc6d4..33dd8e4ee1eae 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateIndexStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateIndexStatementBinder.java @@ -22,9 +22,9 @@ import com.google.common.collect.Multimap; import lombok.SneakyThrows; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.ColumnSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateTableStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateTableStatementBinder.java index 3885e86ad3367..2310493a94355 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateTableStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/CreateTableStatementBinder.java @@ -21,9 +21,9 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.column.ColumnDefinitionSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.ddl.column.ColumnDefinitionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.dml.SelectStatementBinder; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java index c54d2ce00bdeb..9d463ebc2d030 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java @@ -21,8 +21,8 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/RenameTableStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/RenameTableStatementBinder.java new file mode 100644 index 0000000000000..08cfcbaf9808e --- /dev/null +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/RenameTableStatementBinder.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.infra.binder.engine.statement.ddl; + +import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; +import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.Multimap; +import lombok.SneakyThrows; +import org.apache.shardingsphere.infra.binder.engine.segment.ddl.column.RenameTableDefinitionSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; +import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; +import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement; + +/** + * Rename table statement binder. + */ +public final class RenameTableStatementBinder implements SQLStatementBinder { + + @Override + public RenameTableStatement bind(final RenameTableStatement sqlStatement, final SQLStatementBinderContext binderContext) { + RenameTableStatement result = copy(sqlStatement); + Multimap tableBinderContexts = LinkedHashMultimap.create(); + sqlStatement.getRenameTables().forEach(each -> result.getRenameTables().add(RenameTableDefinitionSegmentBinder.bind(each, binderContext, tableBinderContexts))); + return result; + } + + @SneakyThrows(ReflectiveOperationException.class) + private static RenameTableStatement copy(final RenameTableStatement sqlStatement) { + RenameTableStatement result = sqlStatement.getClass().getDeclaredConstructor().newInstance(); + result.addParameterMarkerSegments(sqlStatement.getParameterMarkerSegments()); + result.getCommentSegments().addAll(sqlStatement.getCommentSegments()); + result.getVariableNames().addAll(sqlStatement.getVariableNames()); + return result; + } +} diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java index c1c2a3e0b7252..b0a16a9254f02 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java @@ -21,11 +21,11 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.from.TableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.order.OrderBySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.predicate.WhereSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.with.WithSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.TableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.OrderBySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate.WhereSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.with.WithSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinder.java index f3dd10f268f32..73eeb11fea218 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinder.java @@ -21,11 +21,11 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.column.InsertColumnsSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.expression.type.SubquerySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.type.SimpleTableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.with.WithSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.column.InsertColumnsSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.SubquerySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.with.WithSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinder.java index 3f0cf8244b2a2..020d09e1a98f5 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinder.java @@ -22,20 +22,20 @@ import com.google.common.collect.Multimap; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.combine.CombineSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.TableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.lock.LockSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.order.GroupBySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.order.OrderBySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.predicate.HavingSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.predicate.WhereSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.projection.ProjectionsSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.with.WithSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.combine.CombineSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.TableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.lock.LockSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.GroupBySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.OrderBySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate.HavingSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate.WhereSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.ProjectionsSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.with.WithSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; -import org.apache.shardingsphere.infra.binder.engine.util.SubqueryTableBindUtils; +import org.apache.shardingsphere.infra.binder.engine.segment.util.SubqueryTableBindUtils; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java index 8c753e4c83e68..0b76b619a9365 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java @@ -21,12 +21,12 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import lombok.SneakyThrows; -import org.apache.shardingsphere.infra.binder.engine.segment.assign.AssignmentSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.TableSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.order.OrderBySegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.predicate.WhereSegmentBinder; -import org.apache.shardingsphere.infra.binder.engine.segment.with.WithSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.assign.AssignmentSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.TableSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.order.OrderBySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate.WhereSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.with.WithSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement; diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DDLStatementBindEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DDLStatementBindEngine.java index 2792f3fc62c44..6f610e8610de6 100644 --- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DDLStatementBindEngine.java +++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DDLStatementBindEngine.java @@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.binder.engine.statement.ddl.CreateTableStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.ddl.CursorStatementBinder; import org.apache.shardingsphere.infra.binder.engine.statement.ddl.DropTableStatementBinder; +import org.apache.shardingsphere.infra.binder.engine.statement.ddl.RenameTableStatementBinder; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement; @@ -32,6 +33,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CursorStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DDLStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement; +import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement; /** * DDL statement bind engine. @@ -65,6 +67,9 @@ public DDLStatement bind(final DDLStatement statement) { if (statement instanceof DropTableStatement) { return new DropTableStatementBinder().bind((DropTableStatement) statement, binderContext); } + if (statement instanceof RenameTableStatement) { + return new RenameTableStatementBinder().bind((RenameTableStatement) statement, binderContext); + } if (statement instanceof CreateIndexStatement) { return new CreateIndexStatementBinder().bind((CreateIndexStatement) statement, binderContext); } diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinderTest.java index fa7e5f76aacef..41c516bb7f5db 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/assign/AssignmentSegmentBinderTest.java @@ -20,8 +20,9 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.assign.AssignmentSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.SetAssignmentSegment; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinderTest.java index 25a9d68ca57ba..76684ce48fc86 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/BinaryOperationExpressionBinderTest.java @@ -19,6 +19,7 @@ import com.google.common.collect.LinkedHashMultimap; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.BinaryOperationExpressionBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinderTest.java index 48dc9a9734dcb..062fef2d9f093 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ColumnSegmentBinderTest.java @@ -21,8 +21,9 @@ import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ColumnSegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.exception.kernel.syntax.AmbiguousColumnException; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinderTest.java index d5417af227cb8..608aea0596871 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/ExistsSubqueryExpressionBinderTest.java @@ -18,6 +18,7 @@ package org.apache.shardingsphere.infra.binder.engine.segment.expression.type; import com.google.common.collect.LinkedHashMultimap; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.ExistsSubqueryExpressionBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinderTest.java index 2fe99340671d6..217d03f554f51 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/FunctionExpressionSegmentBinderTest.java @@ -19,6 +19,7 @@ import com.google.common.collect.LinkedHashMultimap; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.FunctionExpressionSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinderTest.java index b815a3e5a35df..4f5bc9e2128e4 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/InExpressionBinderTest.java @@ -19,6 +19,7 @@ import com.google.common.collect.LinkedHashMultimap; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.InExpressionBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.InExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinderTest.java index d54bc6b847083..499bd0479d435 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/NotExpressionBinderTest.java @@ -19,6 +19,7 @@ import com.google.common.collect.LinkedHashMultimap; import org.apache.shardingsphere.infra.binder.engine.segment.SegmentType; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.NotExpressionBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.NotExpression; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinderTest.java index 8e488801bae12..902ecdc8a5a4f 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/expression/type/SubquerySegmentBinderTest.java @@ -20,8 +20,9 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.expression.type.SubquerySegmentBinder; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinderTest.java index 7829fcb95ba86..3cbf890c86eab 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/JoinTableSegmentBinderTest.java @@ -20,7 +20,8 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.JoinTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.hint.HintValueContext; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinderTest.java index 408d70f846612..c74db06f0be82 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SimpleTableSegmentBinderTest.java @@ -20,7 +20,8 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SimpleTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.exception.kernel.metadata.TableNotFoundException; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinderTest.java index 62b74650288e2..ea2cc9842e87e 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/from/type/SubqueryTableSegmentBinderTest.java @@ -20,7 +20,8 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.type.SubqueryTableSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.hint.HintValueContext; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinderTest.java index ebb18e15c6c21..6f03f9135e716 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/predicate/WhereSegmentBinderTest.java @@ -20,7 +20,8 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.predicate.WhereSegmentBinder; import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment; diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinderTest.java index 329efa58d9ed8..2df48e4decbca 100644 --- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinderTest.java +++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/projection/type/ShorthandProjectionSegmentBinderTest.java @@ -20,8 +20,9 @@ import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.TableSegmentBinderContext; -import org.apache.shardingsphere.infra.binder.engine.segment.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.TableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.from.context.type.SimpleTableSegmentBinderContext; +import org.apache.shardingsphere.infra.binder.engine.segment.dml.projection.type.ShorthandProjectionSegmentBinder; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ColumnProjectionSegment; diff --git a/test/it/binder/src/test/resources/cases/ddl/rename-table.xml b/test/it/binder/src/test/resources/cases/ddl/rename-table.xml new file mode 100644 index 0000000000000..bbde7a3b2611e --- /dev/null +++ b/test/it/binder/src/test/resources/cases/ddl/rename-table.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+
+ + + + + + + + + +
+ + + + + + +
+
+
diff --git a/test/it/binder/src/test/resources/sqls/ddl/rename-table.xml b/test/it/binder/src/test/resources/sqls/ddl/rename-table.xml new file mode 100644 index 0000000000000..df16afce93e80 --- /dev/null +++ b/test/it/binder/src/test/resources/sqls/ddl/rename-table.xml @@ -0,0 +1,22 @@ + + + + + + + From 3d8a4432fb9736757fe37a8ae3e0dce9e21fbed8 Mon Sep 17 00:00:00 2001 From: duanzhengqiang Date: Thu, 26 Dec 2024 13:55:57 +0800 Subject: [PATCH 2/2] update release note --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0db9cb1685ab7..0a0a6614430e0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -41,6 +41,7 @@ 1. SQL Binder: Support select with statement sql bind and add bind test case - [#34141](https://github.com/apache/shardingsphere/pull/34141) 1. SQL Binder: Support sql bind for select with current select projection reference - [#34151](https://github.com/apache/shardingsphere/pull/34151) 1. SQL Binder: Support alter table, drop table sql bind and add test case - [#34154](https://github.com/apache/shardingsphere/pull/34154) +1. Support rename table statement sql bind and split segment bind to ddl and dml package - [#34158](https://github.com/apache/shardingsphere/pull/34158) ### Bug Fixes