You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/06/26 15:12:15 UTC
(shardingsphere) branch master updated: Move and remove MySQLLoadDataStatement and MySQLLoadXMLStatement (#35807)
This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3f1ba332685 Move and remove MySQLLoadDataStatement and MySQLLoadXMLStatement (#35807)
3f1ba332685 is described below
commit 3f1ba332685d23438ba111d18e20c73d182b4045
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Jun 26 23:12:09 2025 +0800
Move and remove MySQLLoadDataStatement and MySQLLoadXMLStatement (#35807)
* Refactor CaseInsensitiveMap usage in binder classes
* Move and remove MySQLLoadDataStatement and MySQLLoadXMLStatement
---
.../MySQLUnsupportedShardingSQLStatementProvider.java | 6 +++---
.../segment/dml/combine/CombineSegmentBinder.java | 6 +++---
.../binder/engine/type/DMLStatementBindEngine.java | 10 ----------
.../mysql/MySQLSQLStatementContextWarpProvider.java | 6 +++---
.../infra/binder/mysql/bind/MySQLSQLBindEngine.java | 10 ++++++++++
.../mysql/bind/type/MySQLLoadDataStatementBinder.java} | 18 +++++++++---------
.../mysql/bind/type/MySQLLoadXMLStatementBinder.java} | 18 +++++++++---------
.../statement/type/DorisDMLStatementVisitor.java | 8 ++++----
.../statement/type/MySQLDMLStatementVisitor.java | 8 ++++----
.../statement/mysql/dcl/MySQLLoadDataStatement.java} | 7 ++++---
.../statement/mysql/dcl/MySQLLoadXMLStatement.java} | 7 ++++---
.../asserts/statement/dml/DMLStatementAssert.java | 12 ++++++------
.../statement/dml/impl/LoadDataStatementAssert.java | 6 +++---
.../statement/dml/impl/LoadXMLStatementAssert.java | 6 +++---
14 files changed, 65 insertions(+), 63 deletions(-)
diff --git a/features/sharding/dialect/mysql/src/main/java/org/apache/shardingsphere/sharding/check/mysql/MySQLUnsupportedShardingSQLStatementProvider.java b/features/sharding/dialect/mysql/src/main/java/org/apache/shardingsphere/sharding/check/mysql/MySQLUnsupportedShardingSQLStatementProvider.java
index 243e848d846..1d2cf1b4228 100644
--- a/features/sharding/dialect/mysql/src/main/java/org/apache/shardingsphere/sharding/check/mysql/MySQLUnsupportedShardingSQLStatementProvider.java
+++ b/features/sharding/dialect/mysql/src/main/java/org/apache/shardingsphere/sharding/check/mysql/MySQLUnsupportedShardingSQLStatementProvider.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.sharding.check.mysql;
import org.apache.shardingsphere.sharding.checker.sql.dml.DialectUnsupportedShardingSQLStatementProvider;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.CopyStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import java.util.Arrays;
import java.util.Collection;
@@ -31,7 +31,7 @@ import java.util.Collection;
*/
public final class MySQLUnsupportedShardingSQLStatementProvider implements DialectUnsupportedShardingSQLStatementProvider {
- private static final Collection<Class<? extends SQLStatement>> UNSUPPORTED_SQL_STATEMENT_TYPES = Arrays.asList(CopyStatement.class, LoadDataStatement.class, LoadXMLStatement.class);
+ private static final Collection<Class<? extends SQLStatement>> UNSUPPORTED_SQL_STATEMENT_TYPES = Arrays.asList(CopyStatement.class, MySQLLoadDataStatement.class, MySQLLoadXMLStatement.class);
@Override
public Collection<Class<? extends SQLStatement>> getUnsupportedSQLStatementTypes() {
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java
index 2834b600264..641dc6f489a 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java
+++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/combine/CombineSegmentBinder.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.infra.binder.engine.segment.dml.combine;
-import com.cedarsoftware.util.CaseInsensitiveMap;
+import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString;
import com.google.common.collect.Multimap;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@@ -42,14 +42,14 @@ public final class CombineSegmentBinder {
* @return bound combine segment
*/
public static CombineSegment bind(final CombineSegment segment, final SQLStatementBinderContext binderContext,
- final Multimap<CaseInsensitiveMap.CaseInsensitiveString, TableSegmentBinderContext> outerTableBinderContexts) {
+ final Multimap<CaseInsensitiveString, TableSegmentBinderContext> outerTableBinderContexts) {
return new CombineSegment(segment.getStartIndex(), segment.getStopIndex(),
bindSubquerySegment(segment.getLeft(), binderContext, outerTableBinderContexts), segment.getCombineType(),
bindSubquerySegment(segment.getRight(), binderContext, outerTableBinderContexts));
}
private static SubquerySegment bindSubquerySegment(final SubquerySegment segment, final SQLStatementBinderContext binderContext,
- final Multimap<CaseInsensitiveMap.CaseInsensitiveString, TableSegmentBinderContext> outerTableBinderContexts) {
+ final Multimap<CaseInsensitiveString, TableSegmentBinderContext> outerTableBinderContexts) {
SubquerySegment result = new SubquerySegment(segment.getStartIndex(), segment.getStopIndex(), segment.getText());
SQLStatementBinderContext subqueryBinderContext = new SQLStatementBinderContext(
binderContext.getMetaData(), binderContext.getCurrentDatabaseName(), binderContext.getHintValueContext(), binderContext.getDatabaseType(), segment.getSelect());
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DMLStatementBindEngine.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DMLStatementBindEngine.java
index 15b2df946f7..7b7f7579c39 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DMLStatementBindEngine.java
+++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/type/DMLStatementBindEngine.java
@@ -20,15 +20,11 @@ package org.apache.shardingsphere.infra.binder.engine.type;
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext;
import org.apache.shardingsphere.infra.binder.engine.statement.dml.DeleteStatementBinder;
import org.apache.shardingsphere.infra.binder.engine.statement.dml.InsertStatementBinder;
-import org.apache.shardingsphere.infra.binder.engine.statement.dml.LoadDataStatementBinder;
-import org.apache.shardingsphere.infra.binder.engine.statement.dml.LoadXMLStatementBinder;
import org.apache.shardingsphere.infra.binder.engine.statement.dml.SelectStatementBinder;
import org.apache.shardingsphere.infra.binder.engine.statement.dml.UpdateStatementBinder;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.UpdateStatement;
@@ -57,12 +53,6 @@ public final class DMLStatementBindEngine {
if (statement instanceof DeleteStatement) {
return new DeleteStatementBinder().bind((DeleteStatement) statement, binderContext);
}
- if (statement instanceof LoadDataStatement) {
- return new LoadDataStatementBinder().bind((LoadDataStatement) statement, binderContext);
- }
- if (statement instanceof LoadXMLStatement) {
- return new LoadXMLStatementBinder().bind((LoadXMLStatement) statement, binderContext);
- }
return statement;
}
}
diff --git a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLSQLStatementContextWarpProvider.java b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLSQLStatementContextWarpProvider.java
index e55256ba2fc..c56791234a0 100644
--- a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLSQLStatementContextWarpProvider.java
+++ b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLSQLStatementContextWarpProvider.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.infra.binder.mysql;
import org.apache.shardingsphere.infra.binder.context.DialectCommonSQLStatementContextWarpProvider;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLFlushStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLOptimizeTableStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.column.MySQLDescribeStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.table.MySQLShowCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import java.util.Arrays;
import java.util.Collection;
@@ -35,7 +35,7 @@ import java.util.Collection;
public final class MySQLSQLStatementContextWarpProvider implements DialectCommonSQLStatementContextWarpProvider {
private static final Collection<Class<? extends SQLStatement>> NEED_TO_WARP_SQL_STATEMENT_TYPES = Arrays.asList(
- MySQLShowCreateTableStatement.class, MySQLFlushStatement.class, MySQLOptimizeTableStatement.class, MySQLDescribeStatement.class, LoadDataStatement.class, LoadXMLStatement.class);
+ MySQLShowCreateTableStatement.class, MySQLFlushStatement.class, MySQLOptimizeTableStatement.class, MySQLDescribeStatement.class, MySQLLoadDataStatement.class, MySQLLoadXMLStatement.class);
@Override
public Collection<Class<? extends SQLStatement>> getNeedToWarpSQLStatementTypes() {
diff --git a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/MySQLSQLBindEngine.java b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/MySQLSQLBindEngine.java
index 82a276f75c4..0c5984acc3d 100644
--- a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/MySQLSQLBindEngine.java
+++ b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/MySQLSQLBindEngine.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.infra.binder.mysql.bind;
import org.apache.shardingsphere.infra.binder.engine.DialectSQLBindEngine;
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext;
+import org.apache.shardingsphere.infra.binder.mysql.bind.type.MySQLLoadDataStatementBinder;
+import org.apache.shardingsphere.infra.binder.mysql.bind.type.MySQLLoadXMLStatementBinder;
import org.apache.shardingsphere.infra.binder.mysql.bind.type.MySQLOptimizeTableStatementBinder;
import org.apache.shardingsphere.infra.binder.mysql.bind.type.MySQLShowColumnsStatementBinder;
import org.apache.shardingsphere.infra.binder.mysql.bind.type.MySQLShowCreateTableStatementBinder;
@@ -28,6 +30,8 @@ import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLOptimizeTab
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.column.MySQLShowColumnsStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.index.MySQLShowIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.table.MySQLShowCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import java.util.Optional;
@@ -38,6 +42,12 @@ public final class MySQLSQLBindEngine implements DialectSQLBindEngine {
@Override
public Optional<SQLStatement> bind(final SQLStatement sqlStatement, final SQLStatementBinderContext binderContext) {
+ if (sqlStatement instanceof MySQLLoadDataStatement) {
+ return Optional.of(new MySQLLoadDataStatementBinder().bind((MySQLLoadDataStatement) sqlStatement, binderContext));
+ }
+ if (sqlStatement instanceof MySQLLoadXMLStatement) {
+ return Optional.of(new MySQLLoadXMLStatementBinder().bind((MySQLLoadXMLStatement) sqlStatement, binderContext));
+ }
if (sqlStatement instanceof MySQLOptimizeTableStatement) {
return Optional.of(new MySQLOptimizeTableStatementBinder().bind((MySQLOptimizeTableStatement) sqlStatement, binderContext));
}
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadXMLStatementBinder.java b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadDataStatementBinder.java
similarity index 67%
rename from infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadXMLStatementBinder.java
rename to infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadDataStatementBinder.java
index 3e617601401..ec31e5e213b 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadXMLStatementBinder.java
+++ b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadDataStatementBinder.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.binder.engine.statement.dml;
+package org.apache.shardingsphere.infra.binder.mysql.bind.type;
-import com.cedarsoftware.util.CaseInsensitiveMap;
+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.dml.from.context.TableSegmentBinderContext;
@@ -26,21 +26,21 @@ import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinde
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext;
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementCopyUtils;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
/**
- * Load XML statement binder.
+ * Load data statement binder for MySQL.
*/
-public final class LoadXMLStatementBinder implements SQLStatementBinder<LoadXMLStatement> {
+public final class MySQLLoadDataStatementBinder implements SQLStatementBinder<MySQLLoadDataStatement> {
@Override
- public LoadXMLStatement bind(final LoadXMLStatement sqlStatement, final SQLStatementBinderContext binderContext) {
- Multimap<CaseInsensitiveMap.CaseInsensitiveString, TableSegmentBinderContext> tableBinderContexts = LinkedHashMultimap.create();
+ public MySQLLoadDataStatement bind(final MySQLLoadDataStatement sqlStatement, final SQLStatementBinderContext binderContext) {
+ Multimap<CaseInsensitiveString, TableSegmentBinderContext> tableBinderContexts = LinkedHashMultimap.create();
return copy(sqlStatement, SimpleTableSegmentBinder.bind(sqlStatement.getTable(), binderContext, tableBinderContexts));
}
- private LoadXMLStatement copy(final LoadXMLStatement sqlStatement, final SimpleTableSegment boundTableSegment) {
- LoadXMLStatement result = new LoadXMLStatement(boundTableSegment);
+ private MySQLLoadDataStatement copy(final MySQLLoadDataStatement sqlStatement, final SimpleTableSegment boundTableSegment) {
+ MySQLLoadDataStatement result = new MySQLLoadDataStatement(boundTableSegment);
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadDataStatementBinder.java b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadXMLStatementBinder.java
similarity index 67%
rename from infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadDataStatementBinder.java
rename to infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadXMLStatementBinder.java
index fa1b82c41c2..e6080ade381 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/LoadDataStatementBinder.java
+++ b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/bind/type/MySQLLoadXMLStatementBinder.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.binder.engine.statement.dml;
+package org.apache.shardingsphere.infra.binder.mysql.bind.type;
-import com.cedarsoftware.util.CaseInsensitiveMap;
+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.dml.from.context.TableSegmentBinderContext;
@@ -26,21 +26,21 @@ import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinde
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementBinderContext;
import org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementCopyUtils;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
/**
- * Load data statement binder.
+ * Load XML statement binder for MySQL.
*/
-public final class LoadDataStatementBinder implements SQLStatementBinder<LoadDataStatement> {
+public final class MySQLLoadXMLStatementBinder implements SQLStatementBinder<MySQLLoadXMLStatement> {
@Override
- public LoadDataStatement bind(final LoadDataStatement sqlStatement, final SQLStatementBinderContext binderContext) {
- Multimap<CaseInsensitiveMap.CaseInsensitiveString, TableSegmentBinderContext> tableBinderContexts = LinkedHashMultimap.create();
+ public MySQLLoadXMLStatement bind(final MySQLLoadXMLStatement sqlStatement, final SQLStatementBinderContext binderContext) {
+ Multimap<CaseInsensitiveString, TableSegmentBinderContext> tableBinderContexts = LinkedHashMultimap.create();
return copy(sqlStatement, SimpleTableSegmentBinder.bind(sqlStatement.getTable(), binderContext, tableBinderContexts));
}
- private LoadDataStatement copy(final LoadDataStatement sqlStatement, final SimpleTableSegment boundTableSegment) {
- LoadDataStatement result = new LoadDataStatement(boundTableSegment);
+ private MySQLLoadXMLStatement copy(final MySQLLoadXMLStatement sqlStatement, final SimpleTableSegment boundTableSegment) {
+ MySQLLoadXMLStatement result = new MySQLLoadXMLStatement(boundTableSegment);
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDMLStatementVisitor.java b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDMLStatementVisitor.java
index b64ab181f0e..1e7309aec88 100644
--- a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDMLStatementVisitor.java
+++ b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDMLStatementVisitor.java
@@ -45,9 +45,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.Ca
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DoStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.HandlerStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.ImportStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import java.util.Collection;
import java.util.LinkedList;
@@ -88,12 +88,12 @@ public final class DorisDMLStatementVisitor extends DorisStatementVisitor implem
@Override
public ASTNode visitLoadDataStatement(final LoadDataStatementContext ctx) {
- return new LoadDataStatement((SimpleTableSegment) visit(ctx.tableName()));
+ return new MySQLLoadDataStatement((SimpleTableSegment) visit(ctx.tableName()));
}
@Override
public ASTNode visitLoadXmlStatement(final LoadXmlStatementContext ctx) {
- return new LoadXMLStatement((SimpleTableSegment) visit(ctx.tableName()));
+ return new MySQLLoadXMLStatement((SimpleTableSegment) visit(ctx.tableName()));
}
@Override
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDMLStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDMLStatementVisitor.java
index 890e1c11fd4..3ba9f2e0dfc 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDMLStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDMLStatementVisitor.java
@@ -51,9 +51,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.Ca
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DoStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.HandlerStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.ImportStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import java.util.Collection;
import java.util.LinkedList;
@@ -94,12 +94,12 @@ public final class MySQLDMLStatementVisitor extends MySQLStatementVisitor implem
@Override
public ASTNode visitLoadDataStatement(final LoadDataStatementContext ctx) {
- return new LoadDataStatement((SimpleTableSegment) visit(ctx.tableName()));
+ return new MySQLLoadDataStatement((SimpleTableSegment) visit(ctx.tableName()));
}
@Override
public ASTNode visitLoadXmlStatement(final LoadXmlStatementContext ctx) {
- return new LoadXMLStatement((SimpleTableSegment) visit(ctx.tableName()));
+ return new MySQLLoadXMLStatement((SimpleTableSegment) visit(ctx.tableName()));
}
@Override
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadXMLStatement.java b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadDataStatement.java
similarity index 84%
rename from parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadXMLStatement.java
rename to parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadDataStatement.java
index 84184798459..3bf42aabe7e 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadXMLStatement.java
+++ b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadDataStatement.java
@@ -15,20 +15,21 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml;
+package org.apache.shardingsphere.sql.parser.statement.mysql.dcl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.SQLStatementAttributes;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableSQLStatementAttribute;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DMLStatement;
/**
- * Load xml statement.
+ * Load data statement for MySQL.
*/
@RequiredArgsConstructor
@Getter
-public final class LoadXMLStatement extends DMLStatement {
+public final class MySQLLoadDataStatement extends DMLStatement {
private final SimpleTableSegment table;
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadDataStatement.java b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadXMLStatement.java
similarity index 84%
rename from parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadDataStatement.java
rename to parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadXMLStatement.java
index 3384011b911..7cb21029dba 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/LoadDataStatement.java
+++ b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLLoadXMLStatement.java
@@ -15,20 +15,21 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml;
+package org.apache.shardingsphere.sql.parser.statement.mysql.dcl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.SQLStatementAttributes;
import org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableSQLStatementAttribute;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DMLStatement;
/**
- * Load data statement.
+ * Load xml statement for MySQL.
*/
@RequiredArgsConstructor
@Getter
-public final class LoadDataStatement extends DMLStatement {
+public final class MySQLLoadXMLStatement extends DMLStatement {
private final SimpleTableSegment table;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/DMLStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/DMLStatementAssert.java
index 1d8a49232fe..1a04dbd4bab 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/DMLStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/DMLStatementAssert.java
@@ -25,11 +25,11 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DM
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DoStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.MergeStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.UpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dml.impl.CallStatementAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dml.impl.CopyStatementAssert;
@@ -83,10 +83,10 @@ public final class DMLStatementAssert {
CopyStatementAssert.assertIs(assertContext, (CopyStatement) actual, (CopyStatementTestCase) expected);
} else if (actual instanceof DoStatement) {
DoStatementAssert.assertIs(assertContext, (DoStatement) actual, (DoStatementTestCase) expected);
- } else if (actual instanceof LoadDataStatement) {
- LoadDataStatementAssert.assertIs(assertContext, (LoadDataStatement) actual, (LoadDataStatementTestCase) expected);
- } else if (actual instanceof LoadXMLStatement) {
- LoadXMLStatementAssert.assertIs(assertContext, (LoadXMLStatement) actual, (LoadXMLStatementTestCase) expected);
+ } else if (actual instanceof MySQLLoadDataStatement) {
+ LoadDataStatementAssert.assertIs(assertContext, (MySQLLoadDataStatement) actual, (LoadDataStatementTestCase) expected);
+ } else if (actual instanceof MySQLLoadXMLStatement) {
+ LoadXMLStatementAssert.assertIs(assertContext, (MySQLLoadXMLStatement) actual, (LoadXMLStatementTestCase) expected);
}
}
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadDataStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadDataStatementAssert.java
index f8e753871a2..af1d77bbeb9 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadDataStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadDataStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadDataStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadDataStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.table.TableAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.LoadDataStatementTestCase;
@@ -39,11 +39,11 @@ public final class LoadDataStatementAssert {
* @param actual actual load data statement
* @param expected expected load data statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final LoadDataStatement actual, final LoadDataStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLLoadDataStatement actual, final LoadDataStatementTestCase expected) {
assertTable(assertContext, actual, expected);
}
- private static void assertTable(final SQLCaseAssertContext assertContext, final LoadDataStatement actual, final LoadDataStatementTestCase expected) {
+ private static void assertTable(final SQLCaseAssertContext assertContext, final MySQLLoadDataStatement actual, final LoadDataStatementTestCase expected) {
if (null == expected.getTable()) {
assertNull(actual.getTable(), assertContext.getText("Actual table should not exist."));
} else {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadXMLStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadXMLStatementAssert.java
index 2e373ec0149..2142d9efd60 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadXMLStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dml/impl/LoadXMLStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.LoadXMLStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLLoadXMLStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.table.TableAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dml.LoadXMLStatementTestCase;
@@ -39,11 +39,11 @@ public final class LoadXMLStatementAssert {
* @param actual actual load xml statement
* @param expected expected load xml statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final LoadXMLStatement actual, final LoadXMLStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLLoadXMLStatement actual, final LoadXMLStatementTestCase expected) {
assertTable(assertContext, actual, expected);
}
- private static void assertTable(final SQLCaseAssertContext assertContext, final LoadXMLStatement actual, final LoadXMLStatementTestCase expected) {
+ private static void assertTable(final SQLCaseAssertContext assertContext, final MySQLLoadXMLStatement actual, final LoadXMLStatementTestCase expected) {
if (null == expected.getTable()) {
assertNull(actual.getTable(), assertContext.getText("Actual table should not exist."));
} else {