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/05/16 02:28:36 UTC
(shardingsphere) branch master updated: Do not use MySQL dialect SQLStatement in not MySQL dialect test cases (#35429)
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 df40c4185f4 Do not use MySQL dialect SQLStatement in not MySQL dialect test cases (#35429)
df40c4185f4 is described below
commit df40c4185f42a3f39591bacbc508f0fc2ec44d1e
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri May 16 10:28:30 2025 +0800
Do not use MySQL dialect SQLStatement in not MySQL dialect test cases (#35429)
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
* Do not use MySQL dialect SQLStatement in not MySQL dialect test cases
---
.../core/advice/SQLParseCountAdviceTest.java | 32 +-
.../core/advice/SQLRouteCountAdviceTest.java | 24 +-
...penTelemetryJDBCExecutorCallbackAdviceTest.java | 8 +-
.../merge/EncryptResultDecoratorEngineTest.java | 4 +-
.../fixture/EncryptGeneratorFixtureBuilder.java | 15 +-
...ryptInsertDefaultColumnsTokenGeneratorTest.java | 4 +-
.../EncryptInsertOnUpdateTokenGeneratorTest.java | 10 +-
.../route/ReadwriteSplittingSQLRouterTest.java | 12 +-
.../ddl/ShardingAlterViewSupportedCheckerTest.java | 23 +-
...ShardingCreateFunctionSupportedCheckerTest.java | 62 ++--
...hardingCreateProcedureSupportedCheckerTest.java | 55 ++--
.../ShardingCreateTableSupportedCheckerTest.java | 54 +---
.../ddl/ShardingDropTableSupportedCheckerTest.java | 19 +-
.../ddl/ShardingInsertSupportedCheckerTest.java | 29 +-
.../ShardingRenameTableSupportedCheckerTest.java | 8 +-
.../dml/ShardingDeleteSupportedCheckerTest.java | 46 +--
.../dml/ShardingLoadDataSupportedCheckerTest.java | 12 +-
.../dml/ShardingLoadXmlSupportedCheckerTest.java | 12 +-
.../dml/ShardingUpdateSupportedCheckerTest.java | 4 +-
.../merge/ShardingResultMergerEngineTest.java | 37 +--
.../common/IteratorStreamMergedResultTest.java | 13 +-
.../merge/dal/ShardingDALResultMergerTest.java | 26 +-
.../dql/groupby/GroupByMemoryMergedResultTest.java | 14 +-
.../dql/groupby/GroupByRowComparatorTest.java | 166 +---------
.../dql/groupby/GroupByStreamMergedResultTest.java | 3 +-
.../dql/orderby/OrderByStreamMergedResultTest.java | 7 +-
.../merge/dql/orderby/OrderByValueTest.java | 85 +----
.../pagination/LimitDecoratorMergedResultTest.java | 21 +-
.../RowNumberDecoratorMergedResultTest.java | 7 +-
.../impl/ShardingRemoveTokenGeneratorTest.java | 7 +-
.../ShardingDropTableRouteContextCheckerTest.java | 7 +-
...ShardingRenameTableRouteContextCheckerTest.java | 18 +-
.../dml/ShardingInsertRouteContextCheckerTest.java | 22 +-
.../dml/ShardingUpdateRouteContextCheckerTest.java | 4 +-
.../type/ShardingRouteEngineFactoryTest.java | 51 +--
.../sharding/rule/ShardingRuleTest.java | 7 +-
.../engine/GeneratedKeyContextEngineTest.java | 96 +-----
.../groupby/engine/GroupByContextEngineTest.java | 58 +---
.../orderby/engine/OrderByContextEngineTest.java | 85 +----
.../select/pagination/PaginationContextTest.java | 58 +---
.../engine/PaginationContextEngineTest.java | 67 +---
.../engine/ProjectionsContextEngineTest.java | 252 ++-------------
.../statement/SQLStatementContextFactoryTest.java | 36 +--
.../dal/AnalyzeTableStatementContextTest.java | 37 +--
.../statement/dal/ExplainStatementContextTest.java | 23 +-
.../dal/OptimizeTableStatementContextTest.java | 23 +-
.../dal/ShowColumnsStatementContextTest.java | 14 +-
.../dal/ShowCreateTableStatementContextTest.java | 11 +-
.../dal/ShowIndexStatementContextTest.java | 15 +-
.../dcl/DenyUserStatementContextTest.java | 11 +-
.../statement/dcl/GrantStatementContextTest.java | 52 +--
.../statement/dcl/RevokeStatementContextTest.java | 52 +--
.../ddl/AlterIndexStatementContextTest.java | 23 +-
.../ddl/AlterTableStatementContextTest.java | 51 +--
.../ddl/AlterViewStatementContextTest.java | 53 +--
.../ddl/CreateFunctionStatementContextTest.java | 25 +-
.../ddl/CreateIndexStatementContextTest.java | 29 +-
.../ddl/CreateProcedureStatementContextTest.java | 21 +-
.../ddl/CreateTableStatementContextTest.java | 53 +--
.../ddl/CreateViewStatementContextTest.java | 21 +-
.../ddl/DropIndexStatementContextTest.java | 40 +--
.../ddl/DropTableStatementContextTest.java | 43 +--
.../ddl/DropViewStatementContextTest.java | 33 +-
.../statement/ddl/PrepareStatementContextTest.java | 65 ++--
.../ddl/TruncateStatementContextTest.java | 48 +--
.../statement/dml/DeleteStatementContextTest.java | 62 +---
.../statement/dml/InsertStatementContextTest.java | 228 ++++---------
.../statement/dml/SelectStatementContextTest.java | 359 ++-------------------
.../statement/dml/UpdateStatementContextTest.java | 4 +-
.../type/ExistsSubqueryExpressionBinderTest.java | 5 +-
.../expression/type/SubquerySegmentBinderTest.java | 13 +-
.../from/type/SubqueryTableSegmentBinderTest.java | 13 +-
.../type/ShorthandProjectionSegmentBinderTest.java | 4 +-
.../statement/dml/DeleteStatementBinderTest.java | 4 +-
.../statement/dml/InsertStatementBinderTest.java | 15 +-
.../statement/dml/SelectStatementBinderTest.java | 4 +-
.../statement/dml/UpdateStatementBinderTest.java | 4 +-
.../executor/sql/process/ProcessEngineTest.java | 7 +-
.../GeneratedKeyAssignmentTokenGeneratorTest.java | 6 +-
.../tableless/TablelessRouteEngineFactoryTest.java | 27 +-
.../single/route/SingleSQLRouterTest.java | 5 +-
.../route/engine/engine/SingleRouteEngineTest.java | 24 +-
.../transaction/util/AutoCommitUtilsTest.java | 13 +-
.../core/statement/ddl/RenameTableStatement.java | 2 -
.../backend/connector/ProxySQLExecutorTest.java | 86 +++--
.../DatabaseOperateBackendHandlerFactoryTest.java | 46 +--
proxy/bootstrap/pom.xml | 1 +
87 files changed, 768 insertions(+), 2487 deletions(-)
diff --git a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java
index d7bad0a2cc7..c53881002f0 100644
--- a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java
+++ b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java
@@ -29,14 +29,14 @@ import org.apache.shardingsphere.distsql.statement.rql.resource.ShowStorageUnits
import org.apache.shardingsphere.distsql.statement.rul.sql.ParseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowDatabasesStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLCreateUserStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.tcl.MySQLCommitStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.CreateUserStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.CommitStatement;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
@@ -57,42 +57,42 @@ class SQLParseCountAdviceTest {
@Test
void assertParseInsertSQL() {
- assertParse(new MySQLInsertStatement(), "INSERT=1");
+ assertParse(mock(InsertStatement.class), "INSERT=1");
}
@Test
void assertParseUpdateSQL() {
- assertParse(new MySQLUpdateStatement(), "UPDATE=1");
+ assertParse(mock(UpdateStatement.class), "UPDATE=1");
}
@Test
void assertParseDeleteSQL() {
- assertParse(new MySQLDeleteStatement(), "DELETE=1");
+ assertParse(mock(DeleteStatement.class), "DELETE=1");
}
@Test
void assertParseSelectSQL() {
- assertParse(new MySQLSelectStatement(), "SELECT=1");
+ assertParse(mock(SelectStatement.class), "SELECT=1");
}
@Test
void assertParseDDL() {
- assertParse(new MySQLCreateDatabaseStatement(), "DDL=1");
+ assertParse(mock(CreateDatabaseStatement.class), "DDL=1");
}
@Test
void assertParseDCL() {
- assertParse(new MySQLCreateUserStatement(), "DCL=1");
+ assertParse(mock(CreateUserStatement.class), "DCL=1");
}
@Test
void assertParseDAL() {
- assertParse(new MySQLShowDatabasesStatement(), "DAL=1");
+ assertParse(mock(ShowDatabasesStatement.class), "DAL=1");
}
@Test
void assertParseTCL() {
- assertParse(new MySQLCommitStatement(), "TCL=1");
+ assertParse(mock(CommitStatement.class), "TCL=1");
}
@Test
diff --git a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
index 5dcc5439ebd..60b988e8d74 100644
--- a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
+++ b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
@@ -28,10 +28,10 @@ import org.apache.shardingsphere.infra.hint.HintValueContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.session.query.QueryContext;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
@@ -56,8 +56,8 @@ class SQLRouteCountAdviceTest {
@Test
void assertInsertRoute() {
- QueryContext queryContext = new QueryContext(new UnknownSQLStatementContext(new MySQLInsertStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
- mock(ShardingSphereMetaData.class));
+ QueryContext queryContext = new QueryContext(
+ new UnknownSQLStatementContext(new SQL92InsertStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
assertRoute(queryContext, "INSERT=1");
}
@@ -69,22 +69,22 @@ class SQLRouteCountAdviceTest {
@Test
void assertUpdateRoute() {
- QueryContext queryContext = new QueryContext(new UnknownSQLStatementContext(new MySQLUpdateStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
- mock(ShardingSphereMetaData.class));
+ QueryContext queryContext = new QueryContext(
+ new UnknownSQLStatementContext(new SQL92UpdateStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
assertRoute(queryContext, "UPDATE=1");
}
@Test
void assertDeleteRoute() {
- QueryContext queryContext = new QueryContext(new UnknownSQLStatementContext(new MySQLDeleteStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
- mock(ShardingSphereMetaData.class));
+ QueryContext queryContext = new QueryContext(
+ new UnknownSQLStatementContext(new SQL92DeleteStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
assertRoute(queryContext, "DELETE=1");
}
@Test
void assertSelectRoute() {
- QueryContext queryContext = new QueryContext(new UnknownSQLStatementContext(new MySQLSelectStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
- mock(ShardingSphereMetaData.class));
+ QueryContext queryContext = new QueryContext(
+ new UnknownSQLStatementContext(new SQL92SelectStatement()), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
assertRoute(queryContext, "SELECT=1");
}
diff --git a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
index 8d3aa90fccc..b698088b1dc 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/advice/OpenTelemetryJDBCExecutorCallbackAdviceTest.java
@@ -41,7 +41,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.J
import org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback;
import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -67,7 +67,7 @@ class OpenTelemetryJDBCExecutorCallbackAdviceTest {
public static final String SQL = "SELECT 1";
- private static final String DB_TYPE = "MySQL";
+ private static final String DB_TYPE = "SQL92";
private final InMemorySpanExporter testExporter = InMemorySpanExporter.create();
@@ -97,9 +97,9 @@ class OpenTelemetryJDBCExecutorCallbackAdviceTest {
when(statement.getConnection()).thenReturn(connection);
executionUnit = new JDBCExecutionUnit(new ExecutionUnit(DATA_SOURCE_NAME, new SQLUnit(SQL, Collections.emptyList())), null, statement);
ResourceMetaData resourceMetaData = mock(ResourceMetaData.class, RETURNS_DEEP_STUBS);
- when(resourceMetaData.getStorageUnits().get(DATA_SOURCE_NAME).getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ when(resourceMetaData.getStorageUnits().get(DATA_SOURCE_NAME).getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class, "SQL92"));
when(resourceMetaData.getStorageUnits().get(DATA_SOURCE_NAME).getConnectionProperties()).thenReturn(mock(ConnectionProperties.class));
- JDBCExecutorCallback jdbcExecutorCallback = new JDBCExecutorCallbackFixture(TypedSPILoader.getService(DatabaseType.class, "MySQL"), resourceMetaData, new MySQLSelectStatement(), true);
+ JDBCExecutorCallback jdbcExecutorCallback = new JDBCExecutorCallbackFixture(TypedSPILoader.getService(DatabaseType.class, "SQL92"), resourceMetaData, new SQL92SelectStatement(), true);
Plugins.getMemberAccessor().set(JDBCExecutorCallback.class.getDeclaredField("resourceMetaData"), jdbcExecutorCallback, resourceMetaData);
targetObject = (TargetAdviceObject) jdbcExecutorCallback;
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
index 182960b7df0..d62b29b844a 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLExplainStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -68,7 +68,7 @@ class EncryptResultDecoratorEngineTest {
@Test
void assertNewInstanceWithDALStatement() {
SQLStatementContext sqlStatementContext = mock(ExplainStatementContext.class);
- when(sqlStatementContext.getSqlStatement()).thenReturn(mock(MySQLExplainStatement.class));
+ when(sqlStatementContext.getSqlStatement()).thenReturn(mock(ExplainStatement.class));
EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPILoader.getServices(ResultProcessEngine.class, Collections.singleton(rule)).get(rule);
Optional<ResultDecorator<EncryptRule>> actual = engine.newInstance(mock(ShardingSphereMetaData.class), database, mock(ConfigurationProperties.class), sqlStatementContext);
assertTrue(actual.isPresent());
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
index e24dc9a9269..0aa5b938658 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
@@ -55,11 +55,12 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import java.util.ArrayList;
import java.util.Arrays;
@@ -116,7 +117,7 @@ public final class EncryptGeneratorFixtureBuilder {
}
private static InsertStatement createInsertStatement() {
- InsertStatement result = new MySQLInsertStatement();
+ InsertStatement result = new SQL92InsertStatement();
result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user"))));
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Arrays.asList(
new ColumnSegment(0, 0, new IdentifierValue("id")), new ColumnSegment(0, 0, new IdentifierValue("name")),
@@ -127,7 +128,7 @@ public final class EncryptGeneratorFixtureBuilder {
}
private static InsertStatement createInsertSelectStatement(final boolean containsInsertColumns) {
- InsertStatement result = new MySQLInsertStatement();
+ InsertStatement result = new SQL92InsertStatement();
result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user"))));
ColumnSegment userIdColumn = new ColumnSegment(0, 0, new IdentifierValue("user_id"));
userIdColumn.setColumnBoundInfo(new ColumnSegmentBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_db")), new IdentifierValue("t_user"),
@@ -142,7 +143,7 @@ public final class EncryptGeneratorFixtureBuilder {
result.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.emptyList()));
result.getDerivedInsertColumns().addAll(insertColumns);
}
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user"))));
ProjectionsSegment projections = new ProjectionsSegment(0, 0);
projections.getProjections().add(new ColumnProjectionSegment(userIdColumn));
@@ -161,7 +162,7 @@ public final class EncryptGeneratorFixtureBuilder {
* @return created update statement context
*/
public static UpdateStatementContext createUpdateStatementContext() {
- UpdateStatement updateStatement = new MySQLUpdateStatement();
+ UpdateStatement updateStatement = new SQL92UpdateStatement();
updateStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user"))));
updateStatement.setWhere(createWhereSegment());
updateStatement.setSetAssignment(createSetAssignmentSegment());
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
index 578cdc25e2c..f6355625254 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
@@ -47,14 +47,14 @@ class EncryptInsertDefaultColumnsTokenGeneratorTest {
void assertGenerateSQLTokenFromGenerateNewSQLToken() {
generator.setPreviousSQLTokens(Collections.emptyList());
assertThat(generator.generateSQLToken(EncryptGeneratorFixtureBuilder.createInsertStatementContext(Collections.emptyList())).toString(),
- is("(`id`, `name`, `status`, `pwd_cipher`, `pwd_assist`, `pwd_like`)"));
+ is("(\"id\", \"name\", \"status\", \"pwd_cipher\", \"pwd_assist\", \"pwd_like\")"));
}
@Test
void assertGenerateSQLTokenFromPreviousSQLTokens() {
generator.setPreviousSQLTokens(EncryptGeneratorFixtureBuilder.getPreviousSQLTokens());
assertThat(generator.generateSQLToken(EncryptGeneratorFixtureBuilder.createInsertStatementContext(Collections.emptyList())).toString(),
- is("(`id`, `name`, `status`, `pwd_cipher`, `pwd_assist`, `pwd_like`)"));
+ is("(\"id\", \"name\", \"status\", \"pwd_cipher\", \"pwd_assist\", \"pwd_like\")"));
}
@Test
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
index 3c0f18f9538..aebdab16cfc 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -23,8 +23,8 @@ import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
import org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.DialectDatabaseMetaData;
import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
+import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.DialectDatabaseMetaData;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
@@ -36,8 +36,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simp
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -122,9 +122,9 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
@Test
void assertIsGenerateSQLToken() {
InsertStatementContext insertStatementContext = mock(InsertStatementContext.class);
- MySQLInsertStatement insertStatement = mock(MySQLInsertStatement.class);
- when(insertStatementContext.getSqlStatement()).thenReturn(insertStatement);
+ InsertStatement insertStatement = mock(InsertStatement.class);
when(insertStatement.getOnDuplicateKeyColumns()).thenReturn(Optional.of(new OnDuplicateKeyColumnsSegment(0, 0, Collections.emptyList())));
+ when(insertStatementContext.getSqlStatement()).thenReturn(insertStatement);
assertTrue(generator.isGenerateSQLToken(insertStatementContext));
}
@@ -132,7 +132,7 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
void assertGenerateSQLTokens() {
InsertStatementContext insertStatementContext = mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
when(insertStatementContext.getTablesContext().getSchemaName()).thenReturn(Optional.of("db_test"));
- MySQLInsertStatement insertStatement = mock(MySQLInsertStatement.class, RETURNS_DEEP_STUBS);
+ InsertStatement insertStatement = mock(InsertStatement.class, RETURNS_DEEP_STUBS);
when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user")))));
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = mock(OnDuplicateKeyColumnsSegment.class);
when(onDuplicateKeyColumnsSegment.getColumns()).thenReturn(buildAssignmentSegment());
diff --git a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingSQLRouterTest.java b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingSQLRouterTest.java
index 3d16c01d930..4a937c4931d 100644
--- a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingSQLRouterTest.java
+++ b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/ReadwriteSplittingSQLRouterTest.java
@@ -39,7 +39,7 @@ import org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRul
import org.apache.shardingsphere.readwritesplitting.config.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.LockSegment;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -100,15 +100,14 @@ class ReadwriteSplittingSQLRouterTest {
@Test
void assertDecorateRouteContextToReplicaDataSource() {
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(selectStatement);
when(selectStatement.getLock()).thenReturn(Optional.empty());
ConnectionContext connectionContext = mockConnectionContext();
when(connectionContext.getTransactionContext()).thenReturn(mock(TransactionConnectionContext.class));
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), connectionContext, mock(ShardingSphereMetaData.class));
RuleMetaData ruleMetaData = new RuleMetaData(Collections.singleton(staticRule));
- ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db",
- mock(DatabaseType.class), mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), ruleMetaData, Collections.emptyList());
+ ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", mock(DatabaseType.class), mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), ruleMetaData, Collections.emptyList());
RouteContext actual = mockRouteContext();
sqlRouter.decorateRouteContext(actual, queryContext, database, staticRule, Collections.emptyList(), new ConfigurationProperties(new Properties()));
assertThat(actual.getActualDataSourceNames(), is(new HashSet<>(Arrays.asList(NONE_READWRITE_SPLITTING_DATASOURCE_NAME, READ_DATASOURCE))));
@@ -117,13 +116,12 @@ class ReadwriteSplittingSQLRouterTest {
@Test
void assertDecorateRouteContextToPrimaryDataSourceWithLock() {
RouteContext actual = mockRouteContext();
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(selectStatement);
when(selectStatement.getLock()).thenReturn(Optional.of(mock(LockSegment.class)));
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
RuleMetaData ruleMetaData = new RuleMetaData(Collections.singleton(staticRule));
- ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db",
- mock(DatabaseType.class), mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), ruleMetaData, Collections.emptyList());
+ ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", mock(DatabaseType.class), mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), ruleMetaData, Collections.emptyList());
sqlRouter.decorateRouteContext(actual, queryContext, database, staticRule, Collections.emptyList(), new ConfigurationProperties(new Properties()));
Iterator<String> routedDataSourceNames = actual.getActualDataSourceNames().iterator();
assertThat(routedDataSourceNames.next(), is(NONE_READWRITE_SPLITTING_DATASOURCE_NAME));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
index 05dd28156e3..db2caeec618 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
@@ -26,16 +26,19 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLAlterViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussAlterViewStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Collections;
+import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -50,11 +53,11 @@ class ShardingAlterViewSupportedCheckerTest {
private ShardingRule rule;
@Test
- void assertPreValidateAlterViewForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ void assertPreValidateAlterView() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
selectStatement.setProjections(new ProjectionsSegment(0, 0));
- MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement();
+ AlterViewStatement sqlStatement = new MySQLAlterViewStatement();
sqlStatement.setView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
sqlStatement.setSelect(selectStatement);
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
@@ -67,13 +70,13 @@ class ShardingAlterViewSupportedCheckerTest {
}
@Test
- void assertPreValidateAlterViewWithShardingTableForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ void assertPreValidateAlterViewWithShardingTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
selectStatement.setProjections(new ProjectionsSegment(0, 0));
- MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement();
- sqlStatement.setView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
- sqlStatement.setSelect(selectStatement);
+ AlterViewStatement sqlStatement = mock(AlterViewStatement.class);
+ when(sqlStatement.getView()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
+ when(sqlStatement.getSelect()).thenReturn(Optional.of(selectStatement));
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().getAttributes(TableMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
@@ -85,7 +88,7 @@ class ShardingAlterViewSupportedCheckerTest {
@Test
void assertPreValidateAlterRenamedView() {
- OpenGaussAlterViewStatement sqlStatement = new OpenGaussAlterViewStatement();
+ AlterViewStatement sqlStatement = new OpenGaussAlterViewStatement();
sqlStatement.setView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
sqlStatement.setRenameView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_new"))));
AlterViewStatementContext sqlStatementContext = new AlterViewStatementContext(mock(ShardingSphereMetaData.class), Collections.emptyList(), sqlStatement, "foo_db");
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateFunctionSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateFunctionSupportedCheckerTest.java
index b9ed9e2000b..2475aae00cd 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateFunctionSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateFunctionSupportedCheckerTest.java
@@ -28,15 +28,19 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.R
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.ValidStatementSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateFunctionStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateFunctionStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
+import java.util.Optional;
+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -50,12 +54,11 @@ class ShardingCreateFunctionSupportedCheckerTest {
private ShardingRule rule;
@Test
- void assertCheckCreateFunctionForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_item"))));
- MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
- createTableStatement.setIfNotExists(false);
- createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckCreateFunction() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"))));
+ CreateTableStatement createTableStatement = mock(CreateTableStatement.class);
+ when(createTableStatement.getTable()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(createTableStatement);
ValidStatementSegment selectValidStatementSegment = new ValidStatementSegment(0, 0);
@@ -63,61 +66,60 @@ class ShardingCreateFunctionSupportedCheckerTest {
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
routineBody.getValidStatements().add(selectValidStatementSegment);
- MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateFunctionStatement sqlStatement = mock(CreateFunctionStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateFunctionStatementContext sqlStatementContext = new CreateFunctionStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.containsTable("t_order_item")).thenReturn(true);
+ when(schema.containsTable("bar_tbl")).thenReturn(true);
assertDoesNotThrow(() -> new ShardingCreateFunctionSupportedChecker().check(rule, database, schema, sqlStatementContext));
}
@Test
- void assertCheckCreateFunctionWithShardingTableForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckCreateFunctionWithShardingTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(selectStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
- MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateFunctionStatement sqlStatement = mock(CreateFunctionStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateFunctionStatementContext sqlStatementContext = new CreateFunctionStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(rule.isShardingTable("t_order")).thenReturn(true);
+ when(rule.isShardingTable("foo_tbl")).thenReturn(true);
assertThrows(UnsupportedShardingOperationException.class, () -> new ShardingCreateFunctionSupportedChecker().check(rule, database, mock(), sqlStatementContext));
}
@Test
- void assertCheckCreateFunctionWithNoSuchTableForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckCreateFunctionWithNoSuchTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(selectStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
- MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateFunctionStatement sqlStatement = mock(CreateFunctionStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateFunctionStatementContext sqlStatementContext = new CreateFunctionStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
assertThrows(NoSuchTableException.class, () -> new ShardingCreateFunctionSupportedChecker().check(rule, database, mock(), sqlStatementContext));
}
@Test
- void assertCheckCreateFunctionWithTableExistsForMySQL() {
- MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
- createTableStatement.setIfNotExists(false);
- createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckCreateFunctionWithTableExists() {
+ CreateTableStatement createTableStatement = new SQL92CreateTableStatement();
+ createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(createTableStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
- MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateFunctionStatement sqlStatement = mock(CreateFunctionStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateFunctionStatementContext sqlStatementContext = new CreateFunctionStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.containsTable("t_order")).thenReturn(true);
+ when(schema.containsTable("foo_tbl")).thenReturn(true);
assertThrows(TableExistsException.class, () -> new ShardingCreateFunctionSupportedChecker().check(rule, database, schema, sqlStatementContext));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateProcedureSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateProcedureSupportedCheckerTest.java
index 3713cbb5567..56a7d048670 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateProcedureSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateProcedureSupportedCheckerTest.java
@@ -28,15 +28,20 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.R
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.ValidStatementSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateProcedureStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateProcedureStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
+import java.util.Optional;
+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -50,12 +55,11 @@ class ShardingCreateProcedureSupportedCheckerTest {
private ShardingRule rule;
@Test
- void assertCheckForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_item"))));
- MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
- createTableStatement.setIfNotExists(false);
- createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheck() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"))));
+ CreateTableStatement createTableStatement = mock(CreateTableStatement.class);
+ when(createTableStatement.getTable()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(createTableStatement);
ValidStatementSegment selectValidStatementSegment = new ValidStatementSegment(0, 0);
@@ -67,16 +71,16 @@ class ShardingCreateProcedureSupportedCheckerTest {
sqlStatement.setRoutineBody(routineBody);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.containsTable("t_order_item")).thenReturn(true);
- when(rule.isShardingTable("t_order_item")).thenReturn(false);
+ when(schema.containsTable("bar_tbl")).thenReturn(true);
+ when(rule.isShardingTable("bar_tbl")).thenReturn(false);
CreateProcedureStatementContext sqlStatementContext = new CreateProcedureStatementContext(sqlStatement);
assertDoesNotThrow(() -> new ShardingCreateProcedureSupportedChecker().check(rule, database, schema, sqlStatementContext));
}
@Test
- void assertCheckWithShardingTableForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckWithShardingTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(selectStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
@@ -85,40 +89,39 @@ class ShardingCreateProcedureSupportedCheckerTest {
sqlStatement.setRoutineBody(routineBody);
CreateProcedureStatementContext sqlStatementContext = new CreateProcedureStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(rule.isShardingTable("t_order")).thenReturn(true);
+ when(rule.isShardingTable("foo_tbl")).thenReturn(true);
assertThrows(UnsupportedShardingOperationException.class, () -> new ShardingCreateProcedureSupportedChecker().check(rule, database, mock(), sqlStatementContext));
}
@Test
- void assertCheckWithNoSuchTableForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckWithNoSuchTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(selectStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
- MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateProcedureStatement sqlStatement = mock(CreateProcedureStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateProcedureStatementContext sqlStatementContext = new CreateProcedureStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
assertThrows(NoSuchTableException.class, () -> new ShardingCreateProcedureSupportedChecker().check(rule, database, mock(), sqlStatementContext));
}
@Test
- void assertCheckWithTableExistsForMySQL() {
- MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
- createTableStatement.setIfNotExists(false);
- createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ void assertCheckWithTableExists() {
+ CreateTableStatement createTableStatement = new SQL92CreateTableStatement();
+ createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
ValidStatementSegment validStatementSegment = new ValidStatementSegment(0, 0);
validStatementSegment.setSqlStatement(createTableStatement);
RoutineBodySegment routineBody = new RoutineBodySegment(0, 0);
routineBody.getValidStatements().add(validStatementSegment);
- MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
- sqlStatement.setRoutineBody(routineBody);
+ CreateProcedureStatement sqlStatement = mock(CreateProcedureStatement.class);
+ when(sqlStatement.getRoutineBody()).thenReturn(Optional.of(routineBody));
CreateProcedureStatementContext sqlStatementContext = new CreateProcedureStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.containsTable("t_order")).thenReturn(true);
+ when(schema.containsTable("foo_tbl")).thenReturn(true);
assertThrows(TableExistsException.class, () -> new ShardingCreateProcedureSupportedChecker().check(rule, database, schema, sqlStatementContext));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
index 8e6a75b9ead..5dab681038c 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
@@ -26,11 +26,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateTableStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -48,39 +44,9 @@ class ShardingCreateTableSupportedCheckerTest {
private ShardingRule rule;
@Test
- void assertCheckForMySQL() {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
- assertThrows(TableExistsException.class, () -> assertCheck(sqlStatement));
- }
-
- @Test
- void assertCheckForOracle() {
- OracleCreateTableStatement sqlStatement = new OracleCreateTableStatement();
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
- assertThrows(TableExistsException.class, () -> assertCheck(sqlStatement));
- }
-
- @Test
- void assertCheckForPostgreSQL() {
- PostgreSQLCreateTableStatement sqlStatement = new PostgreSQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
- assertThrows(TableExistsException.class, () -> assertCheck(sqlStatement));
- }
-
- @Test
- void assertCheckForSQL92() {
+ void assertCheck() {
SQL92CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
- assertThrows(TableExistsException.class, () -> assertCheck(sqlStatement));
- }
-
- @Test
- void assertCheckForSQLServer() {
- SQLServerCreateTableStatement sqlStatement = new SQLServerCreateTableStatement();
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
+ sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("foo_tbl"))));
assertThrows(TableExistsException.class, () -> assertCheck(sqlStatement));
}
@@ -88,23 +54,15 @@ class ShardingCreateTableSupportedCheckerTest {
CreateTableStatementContext sqlStatementContext = new CreateTableStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.containsTable("t_order")).thenReturn(true);
+ when(schema.containsTable("foo_tbl")).thenReturn(true);
new ShardingCreateTableSupportedChecker().check(rule, database, schema, sqlStatementContext);
}
@Test
- void assertCheckIfNotExistsForMySQL() {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
- sqlStatement.setIfNotExists(true);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
- assertCheckIfNotExists(sqlStatement);
- }
-
- @Test
- void assertCheckIfNotExistsForPostgreSQL() {
- PostgreSQLCreateTableStatement sqlStatement = new PostgreSQLCreateTableStatement();
+ void assertCheckIfNotExists() {
+ CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
sqlStatement.setIfNotExists(true);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("t_order"))));
+ sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 2, new IdentifierValue("foo_tbl"))));
assertCheckIfNotExists(sqlStatement);
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
index 35726fd7e22..291f0750d0a 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
@@ -25,8 +25,9 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.ShardingTable;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92DropTableStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -61,8 +62,8 @@ class ShardingDropTableSupportedCheckerTest {
}
@Test
- void assertCheckForMySQL() {
- MySQLDropTableStatement sqlStatement = new MySQLDropTableStatement();
+ void assertCheck() {
+ DropTableStatement sqlStatement = new SQL92DropTableStatement();
sqlStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_item"))));
DropTableStatementContext sqlStatementContext = new DropTableStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
@@ -76,12 +77,12 @@ class ShardingDropTableSupportedCheckerTest {
ShardingTable result = mock(ShardingTable.class);
when(result.getLogicTable()).thenReturn(tableName);
List<DataNode> dataNodes = new LinkedList<>();
- DataNode d1 = mock(DataNode.class);
- when(d1.getTableName()).thenReturn("t_order_item_1");
- dataNodes.add(d1);
- DataNode d2 = mock(DataNode.class);
- when(d2.getTableName()).thenReturn("t_order_item_2");
- dataNodes.add(d2);
+ DataNode dataNode1 = mock(DataNode.class);
+ when(dataNode1.getTableName()).thenReturn("t_order_item_1");
+ dataNodes.add(dataNode1);
+ DataNode dataNode2 = mock(DataNode.class);
+ when(dataNode2.getTableName()).thenReturn("t_order_item_2");
+ dataNodes.add(dataNode2);
when(result.getActualDataNodes()).thenReturn(dataNodes);
return result;
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingInsertSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingInsertSupportedCheckerTest.java
index 8b8df02f57b..f5106482c7a 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingInsertSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingInsertSupportedCheckerTest.java
@@ -19,8 +19,10 @@ package org.apache.shardingsphere.sharding.checker.sql.ddl;
import org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.checker.sql.dml.ShardingInsertSupportedChecker;
import org.apache.shardingsphere.sharding.exception.syntax.DMLWithMultipleShardingTablesException;
import org.apache.shardingsphere.sharding.exception.syntax.InsertSelectTableViolationException;
@@ -28,7 +30,6 @@ import org.apache.shardingsphere.sharding.exception.syntax.MissingGenerateKeyCol
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
-import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.InsertColumnsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.OnDuplicateKeyColumnsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
@@ -38,13 +39,14 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.util.Collection;
import java.util.Collections;
@@ -58,8 +60,11 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
class ShardingInsertSupportedCheckerTest {
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
+
@Mock
private ShardingRule rule;
@@ -120,24 +125,22 @@ class ShardingInsertSupportedCheckerTest {
}
private InsertStatement createInsertStatement() {
- MySQLInsertStatement result = new MySQLInsertStatement();
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
+ InsertStatement result = mock(InsertStatement.class);
+ when(result.getDatabaseType()).thenReturn(databaseType);
+ when(result.getTable()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user")))));
ColumnSegment columnSegment = new ColumnSegment(0, 0, new IdentifierValue("id"));
- List<ColumnSegment> columnSegments = new LinkedList<>();
- columnSegments.add(columnSegment);
+ List<ColumnSegment> columnSegments = Collections.singletonList(columnSegment);
ColumnAssignmentSegment assignmentSegment = new ColumnAssignmentSegment(0, 0, columnSegments, new ParameterMarkerExpressionSegment(0, 0, 0));
- result.setOnDuplicateKeyColumns(new OnDuplicateKeyColumnsSegment(0, 0, Collections.singletonList(assignmentSegment)));
- Collection<ColumnSegment> columns = new LinkedList<>();
- columns.add(columnSegment);
- result.setInsertColumns(new InsertColumnsSegment(0, 0, columns));
+ when(result.getOnDuplicateKeyColumns()).thenReturn(Optional.of(new OnDuplicateKeyColumnsSegment(0, 0, Collections.singletonList(assignmentSegment))));
+ when(result.getColumns()).thenReturn(Collections.singleton(columnSegment));
return result;
}
private InsertStatement createInsertSelectStatement() {
InsertStatement result = createInsertStatement();
- SelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
- result.setInsertSelect(new SubquerySegment(0, 0, selectStatement, ""));
+ when(result.getInsertSelect()).thenReturn(Optional.of(new SubquerySegment(0, 0, selectStatement, "")));
return result;
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingRenameTableSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingRenameTableSupportedCheckerTest.java
index 9b8000cfb05..6611b2b1837 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingRenameTableSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingRenameTableSupportedCheckerTest.java
@@ -23,13 +23,15 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.RenameTableDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLRenameTableStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
+import java.util.Collections;
+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.argThat;
@@ -56,11 +58,11 @@ class ShardingRenameTableSupportedCheckerTest {
}
private RenameTableStatementContext createRenameTableStatementContext(final String originTableName, final String newTableName) {
- MySQLRenameTableStatement sqlStatement = new MySQLRenameTableStatement();
+ RenameTableStatement sqlStatement = mock(RenameTableStatement.class);
RenameTableDefinitionSegment renameTableDefinitionSegment = new RenameTableDefinitionSegment(0, 0);
renameTableDefinitionSegment.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue(originTableName))));
renameTableDefinitionSegment.setRenameTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue(newTableName))));
- sqlStatement.getRenameTables().add(renameTableDefinitionSegment);
+ when(sqlStatement.getRenameTables()).thenReturn(Collections.singleton(renameTableDefinitionSegment));
return new RenameTableStatementContext(sqlStatement);
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingDeleteSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingDeleteSupportedCheckerTest.java
index 7af8a2b3de8..59e03f4c018 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingDeleteSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingDeleteSupportedCheckerTest.java
@@ -25,65 +25,29 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLDeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerDeleteStatement;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Arrays;
-import java.util.Collection;
import java.util.HashSet;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-@ExtendWith(MockitoExtension.class)
class ShardingDeleteSupportedCheckerTest {
- @Mock
- private ShardingRule rule;
-
- @Test
- void assertCheckWhenDeleteMultiTablesForMySQL() {
- assertThrows(DMLWithMultipleShardingTablesException.class, () -> assertCheckWhenDeleteMultiTables(new MySQLDeleteStatement()));
- }
-
@Test
- void assertCheckWhenDeleteMultiTablesForOracle() {
- assertThrows(DMLWithMultipleShardingTablesException.class, () -> assertCheckWhenDeleteMultiTables(new OracleDeleteStatement()));
- }
-
- @Test
- void assertCheckWhenDeleteMultiTablesForPostgreSQL() {
- assertThrows(DMLWithMultipleShardingTablesException.class, () -> assertCheckWhenDeleteMultiTables(new PostgreSQLDeleteStatement()));
- }
-
- @Test
- void assertCheckWhenDeleteMultiTablesForSQL92() {
- assertThrows(DMLWithMultipleShardingTablesException.class, () -> assertCheckWhenDeleteMultiTables(new SQL92DeleteStatement()));
- }
-
- @Test
- void assertCheckWhenDeleteMultiTablesForSQLServer() {
- assertThrows(DMLWithMultipleShardingTablesException.class, () -> assertCheckWhenDeleteMultiTables(new SQLServerDeleteStatement()));
- }
-
- private void assertCheckWhenDeleteMultiTables(final DeleteStatement sqlStatement) {
+ void assertCheckWhenDeleteMultiTables() {
DeleteMultiTableSegment tableSegment = new DeleteMultiTableSegment();
tableSegment.getActualDeleteTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
tableSegment.getActualDeleteTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("order"))));
tableSegment.getActualDeleteTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("order_item"))));
+ DeleteStatement sqlStatement = new SQL92DeleteStatement();
sqlStatement.setTable(tableSegment);
- Collection<String> tableNames = new HashSet<>(Arrays.asList("user", "order", "order_item"));
- when(rule.isAllShardingTables(tableNames)).thenReturn(false);
- when(rule.containsShardingTable(tableNames)).thenReturn(true);
+ ShardingRule rule = mock(ShardingRule.class);
+ when(rule.containsShardingTable(new HashSet<>(Arrays.asList("user", "order", "order_item")))).thenReturn(true);
DeleteStatementContext sqlStatementContext = new DeleteStatementContext(sqlStatement);
- new ShardingDeleteSupportedChecker().check(rule, mock(), mock(), sqlStatementContext);
+ assertThrows(DMLWithMultipleShardingTablesException.class, () -> new ShardingDeleteSupportedChecker().check(rule, mock(), mock(), sqlStatementContext));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadDataSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadDataSupportedCheckerTest.java
index 01dc30303f9..b6554989c2d 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadDataSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadDataSupportedCheckerTest.java
@@ -22,8 +22,8 @@ import org.apache.shardingsphere.sharding.exception.syntax.UnsupportedShardingOp
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.LoadDataStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLLoadDataStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -42,16 +42,16 @@ class ShardingLoadDataSupportedCheckerTest {
@Test
void assertCheckWithSingleTable() {
- MySQLLoadDataStatement sqlStatement = new MySQLLoadDataStatement();
- sqlStatement.setTableSegment(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ LoadDataStatement sqlStatement = mock(LoadDataStatement.class);
+ when(sqlStatement.getTableSegment()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
assertDoesNotThrow(() -> new ShardingLoadDataSupportedChecker().check(rule, mock(), mock(), new LoadDataStatementContext(sqlStatement)));
}
@Test
void assertCheckWithShardingTable() {
- MySQLLoadDataStatement sqlStatement = new MySQLLoadDataStatement();
- sqlStatement.setTableSegment(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- when(rule.isShardingTable("t_order")).thenReturn(true);
+ LoadDataStatement sqlStatement = mock(LoadDataStatement.class);
+ when(sqlStatement.getTableSegment()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
+ when(rule.isShardingTable("foo_tbl")).thenReturn(true);
assertThrows(UnsupportedShardingOperationException.class, () -> new ShardingLoadDataSupportedChecker().check(rule, mock(), mock(), new LoadDataStatementContext(sqlStatement)));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadXmlSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadXmlSupportedCheckerTest.java
index 8340aefc3c9..c36ebb155ad 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadXmlSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingLoadXmlSupportedCheckerTest.java
@@ -22,8 +22,8 @@ import org.apache.shardingsphere.sharding.exception.syntax.UnsupportedShardingOp
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.LoadXMLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLLoadXMLStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -42,16 +42,16 @@ class ShardingLoadXmlSupportedCheckerTest {
@Test
void assertCheckWithSingleTable() {
- MySQLLoadXMLStatement sqlStatement = new MySQLLoadXMLStatement();
- sqlStatement.setTableSegment(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ LoadXMLStatement sqlStatement = mock(LoadXMLStatement.class);
+ when(sqlStatement.getTableSegment()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
assertDoesNotThrow(() -> new ShardingLoadXmlSupportedChecker().check(rule, mock(), mock(), new LoadXMLStatementContext(sqlStatement)));
}
@Test
void assertCheckWithShardingTable() {
- MySQLLoadXMLStatement sqlStatement = new MySQLLoadXMLStatement();
- sqlStatement.setTableSegment(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- when(rule.isShardingTable("t_order")).thenReturn(true);
+ LoadXMLStatement sqlStatement = mock(LoadXMLStatement.class);
+ when(sqlStatement.getTableSegment()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
+ when(rule.isShardingTable("foo_tbl")).thenReturn(true);
assertThrows(UnsupportedShardingOperationException.class, () -> new ShardingLoadXmlSupportedChecker().check(rule, mock(), mock(), new LoadXMLStatementContext(sqlStatement)));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingUpdateSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingUpdateSupportedCheckerTest.java
index d49c5da1e35..7637d44679f 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingUpdateSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingUpdateSupportedCheckerTest.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -76,7 +76,7 @@ class ShardingUpdateSupportedCheckerTest {
}
private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new MySQLUpdateStatement();
+ UpdateStatement result = new SQL92UpdateStatement();
result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("id")));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
index 5ad8dac3bf1..28e77171225 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
@@ -37,14 +37,10 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussFetchStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLShowStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -58,34 +54,11 @@ import static org.mockito.Mockito.when;
class ShardingResultMergerEngineTest {
- private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
@Test
- void assertNewInstanceWithSelectStatementForMySQL() {
- assertNewInstanceWithSelectStatement(new MySQLSelectStatement());
- }
-
- @Test
- void assertNewInstanceWithSelectStatementForOracle() {
- assertNewInstanceWithSelectStatement(new OracleSelectStatement());
- }
-
- @Test
- void assertNewInstanceWithSelectStatementForPostgreSQL() {
- assertNewInstanceWithSelectStatement(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertNewInstanceWithSelectStatementForSQL92() {
- assertNewInstanceWithSelectStatement(new SQL92SelectStatement());
- }
-
- @Test
- void assertNewInstanceWithSelectStatementForSQLServer() {
- assertNewInstanceWithSelectStatement(new SQLServerSelectStatement());
- }
-
- private void assertNewInstanceWithSelectStatement(final SelectStatement selectStatement) {
+ void assertNewInstanceWithSelectStatement() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setProjections(new ProjectionsSegment(0, 0));
@@ -104,7 +77,7 @@ class ShardingResultMergerEngineTest {
@Test
void assertNewInstanceWithOtherStatement() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = new SQL92InsertStatement();
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl"))));
insertStatement.setInsertColumns(insertColumnsSegment);
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/common/IteratorStreamMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/common/IteratorStreamMergedResultTest.java
index a6943ae958a..09706b48d75 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/common/IteratorStreamMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/common/IteratorStreamMergedResultTest.java
@@ -30,7 +30,8 @@ import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtensionContext;
@@ -57,7 +58,7 @@ class IteratorStreamMergedResultTest {
@BeforeEach
void setUp() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatementContext = new SelectStatementContext(createShardingSphereMetaData(), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList());
}
@@ -71,7 +72,7 @@ class IteratorStreamMergedResultTest {
@Test
void assertNextForResultSetsAllEmpty() throws SQLException {
List<QueryResult> queryResults = Arrays.asList(mock(QueryResult.class, RETURNS_DEEP_STUBS), mock(QueryResult.class, RETURNS_DEEP_STUBS), mock(QueryResult.class, RETURNS_DEEP_STUBS));
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "SQL92"));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, database, mock(ConnectionContext.class));
@@ -84,7 +85,7 @@ class IteratorStreamMergedResultTest {
for (QueryResult each : queryResults) {
when(each.next()).thenReturn(true, false);
}
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "SQL92"));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, database, mock(ConnectionContext.class));
@@ -99,7 +100,7 @@ class IteratorStreamMergedResultTest {
void assertNextForNotEmpty(final String name, final int index) throws SQLException {
List<QueryResult> queryResults = Arrays.asList(mock(QueryResult.class, RETURNS_DEEP_STUBS), mock(QueryResult.class, RETURNS_DEEP_STUBS), mock(QueryResult.class, RETURNS_DEEP_STUBS));
when(queryResults.get(index).next()).thenReturn(true, false);
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "SQL92"));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, database, mock(ConnectionContext.class));
@@ -114,7 +115,7 @@ class IteratorStreamMergedResultTest {
when(queryResults.get(1).next()).thenReturn(true, false);
when(queryResults.get(3).next()).thenReturn(true, false);
when(queryResults.get(5).next()).thenReturn(true, false);
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "SQL92"));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, database, mock(ConnectionContext.class));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
index 8668eaf5fd4..8dac7e479e2 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
@@ -29,12 +29,12 @@ import org.apache.shardingsphere.sharding.merge.dal.show.ShowCreateTableMergedRe
import org.apache.shardingsphere.sharding.merge.dal.show.ShowIndexMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowTableStatusMergedResult;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLExplainStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowDatabasesStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowTableStatusStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowTablesStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowIndexStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowTableStatusStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowTablesStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
@@ -62,37 +62,37 @@ class ShardingDALResultMergerTest {
@Test
void assertMergeForShowDatabasesStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLShowDatabasesStatement());
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ShowDatabasesStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(LocalDataMergedResult.class));
}
@Test
void assertMergeForShowShowTablesStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLShowTablesStatement());
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ShowTablesStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(LogicTablesMergedResult.class));
}
@Test
void assertMergeForShowTableStatusStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLShowTableStatusStatement());
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ShowTableStatusStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(ShowTableStatusMergedResult.class));
}
@Test
void assertMergeForShowIndexStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLShowIndexStatement());
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ShowIndexStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(ShowIndexMergedResult.class));
}
@Test
void assertMergeForShowCreateTableStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLShowCreateTableStatement());
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ShowCreateTableStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(ShowCreateTableMergedResult.class));
}
@Test
- void assertMergeForDescribeStatement() throws SQLException {
- SQLStatementContext sqlStatementContext = mockSQLStatementContext(new MySQLExplainStatement());
+ void assertMergeForExplainStatement() throws SQLException {
+ SQLStatementContext sqlStatementContext = mockSQLStatementContext(mock(ExplainStatement.class));
assertThat(resultMerger.merge(queryResults, sqlStatementContext, mock(), mock()), instanceOf(TransparentMergedResult.class));
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
index 8d0b6d87770..9b9871f7172 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
@@ -67,13 +67,15 @@ import static org.mockito.Mockito.when;
@MockitoSettings(strictness = Strictness.LENIENT)
class GroupByMemoryMergedResultTest {
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "SQL92");
+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ShardingSphereDatabase database;
@Test
void assertNextForResultSetsAllEmpty() throws SQLException {
when(database.getName()).thenReturn("db_schema");
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(createQueryResult(), createQueryResult(), createQueryResult()), createSelectStatementContext(), database, mock(ConnectionContext.class));
assertFalse(actual.next());
}
@@ -96,7 +98,7 @@ class GroupByMemoryMergedResultTest {
when(queryResult3.getValue(3, Object.class)).thenReturn(2, 3);
when(queryResult3.getValue(4, Object.class)).thenReturn(2, 2, 3);
when(queryResult3.getValue(5, Object.class)).thenReturn(20, 20, 30);
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), database, mock(ConnectionContext.class));
assertTrue(actual.next());
assertThat(actual.getValue(1, Object.class), is(new BigDecimal(30)));
@@ -159,7 +161,7 @@ class GroupByMemoryMergedResultTest {
when(queryResult3.getValue(3, Object.class)).thenReturn(2, 3);
when(queryResult3.getValue(4, Object.class)).thenReturn(2, 2, 3);
when(queryResult3.getValue(5, Object.class)).thenReturn(20, 20, 30);
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), database, mock(ConnectionContext.class));
assertTrue(actual.next());
assertThat(actual.getValue(1, Object.class), is(new BigDecimal(30)));
@@ -202,7 +204,7 @@ class GroupByMemoryMergedResultTest {
when(database.getName()).thenReturn("foo_db");
when(database.getSchema("foo_db")).thenReturn(schema);
when(database.getAllSchemas()).thenReturn(Collections.singleton(schema));
- ShardingDQLResultMerger merger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger merger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = merger.merge(Arrays.asList(queryResult, queryResult, queryResult), createSelectStatementContext(database), database, mock(ConnectionContext.class));
assertFalse(actual.next());
}
@@ -212,7 +214,7 @@ class GroupByMemoryMergedResultTest {
when(database.getName()).thenReturn("db_schema");
QueryResult queryResult1 = createEmptyQueryResultWithCountGroupBy();
QueryResult queryResult2 = createEmptyQueryResultWithCountGroupBy();
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2), createSelectStatementContextForCountGroupBy(), database, mock(ConnectionContext.class));
assertFalse(actual.next());
}
@@ -221,7 +223,7 @@ class GroupByMemoryMergedResultTest {
void assertNextForEmptyResultWithCountGroupByDifferentOrderBy() throws SQLException {
when(database.getName()).thenReturn("db_schema");
QueryResult queryResult = createEmptyQueryResultWithCountGroupBy();
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Collections.singletonList(queryResult), createSelectStatementContextForCountGroupByDifferentOrderBy(), database, mock(ConnectionContext.class));
assertFalse(actual.next());
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
index c3580987b3c..8167891da03 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
@@ -29,11 +29,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.Gro
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.IndexOrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.ResultSet;
@@ -55,31 +51,8 @@ class GroupByRowComparatorTest {
private final List<Boolean> caseSensitives = Arrays.asList(false, false, false);
@Test
- void assertCompareToForAscWithOrderByItemsForMySQL() throws SQLException {
- assertCompareToForAscWithOrderByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithOrderByItemsForOracle() throws SQLException {
- assertCompareToForAscWithOrderByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithOrderByItemsForPostgreSQL() throws SQLException {
- assertCompareToForAscWithOrderByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithOrderByItemsForSQL92() throws SQLException {
- assertCompareToForAscWithOrderByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithOrderByItemsForSQLServer() throws SQLException {
- assertCompareToForAscWithOrderByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForAscWithOrderByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForAscWithOrderByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
@@ -98,31 +71,8 @@ class GroupByRowComparatorTest {
}
@Test
- void assertCompareToForDescWithOrderByItemsForMySQL() throws SQLException {
- assertCompareToForDescWithOrderByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDescWithOrderByItemsForOracle() throws SQLException {
- assertCompareToForDescWithOrderByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForDescWithOrderByItemsForPostgreSQL() throws SQLException {
- assertCompareToForDescWithOrderByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDescWithOrderByItemsForSQL92() throws SQLException {
- assertCompareToForDescWithOrderByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForDescWithOrderByItemsForSQLServer() throws SQLException {
- assertCompareToForDescWithOrderByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForDescWithOrderByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForDescWithOrderByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
@@ -141,31 +91,8 @@ class GroupByRowComparatorTest {
}
@Test
- void assertCompareToForEqualWithOrderByItemsForMySQL() throws SQLException {
- assertCompareToForEqualWithOrderByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithOrderByItemsForOracle() throws SQLException {
- assertCompareToForEqualWithOrderByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithOrderByItemsForPostgreSQL() throws SQLException {
- assertCompareToForEqualWithOrderByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithOrderByItemsForSQL92() throws SQLException {
- assertCompareToForEqualWithOrderByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithOrderByItemsForSQLServer() throws SQLException {
- assertCompareToForEqualWithOrderByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForEqualWithOrderByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForEqualWithOrderByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
@@ -184,31 +111,8 @@ class GroupByRowComparatorTest {
}
@Test
- void assertCompareToForAscWithGroupByItemsForMySQL() throws SQLException {
- assertCompareToForAscWithGroupByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithGroupByItemsForOracle() throws SQLException {
- assertCompareToForAscWithGroupByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithGroupByItemsForPostgreSQL() throws SQLException {
- assertCompareToForAscWithGroupByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithGroupByItemsForSQL92() throws SQLException {
- assertCompareToForAscWithGroupByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForAscWithGroupByItemsForSQLServer() throws SQLException {
- assertCompareToForAscWithGroupByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForAscWithGroupByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForAscWithGroupByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
@@ -225,31 +129,8 @@ class GroupByRowComparatorTest {
}
@Test
- void assertCompareToForDecsWithGroupByItemsForMySQL() throws SQLException {
- assertCompareToForDescWithGroupByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDecsWithGroupByItemsForOracle() throws SQLException {
- assertCompareToForDescWithGroupByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForDecsWithGroupByItemsForPostgreSQL() throws SQLException {
- assertCompareToForDescWithGroupByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDecsWithGroupByItemsForSQL92() throws SQLException {
- assertCompareToForDescWithGroupByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForDecsWithGroupByItemsForSQLServer() throws SQLException {
- assertCompareToForDescWithGroupByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForDescWithGroupByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForDescWithGroupByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
@@ -270,31 +151,8 @@ class GroupByRowComparatorTest {
}
@Test
- void assertCompareToForEqualWithGroupByItemsForMySQL() throws SQLException {
- assertCompareToForEqualWithGroupByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithGroupByItemsForOracle() throws SQLException {
- assertCompareToForEqualWithGroupByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithGroupByItemsForPostgreSQL() throws SQLException {
- assertCompareToForEqualWithGroupByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithGroupByItemsForSQL92() throws SQLException {
- assertCompareToForEqualWithGroupByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForEqualWithGroupByItemsForSQLServer() throws SQLException {
- assertCompareToForEqualWithGroupByItems(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForEqualWithGroupByItems(final SelectStatement selectStatement) throws SQLException {
+ void assertCompareToForEqualWithGroupByItems() throws SQLException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList(
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
index 63b5b46cc13..3678c468995 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
@@ -41,6 +41,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.Ord
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.IndexOrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.junit.jupiter.api.Test;
@@ -164,7 +165,7 @@ class GroupByStreamMergedResultTest {
private SelectStatementContext createSelectStatementContext() {
SimpleTableSegment tableSegment = new SimpleTableSegment(new TableNameSegment(10, 13, new IdentifierValue("tbl")));
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new MySQLSelectStatement();
selectStatement.setFrom(tableSegment);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
index b1c3e9aa4cd..b5772feabad 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
@@ -40,8 +40,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.Ord
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.IndexOrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -60,13 +61,13 @@ import static org.mockito.Mockito.when;
class OrderByStreamMergedResultTest {
- private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "SQL92");
private SelectStatementContext selectStatementContext;
@BeforeEach
void setUp() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
SimpleTableSegment tableSegment = new SimpleTableSegment(new TableNameSegment(10, 13, new IdentifierValue("tbl")));
selectStatement.setFrom(tableSegment);
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
index 1d94a34d404..a69ca3aff05 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
@@ -38,11 +38,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.ite
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.OrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import org.mockito.internal.configuration.plugins.Plugins;
@@ -61,31 +57,8 @@ import static org.mockito.Mockito.when;
class OrderByValueTest {
@Test
- void assertCompareToForAscForMySQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForAsc(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscForOracle() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForAsc(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForAscForPostgreSQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForAsc(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForAscForSQL92() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForAsc(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForAscForSQLServer() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForAsc(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForAsc(final SelectStatement selectStatement) throws SQLException, NoSuchFieldException, IllegalAccessException {
+ void assertCompareToForAsc() throws SQLException, NoSuchFieldException, IllegalAccessException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
selectStatement.setOrderBy(createOrderBySegment());
@@ -118,31 +91,8 @@ class OrderByValueTest {
}
@Test
- void assertCompareToForDescForMySQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForDesc(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDescForOracle() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForDesc(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToForDescForPostgreSQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForDesc(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToForDescForSQL92() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForDesc(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToForDescForSQLServer() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToForDesc(new SQLServerSelectStatement());
- }
-
- private void assertCompareToForDesc(final SelectStatement selectStatement) throws SQLException, NoSuchFieldException, IllegalAccessException {
+ void assertCompareToForDesc() throws SQLException, NoSuchFieldException, IllegalAccessException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
selectStatement.setOrderBy(createOrderBySegment());
@@ -170,31 +120,8 @@ class OrderByValueTest {
}
@Test
- void assertCompareToWhenEqualForMySQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToWhenEqual(new MySQLSelectStatement());
- }
-
- @Test
- void assertCompareToWhenEqualForOracle() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToWhenEqual(new OracleSelectStatement());
- }
-
- @Test
- void assertCompareToWhenEqualForPostgreSQL() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToWhenEqual(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCompareToWhenEqualForSQL92() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToWhenEqual(new SQL92SelectStatement());
- }
-
- @Test
- void assertCompareToWhenEqualForSQLServer() throws SQLException, NoSuchFieldException, IllegalAccessException {
- assertCompareToWhenEqual(new SQLServerSelectStatement());
- }
-
- private void assertCompareToWhenEqual(final SelectStatement selectStatement) throws SQLException, NoSuchFieldException, IllegalAccessException {
+ void assertCompareToWhenEqual() throws SQLException, NoSuchFieldException, IllegalAccessException {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
selectStatement.setOrderBy(createOrderBySegment());
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/LimitDecoratorMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/LimitDecoratorMergedResultTest.java
index bc5a307b993..b826a3f5b57 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/LimitDecoratorMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/LimitDecoratorMergedResultTest.java
@@ -29,7 +29,8 @@ import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.LimitSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.NumberLiteralLimitValueSegment;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.SQLException;
@@ -44,16 +45,18 @@ import static org.mockito.Mockito.when;
class LimitDecoratorMergedResultTest {
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "SQL92");
+
@Test
void assertNextForSkipAll() throws SQLException {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, Long.MAX_VALUE), null));
SelectStatementContext selectStatementContext = new SelectStatementContext(
new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock()), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList());
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(mockQueryResult(), mockQueryResult(), mockQueryResult(), mockQueryResult()), selectStatementContext, database,
mock(ConnectionContext.class));
assertFalse(actual.next());
@@ -63,12 +66,12 @@ class LimitDecoratorMergedResultTest {
void assertNextWithoutRowCount() throws SQLException {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, 2L), null));
SelectStatementContext selectStatementContext = new SelectStatementContext(
new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock()), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList());
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
MergedResult actual = resultMerger.merge(Arrays.asList(mockQueryResult(), mockQueryResult(), mockQueryResult(), mockQueryResult()), selectStatementContext, database,
mock(ConnectionContext.class));
for (int i = 0; i < 6; i++) {
@@ -81,14 +84,14 @@ class LimitDecoratorMergedResultTest {
void assertNextWithRowCount() throws SQLException {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, 2L), new NumberLiteralLimitValueSegment(0, 0, 2L)));
SelectStatementContext selectStatementContext = new SelectStatementContext(
new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock()), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList());
- ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(TypedSPILoader.getService(DatabaseType.class, "MySQL"));
- MergedResult actual = resultMerger.merge(Arrays.asList(mockQueryResult(), mockQueryResult(), mockQueryResult(), mockQueryResult()), selectStatementContext, database,
- mock(ConnectionContext.class));
+ ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(databaseType);
+ MergedResult actual = resultMerger.merge(
+ Arrays.asList(mockQueryResult(), mockQueryResult(), mockQueryResult(), mockQueryResult()), selectStatementContext, database, mock(ConnectionContext.class));
assertTrue(actual.next());
assertTrue(actual.next());
assertFalse(actual.next());
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/RowNumberDecoratorMergedResultTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/RowNumberDecoratorMergedResultTest.java
index 20af96fc4ad..a17c027a834 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/RowNumberDecoratorMergedResultTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/RowNumberDecoratorMergedResultTest.java
@@ -40,7 +40,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
import org.junit.jupiter.api.Test;
@@ -68,7 +67,7 @@ class RowNumberDecoratorMergedResultTest {
when(whereSegment.getExpr()).thenReturn(binaryOperationExpression);
SubqueryTableSegment subqueryTableSegment = mock(SubqueryTableSegment.class);
SubquerySegment subquerySegment = mock(SubquerySegment.class);
- SelectStatement subSelectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement subSelectStatement = mock(SelectStatement.class);
ProjectionsSegment subProjectionsSegment = mock(ProjectionsSegment.class);
TopProjectionSegment topProjectionSegment = mock(TopProjectionSegment.class);
when(topProjectionSegment.getAlias()).thenReturn("row_id");
@@ -115,7 +114,7 @@ class RowNumberDecoratorMergedResultTest {
when(whereSegment.getExpr()).thenReturn(binaryOperationExpression);
SubqueryTableSegment subqueryTableSegment = mock(SubqueryTableSegment.class);
SubquerySegment subquerySegment = mock(SubquerySegment.class);
- SelectStatement subSelectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement subSelectStatement = mock(SelectStatement.class);
ProjectionsSegment subProjectionsSegment = mock(ProjectionsSegment.class);
TopProjectionSegment topProjectionSegment = mock(TopProjectionSegment.class);
when(topProjectionSegment.getAlias()).thenReturn("row_id");
@@ -149,7 +148,7 @@ class RowNumberDecoratorMergedResultTest {
when(whereSegment.getExpr()).thenReturn(binaryOperationExpression);
SubqueryTableSegment subqueryTableSegment = mock(SubqueryTableSegment.class);
SubquerySegment subquerySegment = mock(SubquerySegment.class);
- SelectStatement subSelectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement subSelectStatement = mock(SelectStatement.class);
ProjectionsSegment subProjectionsSegment = mock(ProjectionsSegment.class);
TopProjectionSegment topProjectionSegment = mock(TopProjectionSegment.class);
when(topProjectionSegment.getAlias()).thenReturn("row_id");
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGeneratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGeneratorTest.java
index e1fdbae2d27..7804b202162 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGeneratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingRemoveTokenGeneratorTest.java
@@ -32,8 +32,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.Gro
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.IndexOrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Collection;
@@ -77,7 +78,7 @@ class ShardingRemoveTokenGeneratorTest {
}
private SelectStatementContext createSelectStatementContext() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user"))));
selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, NullsOrderType.FIRST))));
selectStatement.setProjections(createProjectionsSegment());
@@ -87,7 +88,7 @@ class ShardingRemoveTokenGeneratorTest {
new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock()), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList());
}
- private static ProjectionsSegment createProjectionsSegment() {
+ private ProjectionsSegment createProjectionsSegment() {
ProjectionsSegment result = new ProjectionsSegment(0, 8);
result.getProjections().add(new AggregationDistinctProjectionSegment(0, 8, AggregationType.SUM, "number", "(DISTINCT number)"));
return result;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
index 4c57935c353..9936111f639 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
@@ -31,9 +31,10 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.ShardingTable;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement;
import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92DropTableStatement;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -79,8 +80,8 @@ class ShardingDropTableRouteContextCheckerTest {
}
@Test
- void assertCheckWhenDropTableInUsedForMySQL() {
- MySQLDropTableStatement sqlStatement = new MySQLDropTableStatement();
+ void assertCheckWhenDropTableInUsed() {
+ DropTableStatement sqlStatement = new SQL92DropTableStatement();
sqlStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_item"))));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("db_schema");
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingRenameTableRouteContextCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingRenameTableRouteContextCheckerTest.java
index 5be926ffb60..fd5c7a5fb8f 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingRenameTableRouteContextCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingRenameTableRouteContextCheckerTest.java
@@ -31,8 +31,8 @@ import org.apache.shardingsphere.sharding.rule.ShardingTable;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.RenameTableDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLRenameTableStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -61,8 +61,8 @@ class ShardingRenameTableRouteContextCheckerTest {
routeContext.getRouteUnits().add(mock(RouteUnit.class));
ShardingTable shardingTable = mock(ShardingTable.class);
when(shardingTable.getActualDataNodes()).thenReturn(Arrays.asList(mock(DataNode.class), mock(DataNode.class)));
- when(shardingRule.getShardingTable("t_order")).thenReturn(shardingTable);
- when(shardingRule.isShardingTable("t_order")).thenReturn(true);
+ when(shardingRule.getShardingTable("foo_tbl")).thenReturn(shardingTable);
+ when(shardingRule.isShardingTable("foo_tbl")).thenReturn(true);
SQLStatementContext sqlStatementContext = createRenameTableStatementContext();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
ConfigurationProperties props = mock(ConfigurationProperties.class);
@@ -76,8 +76,8 @@ class ShardingRenameTableRouteContextCheckerTest {
routeContext.getRouteUnits().add(mock(RouteUnit.class));
ShardingTable shardingTable = mock(ShardingTable.class);
when(shardingTable.getActualDataNodes()).thenReturn(Collections.singletonList(mock(DataNode.class)));
- when(shardingRule.getShardingTable("t_order")).thenReturn(shardingTable);
- when(shardingRule.isShardingTable("t_order")).thenReturn(true);
+ when(shardingRule.getShardingTable("foo_tbl")).thenReturn(shardingTable);
+ when(shardingRule.isShardingTable("foo_tbl")).thenReturn(true);
SQLStatementContext sqlStatementContext = createRenameTableStatementContext();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
ConfigurationProperties props = mock(ConfigurationProperties.class);
@@ -86,11 +86,11 @@ class ShardingRenameTableRouteContextCheckerTest {
}
private SQLStatementContext createRenameTableStatementContext() {
- MySQLRenameTableStatement sqlStatement = new MySQLRenameTableStatement();
+ RenameTableStatement sqlStatement = mock(RenameTableStatement.class);
RenameTableDefinitionSegment renameTableDefinitionSegment = new RenameTableDefinitionSegment(0, 0);
- renameTableDefinitionSegment.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- renameTableDefinitionSegment.setRenameTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_user_order"))));
- sqlStatement.getRenameTables().add(renameTableDefinitionSegment);
+ renameTableDefinitionSegment.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
+ renameTableDefinitionSegment.setRenameTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"))));
+ when(sqlStatement.getRenameTables()).thenReturn(Collections.singleton(renameTableDefinitionSegment));
return new RenameTableStatementContext(sqlStatement);
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
index 928eea45c04..6a47c0ab7d3 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.sharding.route.engine.checker.dml;
import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -43,7 +44,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.Test;
@@ -51,6 +51,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.util.Arrays;
import java.util.Collection;
@@ -65,8 +67,11 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
class ShardingInsertRouteContextCheckerTest {
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
+
@Mock
private ShardingRule shardingRule;
@@ -204,16 +209,13 @@ class ShardingInsertRouteContextCheckerTest {
}
private InsertStatement createInsertStatement() {
- MySQLInsertStatement result = new MySQLInsertStatement();
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
+ InsertStatement result = mock(InsertStatement.class);
+ when(result.getDatabaseType()).thenReturn(databaseType);
+ when(result.getTable()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user")))));
ColumnSegment columnSegment = new ColumnSegment(0, 0, new IdentifierValue("id"));
- List<ColumnSegment> columnSegments = new LinkedList<>();
- columnSegments.add(columnSegment);
- ColumnAssignmentSegment assignmentSegment = new ColumnAssignmentSegment(0, 0, columnSegments, new ParameterMarkerExpressionSegment(0, 0, 0));
- result.setOnDuplicateKeyColumns(new OnDuplicateKeyColumnsSegment(0, 0, Collections.singletonList(assignmentSegment)));
- Collection<ColumnSegment> columns = new LinkedList<>();
- columns.add(columnSegment);
- result.setInsertColumns(new InsertColumnsSegment(0, 0, columns));
+ ColumnAssignmentSegment assignmentSegment = new ColumnAssignmentSegment(0, 0, Collections.singletonList(columnSegment), new ParameterMarkerExpressionSegment(0, 0, 0));
+ when(result.getOnDuplicateKeyColumns()).thenReturn(Optional.of(new OnDuplicateKeyColumnsSegment(0, 0, Collections.singletonList(assignmentSegment))));
+ when(result.getInsertColumns()).thenReturn(Optional.of(new InsertColumnsSegment(0, 0, Collections.singleton(columnSegment))));
return result;
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
index 160e2a99264..eb4dac28c42 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
@@ -38,7 +38,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.Test;
@@ -123,7 +123,7 @@ class ShardingUpdateRouteContextCheckerTest {
}
private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new MySQLUpdateStatement();
+ UpdateStatement result = new SQL92UpdateStatement();
result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("id")));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
index 755d1da8837..eba4c281996 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
@@ -41,20 +41,16 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowColumnsStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.DCLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.GrantStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DDLStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLOptimizeTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowColumnsStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLGrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dcl.OracleGrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dcl.PostgreSQLGrantStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dcl.SQL92GrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.SQLServerGrantStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -134,31 +130,8 @@ class ShardingRouteEngineFactoryTest {
}
@Test
- void assertNewInstanceForDCLForSingleTableForMySQL() {
- assertNewInstanceForDCLForSingleTable(new MySQLGrantStatement());
- }
-
- @Test
- void assertNewInstanceForDCLForSingleTableForOracle() {
- assertNewInstanceForDCLForSingleTable(new OracleGrantStatement());
- }
-
- @Test
- void assertNewInstanceForDCLForSingleTableForPostgreSQL() {
- assertNewInstanceForDCLForSingleTable(new PostgreSQLGrantStatement());
- }
-
- @Test
- void assertNewInstanceForDCLForSingleTableForSQLServer() {
- assertNewInstanceForDCLForSingleTable(new SQLServerGrantStatement());
- }
-
- @Test
- void assertNewInstanceForDCLForSingleTableForSQL92() {
- assertNewInstanceForDCLForSingleTable(new SQL92GrantStatement());
- }
-
- private void assertNewInstanceForDCLForSingleTable(final GrantStatement grantStatement) {
+ void assertNewInstanceForDCLForSingleTable() {
+ GrantStatement grantStatement = new SQL92GrantStatement();
grantStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl"))));
GrantStatementContext sqlStatementContext = new GrantStatementContext(grantStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
@@ -177,7 +150,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForSelectWithoutSingleTable() {
- SQLStatement sqlStatement = mock(MySQLSelectStatement.class);
+ SQLStatement sqlStatement = mock(SelectStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
ShardingRouteEngine actual =
@@ -187,7 +160,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForSelectBroadcastTable() {
- SQLStatement sqlStatement = mock(MySQLSelectStatement.class);
+ SQLStatement sqlStatement = mock(SelectStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
ShardingRouteEngine actual = ShardingRouteEngineFactory.newInstance(shardingRule, database, queryContext, shardingConditions, Collections.emptyList(), props);
@@ -229,7 +202,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForShowCreateTableWithTableRule() {
- DALStatement dalStatement = mock(MySQLShowCreateTableStatement.class);
+ DALStatement dalStatement = mock(ShowCreateTableStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
tableNames.add("table_1");
when(shardingRule.getShardingLogicTableNames(tableNames)).thenReturn(tableNames);
@@ -240,7 +213,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForShowColumnsWithTableRule() {
- DALStatement dalStatement = mock(MySQLShowColumnsStatement.class);
+ DALStatement dalStatement = mock(ShowColumnsStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
tableNames.add("table_1");
when(shardingRule.getShardingLogicTableNames(tableNames)).thenReturn(tableNames);
@@ -266,8 +239,8 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForOptimizeTableWithShardingTable() {
- MySQLOptimizeTableStatement optimizeTableStatement = mock(MySQLOptimizeTableStatement.class);
- when(sqlStatementContext.getSqlStatement()).thenReturn(optimizeTableStatement);
+ OptimizeTableStatement sqlStatement = mock(OptimizeTableStatement.class);
+ when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
tableNames.add("table_1");
when(shardingRule.getShardingLogicTableNames(tableNames)).thenReturn(tableNames);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
index 202cb667bca..9b14398ba5d 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
@@ -61,7 +61,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
@@ -644,7 +643,7 @@ class ShardingRuleTest {
BinaryOperationExpression condition = createBinaryOperationExpression(leftDatabaseJoin, rightDatabaseJoin, EQUAL);
JoinTableSegment joinTable = mock(JoinTableSegment.class);
when(joinTable.getCondition()).thenReturn(condition);
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getFrom()).thenReturn(Optional.of(joinTable));
SelectStatementContext sqlStatementContext = mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getSqlStatement()).thenReturn(selectStatement);
@@ -665,7 +664,7 @@ class ShardingRuleTest {
BinaryOperationExpression condition = createBinaryOperationExpression(leftDatabaseJoin, rightDatabaseJoin, EQUAL);
JoinTableSegment joinTable = mock(JoinTableSegment.class);
when(joinTable.getCondition()).thenReturn(condition);
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getFrom()).thenReturn(Optional.of(joinTable));
SelectStatementContext sqlStatementContext = mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getSqlStatement()).thenReturn(selectStatement);
@@ -700,7 +699,7 @@ class ShardingRuleTest {
JoinTableSegment joinTable = mock(JoinTableSegment.class);
BinaryOperationExpression condition = createBinaryOperationExpression(databaseJoin, tableJoin, AND);
when(joinTable.getCondition()).thenReturn(condition);
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getFrom()).thenReturn(Optional.of(joinTable));
SelectStatementContext sqlStatementContext = mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getSqlStatement()).thenReturn(selectStatement);
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
index 27a6a73a3c1..befb6e3ab08 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
@@ -34,11 +34,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerInsertStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -69,31 +65,8 @@ class GeneratedKeyContextEngineTest {
}
@Test
- void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfigurationForMySQL() {
- assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(new MySQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfigurationForOracle() {
- assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(new OracleInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfigurationForPostgreSQL() {
- assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfigurationForSQL92() {
- assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(new SQL92InsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfigurationForSQLServer() {
- assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(new SQLServerInsertStatement());
- }
-
- private void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(final InsertStatement insertStatement) {
+ void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl1"))));
insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("id")))));
assertFalse(new GeneratedKeyContextEngine(insertStatement, schema).createGenerateKeyContext(Collections.emptyMap(),
@@ -101,41 +74,9 @@ class GeneratedKeyContextEngineTest {
}
@Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfigurationForMySQL() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new MySQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateUpperCaseKeyColumnConfigurationForMySQL2() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new MySQLInsertStatement(), "bar_tbl");
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfigurationForOracle() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new OracleInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfigurationForPostgreSQL() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfigurationForSQL92() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new SQL92InsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfigurationForSQLServer() {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(new SQLServerInsertStatement());
- }
-
- private void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(final InsertStatement insertStatement) {
- assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(insertStatement, "foo_tbl");
- }
-
- private void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration(final InsertStatement insertStatement, final String tableName) {
- insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue(tableName))));
+ void assertCreateGenerateKeyContextWhenCreateWithGenerateKeyColumnConfiguration() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
+ insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("id")))));
List<ExpressionSegment> expressionSegments = Collections.singletonList(new LiteralExpressionSegment(0, 0, 1));
InsertValueContext insertValueContext = new InsertValueContext(expressionSegments, Collections.emptyList(), 0);
@@ -147,31 +88,8 @@ class GeneratedKeyContextEngineTest {
}
@Test
- void assertCreateGenerateKeyContextWhenFindForMySQL() {
- assertCreateGenerateKeyContextWhenFind(new MySQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenFindForOracle() {
- assertCreateGenerateKeyContextWhenFind(new OracleInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenFindForPostgreSQL() {
- assertCreateGenerateKeyContextWhenFind(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenFindForSQL92() {
- assertCreateGenerateKeyContextWhenFind(new SQL92InsertStatement());
- }
-
- @Test
- void assertCreateGenerateKeyContextWhenFindForSQLServer() {
- assertCreateGenerateKeyContextWhenFind(new SQLServerInsertStatement());
- }
-
- private void assertCreateGenerateKeyContextWhenFind(final InsertStatement insertStatement) {
+ void assertCreateGenerateKeyContextWhenFind() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("id")))));
insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new ParameterMarkerExpressionSegment(1, 2, 0))));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/groupby/engine/GroupByContextEngineTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/groupby/engine/GroupByContextEngineTest.java
index 82b29d027cf..a42969cd405 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/groupby/engine/GroupByContextEngineTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/groupby/engine/GroupByContextEngineTest.java
@@ -28,11 +28,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.ite
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.OrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -44,61 +40,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
class GroupByContextEngineTest {
@Test
- void assertCreateGroupByContextWithoutGroupByForMySQL() {
- assertCreateGroupByContextWithoutGroupBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithoutGroupByForOracle() {
- assertCreateGroupByContextWithoutGroupBy(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithoutGroupByForPostgreSQL() {
- assertCreateGroupByContextWithoutGroupBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithoutGroupByForSQL92() {
- assertCreateGroupByContextWithoutGroupBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithoutGroupByForSQLServer() {
- assertCreateGroupByContextWithoutGroupBy(new SQLServerSelectStatement());
- }
-
- private void assertCreateGroupByContextWithoutGroupBy(final SelectStatement selectStatement) {
+ void assertCreateGroupByContextWithoutGroupBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
GroupByContext actualGroupByContext = new GroupByContextEngine().createGroupByContext(selectStatement);
assertTrue(actualGroupByContext.getItems().isEmpty());
}
@Test
- void assertCreateGroupByContextWithGroupByForMySQL() {
- assertCreateGroupByContextWithGroupBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithGroupByForOracle() {
- assertCreateGroupByContextWithGroupBy(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithGroupByForPostgreSQL() {
- assertCreateGroupByContextWithGroupBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithGroupByForSQL92() {
- assertCreateGroupByContextWithGroupBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateGroupByContextWithGroupByForSQLServer() {
- assertCreateGroupByContextWithGroupBy(new SQLServerSelectStatement());
- }
-
- private void assertCreateGroupByContextWithGroupBy(final SelectStatement selectStatement) {
+ void assertCreateGroupByContextWithGroupBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
OrderByItemSegment columnOrderByItemSegment = new ColumnOrderByItemSegment(new ColumnSegment(0, 1, new IdentifierValue("column1")), OrderDirection.ASC, NullsOrderType.LAST);
OrderByItemSegment indexOrderByItemSegment1 = new IndexOrderByItemSegment(1, 2, 2, OrderDirection.ASC, NullsOrderType.LAST);
OrderByItemSegment indexOrderByItemSegment2 = new IndexOrderByItemSegment(2, 3, 3, OrderDirection.ASC, NullsOrderType.LAST);
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/orderby/engine/OrderByContextEngineTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/orderby/engine/OrderByContextEngineTest.java
index ab93d4c0c15..b03b62ca6b3 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/orderby/engine/OrderByContextEngineTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/orderby/engine/OrderByContextEngineTest.java
@@ -32,11 +32,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.ite
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.OrderByItemSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -52,31 +48,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
class OrderByContextEngineTest {
@Test
- void assertCreateOrderByWithoutOrderByForMySQL() {
- assertCreateOrderByWithoutOrderBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithoutOrderByForOracle() {
- assertCreateOrderByWithoutOrderBy(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithoutOrderByForPostgreSQL() {
- assertCreateOrderByWithoutOrderBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithoutOrderByForSQL92() {
- assertCreateOrderByWithoutOrderBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithoutOrderByForSQLServer() {
- assertCreateOrderByWithoutOrderBy(new SQLServerSelectStatement());
- }
-
- private void assertCreateOrderByWithoutOrderBy(final SelectStatement selectStatement) {
+ void assertCreateOrderByWithoutOrderBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
OrderByItem orderByItem1 = new OrderByItem(new IndexOrderByItemSegment(0, 1, 1, OrderDirection.ASC, NullsOrderType.LAST));
OrderByItem orderByItem2 = new OrderByItem(new IndexOrderByItemSegment(1, 2, 2, OrderDirection.ASC, NullsOrderType.LAST));
Collection<OrderByItem> orderByItems = Arrays.asList(orderByItem1, orderByItem2);
@@ -87,31 +60,8 @@ class OrderByContextEngineTest {
}
@Test
- void assertCreateOrderByWithOrderByForMySQL() {
- assertCreateOrderByWithOrderBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithOrderByForOracle() {
- assertCreateOrderByWithOrderBy(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithOrderByForPostgreSQL() {
- assertCreateOrderByWithOrderBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithOrderByForSQL92() {
- assertCreateOrderByWithOrderBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateOrderByWithOrderByForSQLServer() {
- assertCreateOrderByWithOrderBy(new SQLServerSelectStatement());
- }
-
- private void assertCreateOrderByWithOrderBy(final SelectStatement selectStatement) {
+ void assertCreateOrderByWithOrderBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
OrderByItemSegment columnOrderByItemSegment = new ColumnOrderByItemSegment(new ColumnSegment(0, 1, new IdentifierValue("column1")), OrderDirection.ASC, NullsOrderType.FIRST);
OrderByItemSegment indexOrderByItemSegment1 = new IndexOrderByItemSegment(1, 2, 2, OrderDirection.ASC, NullsOrderType.LAST);
OrderByItemSegment indexOrderByItemSegment2 = new IndexOrderByItemSegment(2, 3, 3, OrderDirection.ASC, NullsOrderType.LAST);
@@ -129,31 +79,8 @@ class OrderByContextEngineTest {
}
@Test
- void assertCreateOrderInDistinctByWithoutOrderByForMySQL() {
- assertCreateOrderInDistinctByWithoutOrderBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderInDistinctByWithoutOrderByForOracle() {
- assertCreateOrderInDistinctByWithoutOrderBy(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateOrderInDistinctByWithoutOrderByForPostgreSQL() {
- assertCreateOrderInDistinctByWithoutOrderBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateOrderInDistinctByWithoutOrderByForSQL92() {
- assertCreateOrderInDistinctByWithoutOrderBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateOrderInDistinctByWithoutOrderByForSQLServer() {
- assertCreateOrderInDistinctByWithoutOrderBy(new SQLServerSelectStatement());
- }
-
- void assertCreateOrderInDistinctByWithoutOrderBy(final SelectStatement selectStatement) {
+ void assertCreateOrderInDistinctByWithoutOrderBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ColumnProjectionSegment columnProjectionSegment1 = new ColumnProjectionSegment(new ColumnSegment(0, 1, new IdentifierValue("column1")));
ColumnProjectionSegment columnProjectionSegment2 = new ColumnProjectionSegment(new ColumnSegment(1, 2, new IdentifierValue("column2")));
List<ProjectionSegment> list = Arrays.asList(columnProjectionSegment1, columnProjectionSegment2);
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/PaginationContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/PaginationContextTest.java
index b76e01fb5b2..8dbcb5b20b9 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/PaginationContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/PaginationContextTest.java
@@ -30,11 +30,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.paginatio
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.NumberLiteralLimitValueSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.ParameterMarkerLimitValueSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -135,31 +131,8 @@ class PaginationContextTest {
}
@Test
- void assertGetRevisedRowCountForMySQL() {
- getRevisedRowCount(new MySQLSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountForOracle() {
- getRevisedRowCount(new OracleSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountForPostgreSQL() {
- getRevisedRowCount(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountForSQL92() {
- getRevisedRowCount(new SQL92SelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountForSQLServer() {
- getRevisedRowCount(new SQLServerSelectStatement());
- }
-
- private void getRevisedRowCount(final SelectStatement selectStatement) {
+ void getRevisedRowCount() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), Collections.emptyList());
ShardingSphereMetaData metaData = new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock());
@@ -168,31 +141,8 @@ class PaginationContextTest {
}
@Test
- void assertGetRevisedRowCountWithMaxForMySQL() {
- getRevisedRowCountWithMax(new MySQLSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountWithMaxForOracle() {
- getRevisedRowCountWithMax(new OracleSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountWithMaxForPostgreSQL() {
- getRevisedRowCountWithMax(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountWithMaxForSQL92() {
- getRevisedRowCountWithMax(new SQL92SelectStatement());
- }
-
- @Test
- void assertGetRevisedRowCountWithMaxForSQLServer() {
- getRevisedRowCountWithMax(new SQLServerSelectStatement());
- }
-
- private void getRevisedRowCountWithMax(final SelectStatement selectStatement) {
+ void getRevisedRowCountWithMax() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, NullsOrderType.LAST))));
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, NullsOrderType.LAST))));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngineTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngineTest.java
index a2930093152..15e78b032b8 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngineTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngineTest.java
@@ -29,9 +29,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.paginatio
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.top.TopProjectionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
@@ -47,29 +44,7 @@ import static org.mockito.Mockito.mock;
class PaginationContextEngineTest {
@Test
- void assertCreatePaginationContextWhenLimitSegmentIsPresentForMySQL() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
- selectStatement.setLimit(new LimitSegment(0, 10, new NumberLiteralLimitValueSegment(0, 10, 100L),
- new NumberLiteralLimitValueSegment(0, 10, 100L)));
- PaginationContext paginationContext = new PaginationContextEngine(getDatabaseType("MySQL")).createPaginationContext(
- selectStatement, mock(ProjectionsContext.class), Collections.emptyList(), Collections.emptyList());
- assertTrue(paginationContext.getOffsetSegment().isPresent());
- assertTrue(paginationContext.getRowCountSegment().isPresent());
- }
-
- @Test
- void assertCreatePaginationContextWhenLimitSegmentIsPresentForPostgreSQL() {
- PostgreSQLSelectStatement selectStatement = new PostgreSQLSelectStatement();
- selectStatement.setLimit(new LimitSegment(0, 10, new NumberLiteralLimitValueSegment(0, 10, 100L),
- new NumberLiteralLimitValueSegment(0, 10, 100L)));
- PaginationContext paginationContext = new PaginationContextEngine(getDatabaseType("PostgreSQL")).createPaginationContext(
- selectStatement, mock(ProjectionsContext.class), Collections.emptyList(), Collections.emptyList());
- assertTrue(paginationContext.getOffsetSegment().isPresent());
- assertTrue(paginationContext.getRowCountSegment().isPresent());
- }
-
- @Test
- void assertCreatePaginationContextWhenLimitSegmentIsPresentForSQL92() {
+ void assertCreatePaginationContextWhenLimitSegmentIsPresent() {
SQL92SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setLimit(new LimitSegment(0, 10, new NumberLiteralLimitValueSegment(0, 10, 100L),
new NumberLiteralLimitValueSegment(0, 10, 100L)));
@@ -79,17 +54,6 @@ class PaginationContextEngineTest {
assertTrue(paginationContext.getRowCountSegment().isPresent());
}
- @Test
- void assertCreatePaginationContextWhenLimitSegmentIsPresentForSQLServer() {
- SQLServerSelectStatement selectStatement = new SQLServerSelectStatement();
- selectStatement.setLimit(new LimitSegment(0, 10, new NumberLiteralLimitValueSegment(0, 10, 100L),
- new NumberLiteralLimitValueSegment(0, 10, 100L)));
- PaginationContext paginationContext = new PaginationContextEngine(getDatabaseType("SQLServer")).createPaginationContext(
- selectStatement, mock(ProjectionsContext.class), Collections.emptyList(), Collections.emptyList());
- assertTrue(paginationContext.getOffsetSegment().isPresent());
- assertTrue(paginationContext.getRowCountSegment().isPresent());
- }
-
@Test
void assertCreatePaginationContextWhenLimitSegmentAbsentAndTopSegmentPresent() {
SQLServerSelectStatement subquerySelectStatement = new SQLServerSelectStatement();
@@ -118,34 +82,11 @@ class PaginationContextEngineTest {
}
@Test
- void assertCreatePaginationContextWhenResultIsPaginationContextForMySQL() {
- assertCreatePaginationContextWhenResultIsPaginationContext(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreatePaginationContextWhenResultIsPaginationContextForOracle() {
- assertCreatePaginationContextWhenResultIsPaginationContext(new OracleSelectStatement());
- }
-
- @Test
- void assertCreatePaginationContextWhenResultIsPaginationContextForPostgreSQL() {
- assertCreatePaginationContextWhenResultIsPaginationContext(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreatePaginationContextWhenResultIsPaginationContextForSQL92() {
- assertCreatePaginationContextWhenResultIsPaginationContext(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreatePaginationContextWhenResultIsPaginationContextForSQLServer() {
- assertCreatePaginationContextWhenResultIsPaginationContext(new SQLServerSelectStatement());
- }
-
- private void assertCreatePaginationContextWhenResultIsPaginationContext(final SelectStatement selectStatement) {
+ void assertCreatePaginationContextWhenResultIsPaginationContext() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
ProjectionsContext projectionsContext = new ProjectionsContext(0, 0, false, Collections.emptyList());
- assertThat(new PaginationContextEngine(getDatabaseType("MySQL")).createPaginationContext(
+ assertThat(new PaginationContextEngine(getDatabaseType("SQL92")).createPaginationContext(
selectStatement, projectionsContext, Collections.emptyList(), Collections.emptyList()), instanceOf(PaginationContext.class));
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionsContextEngineTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionsContextEngineTest.java
index 145801229a9..1d0c8908171 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionsContextEngineTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionsContextEngineTest.java
@@ -43,10 +43,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
@@ -63,66 +60,20 @@ import static org.mockito.Mockito.mock;
class ProjectionsContextEngineTest {
@Test
- void assertProjectionsContextCreatedProperlyForMySQL() {
- assertProjectionsContextCreatedProperly(new MySQLSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyForOracle() {
- assertProjectionsContextCreatedProperly(new OracleSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyForPostgreSQL() {
- assertProjectionsContextCreatedProperly(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyForSQL92() {
- assertProjectionsContextCreatedProperly(new SQL92SelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyForSQLServer() {
- assertProjectionsContextCreatedProperly(new SQLServerSelectStatement());
- }
-
- private void assertProjectionsContextCreatedProperly(final SelectStatement selectStatement) {
+ void assertProjectionsContextCreatedProperly() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
SelectStatementContext selectStatementContext = createSelectStatementContext(selectStatement);
ProjectionsSegment projectionsSegment = selectStatement.getProjections();
ProjectionsContextEngine projectionsContextEngine = new ProjectionsContextEngine(selectStatementContext.getDatabaseType());
- ProjectionsContext actual =
- projectionsContextEngine.createProjectionsContext(projectionsSegment, new GroupByContext(Collections.emptyList()), new OrderByContext(Collections.emptyList(), false));
+ ProjectionsContext actual = projectionsContextEngine.createProjectionsContext(
+ projectionsSegment, new GroupByContext(Collections.emptyList()), new OrderByContext(Collections.emptyList(), false));
assertNotNull(actual);
}
@Test
- void assertProjectionsContextCreatedProperlyWhenProjectionPresentForMySQL() {
- assertProjectionsContextCreatedProperlyWhenProjectionPresent(new MySQLSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyWhenProjectionPresentForOracle() {
- assertProjectionsContextCreatedProperlyWhenProjectionPresent(new OracleSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyWhenProjectionPresentForPostgreSQL() {
- assertProjectionsContextCreatedProperlyWhenProjectionPresent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyWhenProjectionPresentForSQL92() {
- assertProjectionsContextCreatedProperlyWhenProjectionPresent(new SQL92SelectStatement());
- }
-
- @Test
- void assertProjectionsContextCreatedProperlyWhenProjectionPresentForSQLServer() {
- assertProjectionsContextCreatedProperlyWhenProjectionPresent(new SQLServerSelectStatement());
- }
-
- private void assertProjectionsContextCreatedProperlyWhenProjectionPresent(final SelectStatement selectStatement) {
+ void assertProjectionsContextCreatedProperlyWhenProjectionPresent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
ShorthandProjectionSegment shorthandProjectionSegment = new ShorthandProjectionSegment(0, 10);
@@ -137,31 +88,8 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWhenOrderByContextOrderItemsPresentForMySQL() {
- createProjectionsContextWhenOrderByContextOrderItemsPresent(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenOrderByContextOrderItemsPresentForOracle() {
- createProjectionsContextWhenOrderByContextOrderItemsPresent(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenOrderByContextOrderItemsPresentForPostgreSQL() {
- createProjectionsContextWhenOrderByContextOrderItemsPresent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenOrderByContextOrderItemsPresentForSQL92() {
- createProjectionsContextWhenOrderByContextOrderItemsPresent(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenOrderByContextOrderItemsPresentForSQLServer() {
- createProjectionsContextWhenOrderByContextOrderItemsPresent(new SQLServerSelectStatement());
- }
-
- private void createProjectionsContextWhenOrderByContextOrderItemsPresent(final SelectStatement selectStatement) {
+ void createProjectionsContextWhenOrderByContextOrderItemsPresent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
ShorthandProjectionSegment shorthandProjectionSegment = new ShorthandProjectionSegment(0, 10);
@@ -178,31 +106,8 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForMySQL() {
- assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForOracle() {
- assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForPostgreSQL() {
- assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForSQL92() {
- assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForSQLServer() {
- assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWithoutIndexOrderByItemSegment(final SelectStatement selectStatement) {
+ void assertCreateProjectionsContextWithoutIndexOrderByItemSegment() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
ShorthandProjectionSegment shorthandProjectionSegment = new ShorthandProjectionSegment(0, 10);
@@ -225,31 +130,8 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForMySQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForOracle() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForPostgreSQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForSQL92() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForSQLServer() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(final SelectStatement selectStatement) {
+ void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("name"));
@@ -269,31 +151,8 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForMySQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForOracle() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForPostgreSQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForSQL92() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForSQLServer() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(final SelectStatement selectStatement) {
+ void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projectionsSegment);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("name"));
@@ -313,31 +172,8 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresentForMySQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresentForOracle() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresentForPostgreSQL() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresentForSQL92() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresentForSQLServer() {
- assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent(final SelectStatement selectStatement) {
+ void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
TableNameSegment tableNameSegment = new TableNameSegment(0, 10, new IdentifierValue("name"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
SimpleTableSegment tableSegment = new SimpleTableSegment(tableNameSegment);
@@ -365,36 +201,14 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWithTemporaryTableForMySQL() {
- assertCreateProjectionsContextWithTemporaryTable(new MySQLSelectStatement(), new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithTemporaryTableForOracle() {
- assertCreateProjectionsContextWithTemporaryTable(new OracleSelectStatement(), new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithTemporaryTableForPostgreSQL() {
- assertCreateProjectionsContextWithTemporaryTable(new PostgreSQLSelectStatement(), new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithTemporaryTableForSQL92() {
- assertCreateProjectionsContextWithTemporaryTable(new SQL92SelectStatement(), new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWithTemporaryTableForSQLServer() {
- assertCreateProjectionsContextWithTemporaryTable(new SQLServerSelectStatement(), new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWithTemporaryTable(final SelectStatement selectStatement, final SelectStatement subquerySelectStatement) {
+ void assertCreateProjectionsContextWithTemporaryTable() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
ShorthandProjectionSegment projectionSegment = new ShorthandProjectionSegment(0, 0);
projectionSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("d")));
projectionsSegment.getProjections().add(projectionSegment);
selectStatement.setProjections(projectionsSegment);
+ SelectStatement subquerySelectStatement = new SQL92SelectStatement();
subquerySelectStatement.setProjections(new ProjectionsSegment(0, 0));
SubqueryTableSegment subqueryTableSegment = new SubqueryTableSegment(0, 0, new SubquerySegment(0, 0, subquerySelectStatement, ""));
subqueryTableSegment.setAlias(new AliasSegment(0, 0, new IdentifierValue("d")));
@@ -410,36 +224,14 @@ class ProjectionsContextEngineTest {
}
@Test
- void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCaseForMySQL() {
- assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(new MySQLSelectStatement(), new MySQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCaseForOracle() {
- assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(new OracleSelectStatement(), new OracleSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCaseForPostgreSQL() {
- assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(new PostgreSQLSelectStatement(), new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCaseForSQL92() {
- assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(new SQL92SelectStatement(), new SQL92SelectStatement());
- }
-
- @Test
- void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCaseForSQLServer() {
- assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(new SQLServerSelectStatement(), new SQLServerSelectStatement());
- }
-
- private void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase(final SelectStatement selectStatement, final SelectStatement subquerySelectStatement) {
+ void assertCreateProjectionsContextWhenTableNameOrAliasIgnoreCase() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
ShorthandProjectionSegment projectionSegment = new ShorthandProjectionSegment(0, 0);
projectionSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("table")));
projectionsSegment.getProjections().add(projectionSegment);
selectStatement.setProjections(projectionsSegment);
+ SelectStatement subquerySelectStatement = new SQL92SelectStatement();
subquerySelectStatement.setProjections(new ProjectionsSegment(0, 0));
SubqueryTableSegment subqueryTableSegment = new SubqueryTableSegment(0, 0, new SubquerySegment(0, 0, subquerySelectStatement, ""));
subqueryTableSegment.setAlias(new AliasSegment(0, 0, new IdentifierValue("TABLE")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
index 25a4218422b..c14071be00d 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
@@ -34,18 +34,16 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.Proj
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.LimitSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterDatabaseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLAlterDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCloseStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussFetchStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussMoveStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerInsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -61,7 +59,7 @@ class SQLStatementContextFactoryTest {
@Test
void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfSelectStatement() {
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setLimit(new LimitSegment(0, 10, null, null));
selectStatement.setProjections(projectionsSegment);
SQLStatementContext sqlStatementContext = new SQLBindEngine(mockMetaData(), "foo_db", new HintValueContext()).bind(selectStatement, Collections.emptyList());
@@ -69,26 +67,8 @@ class SQLStatementContextFactoryTest {
}
@Test
- void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfOracleInsertStatement() {
- assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(new OracleInsertStatement());
- }
-
- @Test
- void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfPostgreSQLInsertStatement() {
- assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfSQL92InsertStatement() {
- assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(new SQL92InsertStatement());
- }
-
- @Test
- void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfSQLServerInsertStatement() {
- assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(new SQLServerInsertStatement());
- }
-
- private void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(final InsertStatement insertStatement) {
+ void assertSQLStatementContextCreatedWhenSQLStatementInstance() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl"))));
SQLStatementContext sqlStatementContext = new SQLBindEngine(mockMetaData(), "foo_db", new HintValueContext()).bind(insertStatement, Collections.emptyList());
assertThat(sqlStatementContext, instanceOf(InsertStatementContext.class));
@@ -96,14 +76,14 @@ class SQLStatementContextFactoryTest {
@Test
void assertSQLStatementContextCreatedWhenSQLStatementNotInstanceOfSelectStatementAndInsertStatement() {
- SQLStatementContext sqlStatementContext = new SQLBindEngine(mockMetaData(), "foo_db", new HintValueContext()).bind(new MySQLAlterDatabaseStatement(), Collections.emptyList());
+ SQLStatementContext sqlStatementContext = new SQLBindEngine(mockMetaData(), "foo_db", new HintValueContext()).bind(mock(AlterDatabaseStatement.class), Collections.emptyList());
assertThat(sqlStatementContext, instanceOf(CommonSQLStatementContext.class));
}
@Test
void assertNewInstanceForCursorStatement() {
OpenGaussCursorStatement cursorStatement = mock(OpenGaussCursorStatement.class, RETURNS_DEEP_STUBS);
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class, RETURNS_DEEP_STUBS);
+ SelectStatement selectStatement = mock(SelectStatement.class, RETURNS_DEEP_STUBS);
when(selectStatement.getProjections().isDistinctRow()).thenReturn(false);
when(selectStatement.getProjections().getProjections()).thenReturn(Collections.emptyList());
when(selectStatement.getCommentSegments()).thenReturn(Collections.emptyList());
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/AnalyzeTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/AnalyzeTableStatementContextTest.java
index c1df0eb15ad..5fb9923d4cd 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/AnalyzeTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/AnalyzeTableStatementContextTest.java
@@ -17,46 +17,41 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.AnalyzeTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLAnalyzeTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLAnalyzeTableStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class AnalyzeTableStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLAnalyzeTableStatement());
+ void assertNewInstance() {
+ AnalyzeTableStatement analyzeTableStatement = mockAnalyzeTableStatement();
+ AnalyzeTableStatementContext actual = new AnalyzeTableStatementContext(analyzeTableStatement);
+ assertThat(actual.getSqlStatement(), is(analyzeTableStatement));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_tbl", "bar_tbl")));
}
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLAnalyzeTableStatement());
+ private AnalyzeTableStatement mockAnalyzeTableStatement() {
+ AnalyzeTableStatement result = mock(AnalyzeTableStatement.class);
+ when(result.getTables()).thenReturn(Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl"))));
+ return result;
}
- private void assertNewInstance(final AnalyzeTableStatement analyzeTableStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("tbl_2"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- analyzeTableStatement.getTables().addAll(Arrays.asList(table1, table2));
- AnalyzeTableStatementContext actual = new AnalyzeTableStatementContext(analyzeTableStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
- assertThat(actual.getSqlStatement(), is(analyzeTableStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("tbl_1", "tbl_2")));
+ private TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ExplainStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ExplainStatementContextTest.java
index 76b7dc2f309..7bd7a7e4fd8 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ExplainStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ExplainStatementContextTest.java
@@ -17,17 +17,13 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ExplainStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLExplainStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLExplainStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.Optional;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -36,22 +32,13 @@ import static org.mockito.Mockito.when;
class ExplainStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLExplainStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLExplainStatement.class));
- }
-
- private void assertNewInstance(final ExplainStatement explainStatement) {
- SQLStatement statement = mock(SQLStatement.class);
- when(explainStatement.getSqlStatement()).thenReturn(Optional.of(statement));
+ void assertNewInstance() {
+ ExplainStatement explainStatement = mock(ExplainStatement.class);
+ SQLStatement sqlStatement = mock(SQLStatement.class);
+ when(explainStatement.getSqlStatement()).thenReturn(Optional.of(sqlStatement));
ExplainStatementContext actual = new ExplainStatementContext(explainStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(explainStatement));
- assertThat(actual.getSqlStatement().getSqlStatement().orElse(null), is(statement));
+ assertThat(actual.getSqlStatement().getSqlStatement().orElse(null), is(sqlStatement));
assertThat(actual.getTablesContext().getSimpleTables(), is(Collections.emptyList()));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/OptimizeTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/OptimizeTableStatementContextTest.java
index 3e6576d9b27..6f6af6a8afb 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/OptimizeTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/OptimizeTableStatementContextTest.java
@@ -17,33 +17,36 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLOptimizeTableStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class OptimizeTableStatementContextTest {
@Test
void assertNewInstance() {
- MySQLOptimizeTableStatement sqlStatement = new MySQLOptimizeTableStatement();
- TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- sqlStatement.getTables().add(new SimpleTableSegment(tableNameSegment));
+ OptimizeTableStatement sqlStatement = mock(OptimizeTableStatement.class);
+ when(sqlStatement.getTables()).thenReturn(Collections.singleton(new SimpleTableSegment(createTableNameSegment())));
OptimizeTableStatementContext actual = new OptimizeTableStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Collections.singletonList("tbl_1")));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("foo_tbl")));
+ }
+
+ private TableNameSegment createTableNameSegment() {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowColumnsStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowColumnsStatementContextTest.java
index 5fb7bc6768e..f89fa49565b 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowColumnsStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowColumnsStatementContextTest.java
@@ -17,35 +17,35 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowColumnsStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowColumnsStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
+import java.util.Optional;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class ShowColumnsStatementContextTest {
@Test
void assertNewInstance() {
- MySQLShowColumnsStatement sqlStatement = new MySQLShowColumnsStatement();
+ ShowColumnsStatement sqlStatement = mock(ShowColumnsStatement.class);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- sqlStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(sqlStatement.getTable()).thenReturn(new SimpleTableSegment(tableNameSegment));
FromDatabaseSegment fromDatabase = new FromDatabaseSegment(0, 0, new DatabaseSegment(0, 0, new IdentifierValue("foo_db")));
- sqlStatement.setFromDatabase(fromDatabase);
+ when(sqlStatement.getFromDatabase()).thenReturn(Optional.of(fromDatabase));
ShowColumnsStatementContext actual = new ShowColumnsStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
is(Collections.singletonList("foo_tbl")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowCreateTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowCreateTableStatementContextTest.java
index 9eb20175d89..02cc2f8b02f 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowCreateTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowCreateTableStatementContextTest.java
@@ -17,31 +17,30 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowCreateTableStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class ShowCreateTableStatementContextTest {
@Test
void assertNewInstance() {
- MySQLShowCreateTableStatement sqlStatement = new MySQLShowCreateTableStatement();
+ ShowCreateTableStatement sqlStatement = mock(ShowCreateTableStatement.class);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- sqlStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(sqlStatement.getTable()).thenReturn(new SimpleTableSegment(tableNameSegment));
ShowCreateTableStatementContext actual = new ShowCreateTableStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
is(Collections.singletonList("foo_tbl")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowIndexStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowIndexStatementContextTest.java
index 0893b896fde..2a88ac9aa1a 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowIndexStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dal/ShowIndexStatementContextTest.java
@@ -17,33 +17,32 @@
package org.apache.shardingsphere.infra.binder.context.statement.dal;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowIndexStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class ShowIndexStatementContextTest {
@Test
void assertNewInstance() {
- MySQLShowIndexStatement sqlStatement = new MySQLShowIndexStatement();
+ ShowIndexStatement sqlStatement = mock(ShowIndexStatement.class);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- sqlStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(sqlStatement.getTable()).thenReturn(new SimpleTableSegment(tableNameSegment));
ShowIndexStatementContext actual = new ShowIndexStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Collections.singletonList("foo_tbl")));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("foo_tbl")));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/DenyUserStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/DenyUserStatementContextTest.java
index bbd448dc87f..d338db5f9ce 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/DenyUserStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/DenyUserStatementContextTest.java
@@ -17,32 +17,31 @@
package org.apache.shardingsphere.infra.binder.context.statement.dcl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.DenyUserStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.SQLServerDenyUserStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class DenyUserStatementContextTest {
@Test
void assertNewInstance() {
- SQLServerDenyUserStatement sqlStatement = new SQLServerDenyUserStatement();
+ DenyUserStatement sqlStatement = mock(DenyUserStatement.class);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
SimpleTableSegment table = new SimpleTableSegment(tableNameSegment);
- sqlStatement.setTable(table);
+ when(sqlStatement.getTable()).thenReturn(table);
DenyUserStatementContext actual = new DenyUserStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
is(Collections.singletonList("foo_tbl")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/GrantStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/GrantStatementContextTest.java
index 5d52f83f749..d389b16aef1 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/GrantStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/GrantStatementContextTest.java
@@ -17,65 +17,35 @@
package org.apache.shardingsphere.infra.binder.context.statement.dcl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.GrantStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLGrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dcl.OracleGrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dcl.PostgreSQLGrantStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dcl.SQL92GrantStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.SQLServerGrantStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
class GrantStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLGrantStatement());
+ void assertNewInstance() {
+ GrantStatement sqlStatement = new SQL92GrantStatement();
+ sqlStatement.getTables().addAll(Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl"))));
+ GrantStatementContext actual = new GrantStatementContext(sqlStatement);
+ assertThat(actual.getSqlStatement(), is(sqlStatement));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_tbl", "bar_tbl")));
}
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLGrantStatement());
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(new OracleGrantStatement());
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(new SQLServerGrantStatement());
- }
-
- @Test
- void assertSQL92NewInstance() {
- assertNewInstance(new SQL92GrantStatement());
- }
-
- private void assertNewInstance(final GrantStatement grantStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- grantStatement.getTables().addAll(Arrays.asList(table1, table2));
- GrantStatementContext actual = new GrantStatementContext(grantStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
- assertThat(actual.getSqlStatement(), is(grantStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Arrays.asList("foo_tbl", "bar_tbl")));
+ private TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/RevokeStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/RevokeStatementContextTest.java
index b8a18d75a37..f0d1e9c79f8 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/RevokeStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dcl/RevokeStatementContextTest.java
@@ -17,65 +17,35 @@
package org.apache.shardingsphere.infra.binder.context.statement.dcl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.RevokeStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dcl.MySQLRevokeStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dcl.OracleRevokeStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dcl.PostgreSQLRevokeStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dcl.SQL92RevokeStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.SQLServerRevokeStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
class RevokeStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLRevokeStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLRevokeStatement());
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(new OracleRevokeStatement());
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(new SQLServerRevokeStatement());
- }
-
- @Test
- void assertSQL92NewInstance() {
- assertNewInstance(new SQL92RevokeStatement());
- }
-
- private void assertNewInstance(final RevokeStatement revokeStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- revokeStatement.getTables().addAll(Arrays.asList(table1, table2));
+ void assertNewInstance() {
+ RevokeStatement revokeStatement = new SQL92RevokeStatement();
+ revokeStatement.getTables().addAll(Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl"))));
RevokeStatementContext actual = new RevokeStatementContext(revokeStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(revokeStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Arrays.asList("foo_tbl", "bar_tbl")));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_tbl", "bar_tbl")));
+ }
+
+ private TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterIndexStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterIndexStatementContextTest.java
index dddcf50d788..1dcc0891fd0 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterIndexStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterIndexStatementContextTest.java
@@ -17,21 +17,16 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleAlterIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerAlterIndexStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.Optional;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -40,25 +35,11 @@ import static org.mockito.Mockito.when;
class AlterIndexStatementContextTest {
@Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLAlterIndexStatement.class));
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(mock(OracleAlterIndexStatement.class));
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(mock(SQLServerAlterIndexStatement.class));
- }
-
- private void assertNewInstance(final AlterIndexStatement alterIndexStatement) {
+ void assertNewInstance() {
+ AlterIndexStatement alterIndexStatement = mock(AlterIndexStatement.class);
IndexSegment indexSegment = new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("index_1")));
when(alterIndexStatement.getIndex()).thenReturn(Optional.of(indexSegment));
AlterIndexStatementContext actual = new AlterIndexStatementContext(alterIndexStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(alterIndexStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.emptyList()));
assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("index_1")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterTableStatementContextTest.java
index 945ef575558..cc4a8afbee9 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterTableStatementContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.ColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.alter.AddColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.alter.ModifyColumnDefinitionSegment;
@@ -34,11 +33,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLAlterTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleAlterTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterTableStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92AlterTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerAlterTableStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -47,7 +42,6 @@ import java.util.Collections;
import java.util.Optional;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -56,39 +50,11 @@ import static org.mockito.Mockito.when;
class AlterTableStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLAlterTableStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLAlterTableStatement());
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(new OracleAlterTableStatement());
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(new SQLServerAlterTableStatement());
- }
-
- @Test
- void assertSQL92NewInstance() {
- assertNewInstance(new SQL92AlterTableStatement());
- }
-
- private void assertNewInstance(final AlterTableStatement alterTableStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("rename_tbl_1"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment renameTable = new SimpleTableSegment(tableNameSegment2);
+ void assertNewInstance() {
+ AlterTableStatement alterTableStatement = new SQL92AlterTableStatement();
+ SimpleTableSegment table = new SimpleTableSegment(createTableNameSegment("foo_tbl"));
alterTableStatement.setTable(table);
- alterTableStatement.setRenameTable(renameTable);
+ alterTableStatement.setRenameTable(new SimpleTableSegment(createTableNameSegment("rename_foo_tbl")));
Collection<SimpleTableSegment> referencedTables = Collections.singletonList(table);
ColumnDefinitionSegment columnDefinition = mock(ColumnDefinitionSegment.class);
when(columnDefinition.getReferencedTables()).thenReturn(referencedTables);
@@ -116,12 +82,17 @@ class AlterTableStatementContextTest {
when(dropIndexDefinitionSegment.getIndexSegment()).thenReturn(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("drop_index"))));
alterTableStatement.getDropIndexDefinitions().add(dropIndexDefinitionSegment);
AlterTableStatementContext actual = new AlterTableStatementContext(alterTableStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(alterTableStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Arrays.asList("tbl_1", "rename_tbl_1", "tbl_1", "tbl_1", "tbl_1")));
+ is(Arrays.asList("foo_tbl", "rename_foo_tbl", "foo_tbl", "foo_tbl", "foo_tbl")));
assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("index", "drop_index")));
assertThat(actual.getConstraints().stream().map(each -> each.getIdentifier().getValue()).collect(Collectors.toList()),
is(Arrays.asList("constraint", "constraint", "constraint")));
}
+
+ private TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
+ }
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContextTest.java
index c47841bbe5e..12a0324c6da 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContextTest.java
@@ -17,27 +17,21 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute;
-import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLAlterViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterViewStatement;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Optional;
+import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -46,44 +40,25 @@ import static org.mockito.Mockito.when;
class AlterViewStatementContextTest {
- private SimpleTableSegment view;
-
- @BeforeEach
- void setUp() {
- TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("view"));
- tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- view = new SimpleTableSegment(tableNameSegment);
- }
-
- @Test
- void assertMySQLNewInstance() {
- SelectStatement select = mock(MySQLSelectStatement.class);
- when(select.getFrom()).thenReturn(Optional.of(view));
- when(select.getProjections()).thenReturn(new ProjectionsSegment(0, 0));
- MySQLAlterViewStatement alterViewStatement = new MySQLAlterViewStatement();
- alterViewStatement.setView(view);
- alterViewStatement.setSelect(select);
- assertNewInstance(alterViewStatement);
- }
-
@Test
- void assertPostgreSQLNewInstance() {
- PostgreSQLAlterViewStatement alterViewStatement = new PostgreSQLAlterViewStatement();
- alterViewStatement.setView(view);
- TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("view"));
- tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- alterViewStatement.setRenameView(new SimpleTableSegment(tableNameSegment));
- assertNewInstance(alterViewStatement);
- }
-
- private void assertNewInstance(final AlterViewStatement alterViewStatement) {
+ void assertNewInstance() {
+ AlterViewStatement alterViewStatement = mock(AlterViewStatement.class);
+ when(alterViewStatement.getView()).thenReturn(new SimpleTableSegment(createTableNameSegment("foo_view")));
+ when(alterViewStatement.getRenameView()).thenReturn(Optional.of(new SimpleTableSegment(createTableNameSegment("renamed_foo_view"))));
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().getAttributes(TableMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
when(metaData.getDatabase("foo_db")).thenReturn(database);
AlterViewStatementContext actual = new AlterViewStatementContext(metaData, Collections.emptyList(), alterViewStatement, "foo_db");
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(alterViewStatement));
assertThat(actual.getTablesContext().getSimpleTables().size(), is(2));
+ assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
+ is(Arrays.asList("foo_view", "renamed_foo_view")));
+ }
+
+ private TableNameSegment createTableNameSegment(final String viewName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(viewName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateFunctionStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateFunctionStatementContextTest.java
index 59460281348..8fa2f3a0717 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateFunctionStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateFunctionStatementContextTest.java
@@ -17,14 +17,9 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateFunctionStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateFunctionStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateFunctionStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateFunctionStatement;
import org.junit.jupiter.api.Test;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -33,22 +28,8 @@ class CreateFunctionStatementContextTest {
@Test
void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLCreateFunctionStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLCreateFunctionStatement.class));
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(mock(SQLServerCreateFunctionStatement.class));
- }
-
- private void assertNewInstance(final CreateFunctionStatement createDatabaseStatement) {
- CreateFunctionStatementContext actual = new CreateFunctionStatementContext(createDatabaseStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
- assertThat(actual.getSqlStatement(), is(createDatabaseStatement));
+ CreateFunctionStatement sqlStatement = mock(CreateFunctionStatement.class);
+ CreateFunctionStatementContext actual = new CreateFunctionStatementContext(sqlStatement);
+ assertThat(actual.getSqlStatement(), is(sqlStatement));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateIndexStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateIndexStatementContextTest.java
index e162431b566..742a1bfd6ea 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateIndexStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateIndexStatementContextTest.java
@@ -17,21 +17,15 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateIndexStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -41,28 +35,9 @@ import static org.mockito.Mockito.when;
class CreateIndexStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLCreateIndexStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLCreateIndexStatement.class));
- }
-
- @Test
- void assertOracleSQLNewInstance() {
- assertNewInstance(mock(OracleCreateIndexStatement.class));
- }
-
- @Test
- void assertSQLServerSQLNewInstance() {
- assertNewInstance(mock(SQLServerCreateIndexStatement.class));
- }
-
- private void assertNewInstance(final CreateIndexStatement createIndexStatement) {
+ void assertNewInstance() {
+ CreateIndexStatement createIndexStatement = mock(CreateIndexStatement.class);
CreateIndexStatementContext actual = new CreateIndexStatementContext(createIndexStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(createIndexStatement));
assertTrue(actual.isGeneratedIndex());
assertThat(actual.getTablesContext().getSimpleTables(), is(Collections.emptyList()));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateProcedureStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateProcedureStatementContextTest.java
index 15af5fd7d38..081c430da0f 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateProcedureStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateProcedureStatementContextTest.java
@@ -17,13 +17,9 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateProcedureStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateProcedureStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateProcedureStatement;
import org.junit.jupiter.api.Test;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -31,18 +27,9 @@ import static org.mockito.Mockito.mock;
class CreateProcedureStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLCreateProcedureStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLCreateProcedureStatement.class));
- }
-
- private void assertNewInstance(final CreateProcedureStatement createProcedureStatement) {
- CreateProcedureStatementContext actual = new CreateProcedureStatementContext(createProcedureStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
- assertThat(actual.getSqlStatement(), is(createProcedureStatement));
+ void assertNewInstance() {
+ CreateProcedureStatement sqlStatement = mock(CreateProcedureStatement.class);
+ CreateProcedureStatementContext actual = new CreateProcedureStatementContext(sqlStatement);
+ assertThat(actual.getSqlStatement(), is(sqlStatement));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateTableStatementContextTest.java
index 9f256f9c933..d2709a8db7e 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateTableStatementContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.ConstraintAvailable;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.ColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.constraint.ConstraintDefinitionSegment;
@@ -28,11 +27,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateTableStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -48,46 +43,22 @@ import static org.mockito.Mockito.when;
class CreateTableStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLCreateTableStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLCreateTableStatement.class));
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(mock(OracleCreateTableStatement.class));
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(mock(SQLServerCreateTableStatement.class));
- }
-
- @Test
- void assertSQL92NewInstance() {
- assertNewInstance(mock(SQL92CreateTableStatement.class));
- }
-
- private void assertNewInstance(final CreateTableStatement createTableStatement) {
- CreateTableStatementContext actual = new CreateTableStatementContext(createTableStatement);
- SimpleTableSegment table = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl_1")));
- when(createTableStatement.getTable()).thenReturn(table);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
+ void assertNewInstance() {
+ CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
+ CreateTableStatementContext actual = new CreateTableStatementContext(sqlStatement);
+ SimpleTableSegment table = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl")));
+ sqlStatement.setTable(table);
assertThat(actual, instanceOf(ConstraintAvailable.class));
ColumnDefinitionSegment columnDefinition = mock(ColumnDefinitionSegment.class);
when(columnDefinition.getReferencedTables()).thenReturn(Collections.singletonList(table));
- when(createTableStatement.getColumnDefinitions()).thenReturn(Collections.singletonList(columnDefinition));
+ sqlStatement.getColumnDefinitions().add(columnDefinition);
ConstraintDefinitionSegment constraintDefinition = mock(ConstraintDefinitionSegment.class);
- when(constraintDefinition.getConstraintName()).thenReturn(Optional.of(new ConstraintSegment(0, 0, new IdentifierValue("fk_1"))));
+ when(constraintDefinition.getConstraintName()).thenReturn(Optional.of(new ConstraintSegment(0, 0, new IdentifierValue("foo_fk"))));
when(constraintDefinition.getReferencedTable()).thenReturn(Optional.of(table));
- when(createTableStatement.getConstraintDefinitions()).thenReturn(Collections.singletonList(constraintDefinition));
- assertThat(actual.getSqlStatement(), is(createTableStatement));
- when(constraintDefinition.getIndexName()).thenReturn(Optional.of(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("index_1")))));
- assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("index_1")));
- assertThat(actual.getConstraints().stream().map(each -> each.getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("fk_1")));
+ sqlStatement.getConstraintDefinitions().add(constraintDefinition);
+ assertThat(actual.getSqlStatement(), is(sqlStatement));
+ when(constraintDefinition.getIndexName()).thenReturn(Optional.of(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_idx")))));
+ assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("foo_idx")));
+ assertThat(actual.getConstraints().stream().map(each -> each.getIdentifier().getValue()).collect(Collectors.toList()), is(Collections.singletonList("foo_fk")));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContextTest.java
index 5741e889c84..a9445df4635 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute;
@@ -28,13 +27,10 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateViewStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -44,29 +40,20 @@ import static org.mockito.Mockito.when;
class CreateViewStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLCreateViewStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLCreateViewStatement());
- }
-
- private void assertNewInstance(final CreateViewStatement createViewStatement) {
+ void assertNewInstance() {
+ CreateViewStatement createViewStatement = mock(CreateViewStatement.class);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("view"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
SimpleTableSegment view = new SimpleTableSegment(tableNameSegment);
- createViewStatement.setView(view);
+ when(createViewStatement.getView()).thenReturn(view);
SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getProjections()).thenReturn(new ProjectionsSegment(0, 0));
- createViewStatement.setSelect(selectStatement);
+ when(createViewStatement.getSelect()).thenReturn(selectStatement);
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getRuleMetaData().getAttributes(TableMapperRuleAttribute.class)).thenReturn(Collections.emptyList());
when(metaData.getDatabase("foo_db")).thenReturn(database);
CreateViewStatementContext actual = new CreateViewStatementContext(metaData, Collections.emptyList(), createViewStatement, "foo_db");
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(createViewStatement));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropIndexStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropIndexStatementContextTest.java
index 30f88aa9eae..949c8c69841 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropIndexStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropIndexStatementContextTest.java
@@ -17,24 +17,17 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleDropIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropIndexStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerDropIndexStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.LinkedList;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -43,36 +36,15 @@ import static org.mockito.Mockito.when;
class DropIndexStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLDropIndexStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLDropIndexStatement.class));
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(mock(OracleDropIndexStatement.class));
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(mock(SQLServerDropIndexStatement.class));
- }
-
- private void assertNewInstance(final DropIndexStatement dropIndexStatement) {
- Collection<IndexSegment> indexes = new LinkedList<>();
- IndexSegment index1 = new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("idx_1")));
- IndexSegment index2 = new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("idx_2")));
- indexes.add(index1);
- indexes.add(index2);
+ void assertNewInstance() {
+ DropIndexStatement dropIndexStatement = mock(DropIndexStatement.class);
+ Collection<IndexSegment> indexes = Arrays.asList(
+ new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("foo_idx"))),
+ new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("bar_idx"))));
when(dropIndexStatement.getIndexes()).thenReturn(indexes);
DropIndexStatementContext actual = new DropIndexStatementContext(dropIndexStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(dropIndexStatement));
assertThat(actual.getTablesContext().getSimpleTables(), is(Collections.emptyList()));
- assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("idx_1", "idx_2")));
+ assertThat(actual.getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_idx", "bar_idx")));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropTableStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropTableStatementContextTest.java
index 54104522fae..952af1c6071 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropTableStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropTableStatementContextTest.java
@@ -17,59 +17,24 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleDropTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92DropTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerDropTableStatement;
import org.junit.jupiter.api.Test;
-import java.util.Arrays;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
class DropTableStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(mock(MySQLDropTableStatement.class));
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(mock(PostgreSQLDropTableStatement.class));
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(mock(OracleDropTableStatement.class));
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(mock(SQLServerDropTableStatement.class));
- }
-
- @Test
- void assertSQL92NewInstance() {
- assertNewInstance(mock(SQL92DropTableStatement.class));
- }
-
- private void assertNewInstance(final DropTableStatement dropTableStatement) {
+ void assertNewInstance() {
+ DropTableStatement dropTableStatement = new SQL92DropTableStatement();
DropTableStatementContext actual = new DropTableStatementContext(dropTableStatement);
- SimpleTableSegment table1 = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl_1")));
- SimpleTableSegment table2 = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl_2")));
- when(dropTableStatement.getTables()).thenReturn(Arrays.asList(table1, table2));
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
+ dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
+ dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("bar_tbl"))));
assertThat(actual.getSqlStatement(), is(dropTableStatement));
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContextTest.java
index cdc1720e1be..5e3e5fdfa59 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContextTest.java
@@ -17,44 +17,33 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropViewStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class DropViewStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLDropViewStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLDropViewStatement());
- }
-
- private void assertNewInstance(final DropViewStatement dropViewStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("tbl_2"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- dropViewStatement.getViews().addAll(Arrays.asList(table1, table2));
+ void assertNewInstance() {
+ DropViewStatement dropViewStatement = mock(DropViewStatement.class);
+ when(dropViewStatement.getViews()).thenReturn(Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl"))));
DropViewStatementContext actual = new DropViewStatementContext(dropViewStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(dropViewStatement));
}
+
+ private static TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
+ }
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/PrepareStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/PrepareStatementContextTest.java
index 4b32d861ac8..8aaf899f2a6 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/PrepareStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/PrepareStatementContextTest.java
@@ -17,84 +17,79 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.SetAssignmentSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.PrepareStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLPrepareStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLUpdateStatement;
-import org.junit.jupiter.api.BeforeEach;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Optional;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class PrepareStatementContextTest {
- private ColumnSegment column;
-
- private SimpleTableSegment table;
-
- @BeforeEach
- void setUp() {
- TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- table = new SimpleTableSegment(tableNameSegment);
- column = new ColumnSegment(0, 0, new IdentifierValue("col_1"));
- }
-
@Test
void assertNewInstance() {
- PostgreSQLPrepareStatement sqlStatement = new PostgreSQLPrepareStatement();
- sqlStatement.setSelect(getSelect());
- sqlStatement.setInsert(getInsert());
- sqlStatement.setUpdate(getUpdate());
- sqlStatement.setDelete(getDelete());
+ PrepareStatement sqlStatement = mock(PrepareStatement.class);
+ SimpleTableSegment table = new SimpleTableSegment(createTableNameSegment());
+ when(sqlStatement.getSelect()).thenReturn(Optional.of(getSelect(table)));
+ when(sqlStatement.getInsert()).thenReturn(Optional.of(getInsert(table)));
+ when(sqlStatement.getUpdate()).thenReturn(Optional.of(getUpdate(table)));
+ when(sqlStatement.getDelete()).thenReturn(Optional.of(getDelete(table)));
PrepareStatementContext actual = new PrepareStatementContext(sqlStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(sqlStatement));
assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
- is(Arrays.asList("tbl_1", "tbl_1", "tbl_1", "tbl_1")));
+ is(Arrays.asList("foo_tbl", "foo_tbl", "foo_tbl", "foo_tbl")));
+ }
+
+ private static TableNameSegment createTableNameSegment() {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
- private SelectStatement getSelect() {
- SelectStatement result = new PostgreSQLSelectStatement();
+ private SelectStatement getSelect(final SimpleTableSegment table) {
+ SelectStatement result = new SQL92SelectStatement();
result.setFrom(table);
return result;
}
- private InsertStatement getInsert() {
- InsertStatement result = new PostgreSQLInsertStatement();
+ private InsertStatement getInsert(final SimpleTableSegment table) {
+ InsertStatement result = new SQL92InsertStatement();
result.setTable(table);
return result;
}
- private UpdateStatement getUpdate() {
- UpdateStatement result = new PostgreSQLUpdateStatement();
+ private UpdateStatement getUpdate(final SimpleTableSegment table) {
+ UpdateStatement result = new SQL92UpdateStatement();
result.setTable(table);
+ ColumnSegment column = new ColumnSegment(0, 0, new IdentifierValue("foo_col"));
SetAssignmentSegment setAssignmentSegment = new SetAssignmentSegment(0, 0, Collections.singletonList(new ColumnAssignmentSegment(0, 0, Collections.singletonList(column), column)));
result.setSetAssignment(setAssignmentSegment);
return result;
}
- private DeleteStatement getDelete() {
- DeleteStatement result = new PostgreSQLDeleteStatement();
+ private DeleteStatement getDelete(final SimpleTableSegment table) {
+ DeleteStatement result = new SQL92DeleteStatement();
result.setTable(table);
return result;
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/TruncateStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/TruncateStatementContextTest.java
index 8574372855e..ae8e490af12 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/TruncateStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/TruncateStatementContextTest.java
@@ -17,58 +17,36 @@
package org.apache.shardingsphere.infra.binder.context.statement.ddl;
-import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.TruncateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLTruncateStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.ddl.OracleTruncateStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLTruncateStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerTruncateStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.stream.Collectors;
-import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
class TruncateStatementContextTest {
@Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLTruncateStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLTruncateStatement());
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(new OracleTruncateStatement());
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(new SQLServerTruncateStatement());
- }
-
- private void assertNewInstance(final TruncateStatement truncateStatement) {
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("tbl_2"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- truncateStatement.getTables().addAll(Arrays.asList(table1, table2));
+ void assertNewInstance() {
+ TruncateStatement truncateStatement = mock(TruncateStatement.class);
+ when(truncateStatement.getTables()).thenReturn(Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl"))));
TruncateStatementContext actual = new TruncateStatementContext(truncateStatement);
- assertThat(actual, instanceOf(CommonSQLStatementContext.class));
assertThat(actual.getSqlStatement(), is(truncateStatement));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("tbl_1", "tbl_2")));
+ assertThat(actual.getTablesContext().getSimpleTables().stream()
+ .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_tbl", "bar_tbl")));
+ }
+
+ private TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContextTest.java
index 1b828ebf4e3..d31497d0cce 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContextTest.java
@@ -25,15 +25,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleDeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLDeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerDeleteStatement;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Arrays;
import java.util.Collections;
@@ -45,53 +38,28 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-@ExtendWith(MockitoExtension.class)
class DeleteStatementContextTest {
- @Mock
- private WhereSegment whereSegment;
-
- @Test
- void assertMySQLNewInstance() {
- assertNewInstance(new MySQLDeleteStatement());
- }
-
- @Test
- void assertOracleNewInstance() {
- assertNewInstance(new OracleDeleteStatement());
- }
-
- @Test
- void assertPostgreSQLNewInstance() {
- assertNewInstance(new PostgreSQLDeleteStatement());
- }
-
@Test
- void assertSQL92NewInstance() {
- assertNewInstance(new SQL92DeleteStatement());
- }
-
- @Test
- void assertSQLServerNewInstance() {
- assertNewInstance(new SQLServerDeleteStatement());
- }
-
- private void assertNewInstance(final DeleteStatement deleteStatement) {
+ void assertNewInstance() {
+ DeleteStatement deleteStatement = new SQL92DeleteStatement();
+ WhereSegment whereSegment = mock(WhereSegment.class);
when(whereSegment.getExpr()).thenReturn(mock(ExpressionSegment.class));
- TableNameSegment tableNameSegment1 = new TableNameSegment(0, 0, new IdentifierValue("tbl_1"));
- tableNameSegment1.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- TableNameSegment tableNameSegment2 = new TableNameSegment(0, 0, new IdentifierValue("tbl_2"));
- tableNameSegment2.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- SimpleTableSegment table1 = new SimpleTableSegment(tableNameSegment1);
- SimpleTableSegment table2 = new SimpleTableSegment(tableNameSegment2);
- JoinTableSegment tableSegment = new JoinTableSegment();
- tableSegment.setLeft(table1);
- tableSegment.setRight(table2);
deleteStatement.setWhere(whereSegment);
+ JoinTableSegment tableSegment = new JoinTableSegment();
+ tableSegment.setLeft(new SimpleTableSegment(createTableNameSegment("foo_tbl")));
+ tableSegment.setRight(new SimpleTableSegment(createTableNameSegment("bar_tbl")));
deleteStatement.setTable(tableSegment);
DeleteStatementContext actual = new DeleteStatementContext(deleteStatement);
- assertThat(actual.getTablesContext().getTableNames(), is(new HashSet<>(Arrays.asList("tbl_1", "tbl_2"))));
+ assertThat(actual.getTablesContext().getTableNames(), is(new HashSet<>(Arrays.asList("foo_tbl", "bar_tbl"))));
assertThat(actual.getWhereSegments(), is(Collections.singletonList(whereSegment)));
- assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("tbl_1", "tbl_2")));
+ assertThat(actual.getTablesContext().getSimpleTables().stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()),
+ is(Arrays.asList("foo_tbl", "bar_tbl")));
+ }
+
+ private static TableNameSegment createTableNameSegment(final String tableName) {
+ TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName));
+ result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
+ return result;
}
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
index 17da31d5c80..31eaabe7dd9 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
@@ -17,9 +17,11 @@
package org.apache.shardingsphere.infra.binder.context.statement.dml;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.statement.core.enums.ParameterMarkerType;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.InsertValuesSegment;
@@ -38,15 +40,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.OpenGaussStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.SQLServerStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerInsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@@ -67,40 +62,20 @@ import static org.mockito.Mockito.when;
class InsertStatementContextTest {
- @Test
- void assertMySQLInsertStatementContextWithColumnNames() {
- assertInsertStatementContextWithColumnNames(new MySQLInsertStatement());
- }
-
- @Test
- void assertOracleInsertStatementContextWithColumnNames() {
- assertInsertStatementContextWithColumnNames(new OracleInsertStatement());
- }
-
- @Test
- void assertPostgreSQLInsertStatementContextWithColumnNames() {
- assertInsertStatementContextWithColumnNames(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertSQL92InsertStatementContextWithColumnNames() {
- assertInsertStatementContextWithColumnNames(new SQL92InsertStatement());
- }
+ private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
@Test
- void assertSQLServerInsertStatementContextWithColumnNames() {
- assertInsertStatementContextWithColumnNames(new SQLServerInsertStatement());
- }
-
- private void assertInsertStatementContextWithColumnNames(final InsertStatement insertStatement) {
+ void assertInsertStatementContextWithColumnNames() {
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
SimpleTableSegment tableSegment = new SimpleTableSegment(tableNameSegment);
tableSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("foo_db".toUpperCase())));
- insertStatement.setTable(tableSegment);
+ when(insertStatement.getTable()).thenReturn(Optional.of(tableSegment));
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Arrays.asList(
new ColumnSegment(0, 0, new IdentifierValue("id")), new ColumnSegment(0, 0, new IdentifierValue("name")), new ColumnSegment(0, 0, new IdentifierValue("status"))));
- insertStatement.setInsertColumns(insertColumnsSegment);
+ when(insertStatement.getInsertColumns()).thenReturn(Optional.of(insertColumnsSegment));
setUpInsertValues(insertStatement);
InsertStatementContext actual = createInsertStatementContext(Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement);
actual.setUpParameters(Arrays.asList(1, "Tom", 2, "Jerry"));
@@ -109,28 +84,19 @@ class InsertStatementContextTest {
private InsertStatementContext createInsertStatementContext(final List<Object> params, final InsertStatement insertStatement) {
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
- when(schema.getName()).thenReturn(getSchemaName(insertStatement));
+ when(schema.getName()).thenReturn("foo_db");
when(schema.getVisibleColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status"));
ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", mock(), mock(), mock(), Collections.singleton(schema));
return new InsertStatementContext(new ShardingSphereMetaData(Collections.singleton(database), mock(), mock(), mock()), params, insertStatement, "foo_db");
}
- private String getSchemaName(final InsertStatement insertStatement) {
- if (insertStatement instanceof PostgreSQLStatement || insertStatement instanceof OpenGaussStatement) {
- return "public";
- }
- if (insertStatement instanceof SQLServerStatement) {
- return "dbo";
- }
- return "foo_db";
- }
-
@Test
void assertInsertStatementContextWithoutColumnNames() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
setUpInsertValues(insertStatement);
InsertStatementContext actual = createInsertStatementContext(Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement);
actual.setUpParameters(Arrays.asList(1, "Tom", 2, "Jerry"));
@@ -139,10 +105,11 @@ class InsertStatementContextTest {
@Test
void assertGetGroupedParametersWithoutOnDuplicateParameter() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
setUpInsertValues(insertStatement);
InsertStatementContext actual = createInsertStatementContext(Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement);
actual.setUpParameters(Arrays.asList(1, "Tom", 2, "Jerry"));
@@ -153,10 +120,11 @@ class InsertStatementContextTest {
@Test
void assertGetGroupedParametersWithOnDuplicateParameters() {
- MySQLInsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
setUpInsertValues(insertStatement);
setUpOnDuplicateValues(insertStatement);
InsertStatementContext actual = createInsertStatementContext(Arrays.asList(1, "Tom", 2, "Jerry", "onDuplicateKeyUpdateColumnValue"), insertStatement);
@@ -168,8 +136,8 @@ class InsertStatementContextTest {
@Test
void assertInsertSelect() {
- InsertStatement insertStatement = new MySQLInsertStatement();
- SelectStatement selectStatement = new MySQLSelectStatement();
+ InsertStatement insertStatement = new SQL92InsertStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.addParameterMarkerSegments(Collections.singleton(new ParameterMarkerExpressionSegment(0, 0, 0, ParameterMarkerType.QUESTION)));
selectStatement.setProjections(new ProjectionsSegment(0, 0));
SubquerySegment insertSelect = new SubquerySegment(0, 0, selectStatement, "");
@@ -185,13 +153,14 @@ class InsertStatementContextTest {
}
private void setUpInsertValues(final InsertStatement insertStatement) {
- insertStatement.getValues().add(new InsertValuesSegment(0, 0, Arrays.asList(
- new ParameterMarkerExpressionSegment(0, 0, 1), new ParameterMarkerExpressionSegment(0, 0, 2), new LiteralExpressionSegment(0, 0, "init"))));
- insertStatement.getValues().add(new InsertValuesSegment(0, 0, Arrays.asList(
- new ParameterMarkerExpressionSegment(0, 0, 3), new ParameterMarkerExpressionSegment(0, 0, 4), new LiteralExpressionSegment(0, 0, "init"))));
+ when(insertStatement.getValues()).thenReturn(Arrays.asList(
+ new InsertValuesSegment(0, 0, Arrays.asList(
+ new ParameterMarkerExpressionSegment(0, 0, 1), new ParameterMarkerExpressionSegment(0, 0, 2), new LiteralExpressionSegment(0, 0, "init"))),
+ new InsertValuesSegment(0, 0, Arrays.asList(
+ new ParameterMarkerExpressionSegment(0, 0, 3), new ParameterMarkerExpressionSegment(0, 0, 4), new LiteralExpressionSegment(0, 0, "init")))));
}
- private void setUpOnDuplicateValues(final MySQLInsertStatement insertStatement) {
+ private void setUpOnDuplicateValues(final InsertStatement insertStatement) {
List<ColumnSegment> parameterMarkerExpressionAssignmentColumns = new LinkedList<>();
parameterMarkerExpressionAssignmentColumns.add(new ColumnSegment(0, 0, new IdentifierValue("on_duplicate_key_update_column_1")));
ColumnAssignmentSegment parameterMarkerExpressionAssignment = new ColumnAssignmentSegment(0, 0, parameterMarkerExpressionAssignmentColumns,
@@ -201,7 +170,7 @@ class InsertStatementContextTest {
ColumnAssignmentSegment literalExpressionAssignment = new ColumnAssignmentSegment(0, 0, literalExpressionAssignmentColumns,
new LiteralExpressionSegment(0, 0, 5));
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = new OnDuplicateKeyColumnsSegment(0, 0, Arrays.asList(parameterMarkerExpressionAssignment, literalExpressionAssignment));
- insertStatement.setOnDuplicateKeyColumns(onDuplicateKeyColumnsSegment);
+ when(insertStatement.getOnDuplicateKeyColumns()).thenReturn(Optional.of(onDuplicateKeyColumnsSegment));
}
private void assertInsertStatementContext(final InsertStatementContext actual) {
@@ -232,110 +201,42 @@ class InsertStatementContextTest {
}
@Test
- void assertUseDefaultColumnsForMySQL() {
- assertContainsInsertColumns(new MySQLInsertStatement());
- }
-
- @Test
- void assertUseDefaultColumnsForOracle() {
- assertContainsInsertColumns(new OracleInsertStatement());
- }
-
- @Test
- void assertUseDefaultColumnsForPostgreSQL() {
- assertContainsInsertColumns(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertUseDefaultColumnsForSQL92() {
- assertContainsInsertColumns(new SQL92InsertStatement());
- }
-
- @Test
- void assertUseDefaultColumnsForSQLServer() {
- assertContainsInsertColumns(new SQLServerInsertStatement());
- }
-
- private void assertNotContainsInsertColumns(final InsertStatement insertStatement) {
+ void assertContainsInsertColumns() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
+ InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
+ insertStatement.setInsertColumns(insertColumnsSegment);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
InsertStatementContext insertStatementContext = createInsertStatementContext(Collections.emptyList(), insertStatement);
- assertFalse(insertStatementContext.containsInsertColumns());
- }
-
- @Test
- void assertNotUseDefaultColumnsWithColumnsForMySQL() {
- assertNotContainsInsertColumns(new MySQLInsertStatement());
- }
-
- @Test
- void assertNotUseDefaultColumnsWithColumnsForOracle() {
- assertNotContainsInsertColumns(new OracleInsertStatement());
- }
-
- @Test
- void assertNotUseDefaultColumnsWithColumnsForPostgreSQL() {
- assertNotContainsInsertColumns(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertNotUseDefaultColumnsWithColumnsForSQL92() {
- assertNotContainsInsertColumns(new SQL92InsertStatement());
+ assertTrue(insertStatementContext.containsInsertColumns());
}
@Test
- void assertNotUseDefaultColumnsWithColumnsForSQLServer() {
- assertNotContainsInsertColumns(new SQLServerInsertStatement());
- }
-
- private void assertContainsInsertColumns(final InsertStatement insertStatement) {
- InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
- insertStatement.setInsertColumns(insertColumnsSegment);
+ void assertNotContainsInsertColumns() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
InsertStatementContext insertStatementContext = createInsertStatementContext(Collections.emptyList(), insertStatement);
- assertTrue(insertStatementContext.containsInsertColumns());
+ assertFalse(insertStatementContext.containsInsertColumns());
}
@Test
void assertContainsInsertColumnsWithSetAssignmentForMySQL() {
- MySQLInsertStatement insertStatement = new MySQLInsertStatement();
- insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.emptyList()));
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
+ when(insertStatement.getSetAssignment()).thenReturn(Optional.of(new SetAssignmentSegment(0, 0, Collections.emptyList())));
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
InsertStatementContext insertStatementContext = createInsertStatementContext(Collections.emptyList(), insertStatement);
assertTrue(insertStatementContext.containsInsertColumns());
}
@Test
- void assertGetValueListCountWithValuesForMySQL() {
- assertGetValueListCountWithValues(new MySQLInsertStatement());
- }
-
- @Test
- void assertGetValueListCountWithValuesForOracle() {
- assertGetValueListCountWithValues(new OracleInsertStatement());
- }
-
- @Test
- void assertGetValueListCountWithValuesForPostgreSQL() {
- assertGetValueListCountWithValues(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertGetValueListCountWithValuesForSQL92() {
- assertGetValueListCountWithValues(new SQL92InsertStatement());
- }
-
- @Test
- void assertGetValueListCountWithValuesForSQLServer() {
- assertGetValueListCountWithValues(new SQLServerInsertStatement());
- }
-
- private void assertGetValueListCountWithValues(final InsertStatement insertStatement) {
+ void assertGetValueListCountWithValues() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new LiteralExpressionSegment(0, 0, 1))));
insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new LiteralExpressionSegment(0, 0, 2))));
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
@@ -346,45 +247,23 @@ class InsertStatementContextTest {
}
@Test
- void assertGetValueListCountWithSetAssignmentForMySQL() {
- MySQLInsertStatement insertStatement = new MySQLInsertStatement();
+ void assertGetValueListCountWithSetAssignment() {
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("col")));
ColumnAssignmentSegment insertStatementAssignment = new ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
- insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.singletonList(insertStatementAssignment)));
+ when(insertStatement.getSetAssignment()).thenReturn(Optional.of(new SetAssignmentSegment(0, 0, Collections.singletonList(insertStatementAssignment))));
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
InsertStatementContext insertStatementContext = createInsertStatementContext(Collections.emptyList(), insertStatement);
assertThat(insertStatementContext.getValueListCount(), is(1));
}
@Test
- void assertGetInsertColumnNamesForInsertColumnsForMySQL() {
- assertGetInsertColumnNamesForInsertColumns(new MySQLInsertStatement());
- }
-
- @Test
- void assertGetInsertColumnNamesForInsertColumnsForOracle() {
- assertGetInsertColumnNamesForInsertColumns(new OracleInsertStatement());
- }
-
- @Test
- void assertGetInsertColumnNamesForInsertColumnsForPostgreSQL() {
- assertGetInsertColumnNamesForInsertColumns(new PostgreSQLInsertStatement());
- }
-
- @Test
- void assertGetInsertColumnNamesForInsertColumnsForSQL92() {
- assertGetInsertColumnNamesForInsertColumns(new SQL92InsertStatement());
- }
-
- @Test
- void assertGetInsertColumnNamesForInsertColumnsForSQLServer() {
- assertGetInsertColumnNamesForInsertColumns(new SQLServerInsertStatement());
- }
-
- private void assertGetInsertColumnNamesForInsertColumns(final InsertStatement insertStatement) {
+ void assertGetInsertColumnNamesForInsertColumns() {
+ InsertStatement insertStatement = new SQL92InsertStatement();
InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
insertStatement.setInsertColumns(insertColumnsSegment);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
@@ -397,15 +276,16 @@ class InsertStatementContextTest {
}
@Test
- void assertGetInsertColumnNamesForSetAssignmentForMySQL() {
- MySQLInsertStatement insertStatement = new MySQLInsertStatement();
+ void assertGetInsertColumnNamesForSetAssignment() {
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getDatabaseType()).thenReturn(databaseType);
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("col")));
ColumnAssignmentSegment insertStatementAssignment = new ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
- insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.singletonList(insertStatementAssignment)));
+ when(insertStatement.getSetAssignment()).thenReturn(Optional.of(new SetAssignmentSegment(0, 0, Collections.singletonList(insertStatementAssignment))));
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue(""));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- insertStatement.setTable(new SimpleTableSegment(tableNameSegment));
+ when(insertStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(tableNameSegment)));
InsertStatementContext insertStatementContext = createInsertStatementContext(Collections.emptyList(), insertStatement);
List<String> columnNames = insertStatementContext.getInsertColumnNames();
assertThat(columnNames.size(), is(1));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContextTest.java
index f90c4af0a02..3366c04d341 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContextTest.java
@@ -56,10 +56,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.oracle.dml.OracleSelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -84,31 +81,8 @@ class SelectStatementContextTest {
private static final String COLUMN_ORDER_BY_WITHOUT_OWNER_ALIAS = "ColumnOrderByWithoutOwnerAlias";
@Test
- void assertSetIndexForItemsByIndexOrderByForMySQL() {
- assertSetIndexForItemsByIndexOrderBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByIndexOrderByForOracle() {
- assertSetIndexForItemsByIndexOrderBy(new OracleSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByIndexOrderByForPostgreSQL() {
- assertSetIndexForItemsByIndexOrderBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByIndexOrderByForSQL92() {
- assertSetIndexForItemsByIndexOrderBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByIndexOrderByForSQLServer() {
- assertSetIndexForItemsByIndexOrderBy(new SQLServerSelectStatement());
- }
-
- private void assertSetIndexForItemsByIndexOrderBy(final SelectStatement selectStatement) {
+ void assertSetIndexForItemsByIndexOrderBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(createOrderByItemSegment(INDEX_ORDER_BY))));
selectStatement.setProjections(createProjectionsSegment());
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("table"));
@@ -131,31 +105,8 @@ class SelectStatementContextTest {
}
@Test
- void assertSetIndexForItemsByColumnOrderByWithOwnerForMySQL() {
- assertSetIndexForItemsByColumnOrderByWithOwner(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithOwnerForOracle() {
- assertSetIndexForItemsByColumnOrderByWithOwner(new OracleSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithOwnerForPostgreSQL() {
- assertSetIndexForItemsByColumnOrderByWithOwner(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithOwnerForSQL92() {
- assertSetIndexForItemsByColumnOrderByWithOwner(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithOwnerForSQLServer() {
- assertSetIndexForItemsByColumnOrderByWithOwner(new SQLServerSelectStatement());
- }
-
- private void assertSetIndexForItemsByColumnOrderByWithOwner(final SelectStatement selectStatement) {
+ void assertSetIndexForItemsByColumnOrderByWithOwner() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(createOrderByItemSegment(COLUMN_ORDER_BY_WITH_OWNER))));
selectStatement.setProjections(createProjectionsSegment());
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("table"));
@@ -171,31 +122,8 @@ class SelectStatementContextTest {
}
@Test
- void assertSetIndexForItemsByColumnOrderByWithAliasForMySQL() {
- assertSetIndexForItemsByColumnOrderByWithAlias(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithAliasForOracle() {
- assertSetIndexForItemsByColumnOrderByWithAlias(new OracleSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithAliasForPostgreSQL() {
- assertSetIndexForItemsByColumnOrderByWithAlias(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithAliasForSQL92() {
- assertSetIndexForItemsByColumnOrderByWithAlias(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithAliasForSQLServer() {
- assertSetIndexForItemsByColumnOrderByWithAlias(new SQLServerSelectStatement());
- }
-
- private void assertSetIndexForItemsByColumnOrderByWithAlias(final SelectStatement selectStatement) {
+ void assertSetIndexForItemsByColumnOrderByWithAlias() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mockDatabase();
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(createOrderByItemSegment(COLUMN_ORDER_BY_WITH_ALIAS))));
selectStatement.setProjections(createProjectionsSegment());
@@ -206,31 +134,8 @@ class SelectStatementContextTest {
}
@Test
- void assertSetIndexForItemsByColumnOrderByWithoutAliasForMySQL() {
- assertSetIndexForItemsByColumnOrderByWithoutAlias(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithoutAliasForOracle() {
- assertSetIndexForItemsByColumnOrderByWithoutAlias(new OracleSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithoutAliasForPostgreSQL() {
- assertSetIndexForItemsByColumnOrderByWithoutAlias(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithoutAliasForSQL92() {
- assertSetIndexForItemsByColumnOrderByWithoutAlias(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetIndexForItemsByColumnOrderByWithoutAliasForSQLServer() {
- assertSetIndexForItemsByColumnOrderByWithoutAlias(new SQLServerSelectStatement());
- }
-
- private void assertSetIndexForItemsByColumnOrderByWithoutAlias(final SelectStatement selectStatement) {
+ void assertSetIndexForItemsByColumnOrderByWithoutAlias() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ShardingSphereDatabase database = mockDatabase();
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(createOrderByItemSegment(COLUMN_ORDER_BY_WITHOUT_OWNER_ALIAS))));
selectStatement.setProjections(createProjectionsSegment());
@@ -241,31 +146,8 @@ class SelectStatementContextTest {
}
@Test
- void assertIsSameGroupByAndOrderByItemsForMySQL() {
- assertIsSameGroupByAndOrderByItems(new MySQLSelectStatement());
- }
-
- @Test
- void assertIsSameGroupByAndOrderByItemsForOracle() {
- assertIsSameGroupByAndOrderByItems(new OracleSelectStatement());
- }
-
- @Test
- void assertIsSameGroupByAndOrderByItemsForPostgreSQL() {
- assertIsSameGroupByAndOrderByItems(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertIsSameGroupByAndOrderByItemsForSQL92() {
- assertIsSameGroupByAndOrderByItems(new SQL92SelectStatement());
- }
-
- @Test
- void assertIsSameGroupByAndOrderByItemsForSQLServer() {
- assertIsSameGroupByAndOrderByItems(new SQLServerSelectStatement());
- }
-
- private void assertIsSameGroupByAndOrderByItems(final SelectStatement selectStatement) {
+ void assertIsSameGroupByAndOrderByItems() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, NullsOrderType.LAST))));
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, NullsOrderType.LAST))));
@@ -280,62 +162,16 @@ class SelectStatementContextTest {
}
@Test
- void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupByForMySQL() {
- assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupByForOracle() {
- assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(new OracleSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupByForPostgreSQL() {
- assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupByForSQL92() {
- assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupByForSQLServer() {
- assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(new SQLServerSelectStatement());
- }
-
- private void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy(final SelectStatement selectStatement) {
+ void assertIsNotSameGroupByAndOrderByItemsWhenEmptyGroupBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
SelectStatementContext selectStatementContext = createSelectStatementContext(selectStatement);
assertFalse(selectStatementContext.isSameGroupByAndOrderByItems());
}
@Test
- void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderByForMySQL() {
- assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(new MySQLSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderByForOracle() {
- assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(new OracleSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderByForPostgreSQL() {
- assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderByForSQL92() {
- assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(new SQL92SelectStatement());
- }
-
- @Test
- void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderByForSQLServer() {
- assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(new SQLServerSelectStatement());
- }
-
- private void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy(final SelectStatement selectStatement) {
+ void assertIsNotSameGroupByAndOrderByItemsWhenDifferentGroupByAndOrderBy() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, NullsOrderType.LAST))));
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, NullsOrderType.LAST))));
@@ -344,31 +180,8 @@ class SelectStatementContextTest {
}
@Test
- void assertSetIndexWhenAggregationProjectionsPresentForMySQL() {
- assertSetIndexWhenAggregationProjectionsPresent(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetIndexWhenAggregationProjectionsPresentForOracle() {
- assertSetIndexWhenAggregationProjectionsPresent(new OracleSelectStatement());
- }
-
- @Test
- void assertSetIndexWhenAggregationProjectionsPresentForPostgreSQL() {
- assertSetIndexWhenAggregationProjectionsPresent(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetIndexWhenAggregationProjectionsPresentForSQL92() {
- assertSetIndexWhenAggregationProjectionsPresent(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetIndexWhenAggregationProjectionsPresentForSQLServer() {
- assertSetIndexWhenAggregationProjectionsPresent(new SQLServerSelectStatement());
- }
-
- private void assertSetIndexWhenAggregationProjectionsPresent(final SelectStatement selectStatement) {
+ void assertSetIndexWhenAggregationProjectionsPresent() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(createOrderByItemSegment(COLUMN_ORDER_BY_WITHOUT_OWNER_ALIAS))));
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
AggregationProjectionSegment aggregationProjectionSegment = new AggregationProjectionSegment(0, 0, AggregationType.MAX, "MAX(id)");
@@ -383,31 +196,8 @@ class SelectStatementContextTest {
}
@Test
- void assertSetWhereForMySQL() {
- assertSetWhere(new MySQLSelectStatement());
- }
-
- @Test
- void assertSetWhereForOracle() {
- assertSetWhere(new OracleSelectStatement());
- }
-
- @Test
- void assertSetWhereForPostgreSQL() {
- assertSetWhere(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertSetWhereForSQL92() {
- assertSetWhere(new SQL92SelectStatement());
- }
-
- @Test
- void assertSetWhereForSQLServer() {
- assertSetWhere(new SQLServerSelectStatement());
- }
-
- private void assertSetWhere(final SelectStatement selectStatement) {
+ void assertSetWhere() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
WhereSegment whereSegment = mock(WhereSegment.class, RETURNS_DEEP_STUBS);
selectStatement.setWhere(whereSegment);
ShardingSphereDatabase database = mockDatabase();
@@ -421,31 +211,8 @@ class SelectStatementContextTest {
}
@Test
- void assertContainsSubqueryForMySQL() {
- assertContainsSubquery(new MySQLSelectStatement(), new MySQLSelectStatement());
- }
-
- @Test
- void assertContainsSubqueryForOracle() {
- assertContainsSubquery(new OracleSelectStatement(), new OracleSelectStatement());
- }
-
- @Test
- void assertContainsSubqueryForPostgreSQL() {
- assertContainsSubquery(new PostgreSQLSelectStatement(), new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertContainsSubqueryForSQL92() {
- assertContainsSubquery(new SQL92SelectStatement(), new SQL92SelectStatement());
- }
-
- @Test
- void assertContainsSubqueryForSQLServer() {
- assertContainsSubquery(new SQLServerSelectStatement(), new SQLServerSelectStatement());
- }
-
- private void assertContainsSubquery(final SelectStatement selectStatement, final SelectStatement subSelectStatement) {
+ void assertContainsSubquery() {
+ SelectStatement subSelectStatement = new SQL92SelectStatement();
WhereSegment whereSegment = new WhereSegment(0, 0, mock(BinaryOperationExpression.class, RETURNS_DEEP_STUBS));
subSelectStatement.setWhere(whereSegment);
ProjectionsSegment subqueryProjections = new ProjectionsSegment(0, 0);
@@ -455,38 +222,15 @@ class SelectStatementContextTest {
SubquerySegment subquerySegment = new SubquerySegment(0, 0, subSelectStatement, "");
SubqueryProjectionSegment subqueryProjectionSegment = new SubqueryProjectionSegment(subquerySegment, "");
projectionsSegment.getProjections().add(subqueryProjectionSegment);
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(projectionsSegment);
ShardingSphereDatabase database = mockDatabase();
- assertTrue(
- new SelectStatementContext(createShardingSphereMetaData(database), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList()).isContainsSubquery());
- }
-
- @Test
- void assertContainsSubqueryWhereEmptyForMySQL() {
- assertContainsSubqueryWhereEmpty(new MySQLSelectStatement(), new MySQLSelectStatement());
- }
-
- @Test
- void assertContainsSubqueryWhereEmptyForOracle() {
- assertContainsSubqueryWhereEmpty(new OracleSelectStatement(), new OracleSelectStatement());
- }
-
- @Test
- void assertContainsSubqueryWhereEmptyForPostgreSQL() {
- assertContainsSubqueryWhereEmpty(new PostgreSQLSelectStatement(), new PostgreSQLSelectStatement());
+ assertTrue(new SelectStatementContext(createShardingSphereMetaData(database), Collections.emptyList(), selectStatement, "foo_db", Collections.emptyList()).isContainsSubquery());
}
@Test
- void assertContainsSubqueryWhereEmptyForSQL92() {
- assertContainsSubqueryWhereEmpty(new SQL92SelectStatement(), new SQL92SelectStatement());
- }
-
- @Test
- void assertContainsSubqueryWhereEmptyForSQLServer() {
- assertContainsSubqueryWhereEmpty(new SQLServerSelectStatement(), new SQLServerSelectStatement());
- }
-
- private void assertContainsSubqueryWhereEmpty(final SelectStatement selectStatement, final SelectStatement subSelectStatement) {
+ void assertContainsSubqueryWhereEmpty() {
+ SelectStatement subSelectStatement = new SQL92SelectStatement();
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue("id"));
LiteralExpressionSegment right = new LiteralExpressionSegment(0, 0, 20);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, "=", null);
@@ -498,6 +242,7 @@ class SelectStatementContextTest {
SubqueryExpressionSegment subqueryExpressionSegment = new SubqueryExpressionSegment(new SubquerySegment(0, 0, subSelectStatement, ""));
SubqueryProjectionSegment projectionSegment = mock(SubqueryProjectionSegment.class);
WhereSegment whereSegment = new WhereSegment(0, 0, subqueryExpressionSegment);
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setWhere(whereSegment);
SubquerySegment subquerySegment = new SubquerySegment(0, 0, subSelectStatement, "");
when(projectionSegment.getSubquery()).thenReturn(subquerySegment);
@@ -510,31 +255,8 @@ class SelectStatementContextTest {
}
@Test
- void assertContainsDollarParameterMarkerForMySQL() {
- assertContainsDollarParameterMarker(new MySQLSelectStatement());
- }
-
- @Test
- void assertContainsDollarParameterMarkerForOracle() {
- assertContainsDollarParameterMarker(new OracleSelectStatement());
- }
-
- @Test
- void assertContainsDollarParameterMarkerForPostgreSQL() {
- assertContainsDollarParameterMarker(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertContainsDollarParameterMarkerForSQL92() {
- assertContainsDollarParameterMarker(new SQL92SelectStatement());
- }
-
- @Test
- void assertContainsDollarParameterMarkerForSQLServer() {
- assertContainsDollarParameterMarker(new SQLServerSelectStatement());
- }
-
- private void assertContainsDollarParameterMarker(final SelectStatement selectStatement) {
+ void assertContainsDollarParameterMarker() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
projectionsSegment.getProjections().add(new ParameterMarkerExpressionSegment(0, 0, 0, ParameterMarkerType.DOLLAR));
selectStatement.setProjections(projectionsSegment);
@@ -551,31 +273,8 @@ class SelectStatementContextTest {
}
@Test
- void assertContainsPartialDistinctAggregationForMySQL() {
- assertContainsPartialDistinctAggregation(new MySQLSelectStatement());
- }
-
- @Test
- void assertContainsPartialDistinctAggregationForOracle() {
- assertContainsPartialDistinctAggregation(new OracleSelectStatement());
- }
-
- @Test
- void assertContainsPartialDistinctAggregationForPostgreSQL() {
- assertContainsPartialDistinctAggregation(new PostgreSQLSelectStatement());
- }
-
- @Test
- void assertContainsPartialDistinctAggregationForSQL92() {
- assertContainsPartialDistinctAggregation(new SQL92SelectStatement());
- }
-
- @Test
- void assertContainsPartialDistinctAggregationForSQLServer() {
- assertContainsPartialDistinctAggregation(new SQLServerSelectStatement());
- }
-
- private void assertContainsPartialDistinctAggregation(final SelectStatement selectStatement) {
+ void assertContainsPartialDistinctAggregation() {
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(*)"));
projectionsSegment.getProjections().add(new AggregationDistinctProjectionSegment(0, 10, AggregationType.COUNT, "COUNT(1)", "distinctExpression"));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContextTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContextTest.java
index 4420b6749c6..82299ca77c9 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContextTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContextTest.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -69,7 +69,7 @@ class UpdateStatementContextTest {
JoinTableSegment joinTableSegment = new JoinTableSegment();
joinTableSegment.setLeft(table1);
joinTableSegment.setRight(table2);
- UpdateStatement updateStatement = new MySQLUpdateStatement();
+ UpdateStatement updateStatement = new SQL92UpdateStatement();
updateStatement.setWhere(whereSegment);
updateStatement.setTable(joinTableSegment);
updateStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.emptyList()));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinderTest.java
index 5b81d189c20..a6e294a1cd7 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/ExistsSubqueryExpressionBinderTest.java
@@ -25,7 +25,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.Exis
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -36,7 +37,7 @@ class ExistsSubqueryExpressionBinderTest {
@Test
void assertBindExistsSubqueryExpression() {
- MySQLSelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
selectStatement.setProjections(new ProjectionsSegment(0, 0));
ExistsSubqueryExpression existsSubqueryExpression = new ExistsSubqueryExpression(0, 0, new SubquerySegment(0, 0, selectStatement, "t_test"));
SQLStatementBinderContext binderContext = new SQLStatementBinderContext(mock(ShardingSphereMetaData.class), "foo_db", new HintValueContext(), mock(SQLStatement.class));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinderTest.java
index db84843c352..922ca5e9157 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/expression/type/SubquerySegmentBinderTest.java
@@ -40,8 +40,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -61,15 +62,15 @@ class SubquerySegmentBinderTest {
@Test
void assertBind() {
- MySQLSelectStatement mysqlSelectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
ColumnSegment columnSegment = new ColumnSegment(58, 65, new IdentifierValue("order_id"));
ProjectionsSegment projectionsSegment = new ProjectionsSegment(58, 65);
projectionsSegment.getProjections().add(new ColumnProjectionSegment(columnSegment));
- mysqlSelectStatement.setProjections(projectionsSegment);
- mysqlSelectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(72, 78, new IdentifierValue("t_order"))));
+ selectStatement.setProjections(projectionsSegment);
+ selectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(72, 78, new IdentifierValue("t_order"))));
ExpressionSegment whereExpressionSegment = new ColumnSegment(86, 91, new IdentifierValue("status"));
- mysqlSelectStatement.setWhere(new WhereSegment(80, 102, whereExpressionSegment));
- SubquerySegment subquerySegment = new SubquerySegment(39, 103, mysqlSelectStatement, "order_id = (SELECT order_id FROM t_order WHERE status = 'SUBMIT')");
+ selectStatement.setWhere(new WhereSegment(80, 102, whereExpressionSegment));
+ SubquerySegment subquerySegment = new SubquerySegment(39, 103, selectStatement, "order_id = (SELECT order_id FROM t_order WHERE status = 'SUBMIT')");
SQLStatementBinderContext sqlStatementBinderContext = new SQLStatementBinderContext(createMetaData(), "foo_db", new HintValueContext(), mock(SQLStatement.class));
ColumnSegment boundNameColumn = new ColumnSegment(7, 13, new IdentifierValue("user_id"));
boundNameColumn.setColumnBoundInfo(new ColumnSegmentBoundInfo(new TableSegmentBoundInfo(
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinderTest.java
index 45e4e93e71f..7c3da69197c 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/from/type/SubqueryTableSegmentBinderTest.java
@@ -38,8 +38,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Alias
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -63,7 +63,7 @@ class SubqueryTableSegmentBinderTest {
@Test
void assertBindWithSubqueryTableAlias() {
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getDatabaseType()).thenReturn(databaseType);
when(selectStatement.getFrom()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
@@ -96,7 +96,7 @@ class SubqueryTableSegmentBinderTest {
@Test
void assertBindWithSubqueryProjectionAlias() {
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getDatabaseType()).thenReturn(databaseType);
when(selectStatement.getFrom()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
@@ -123,7 +123,7 @@ class SubqueryTableSegmentBinderTest {
@Test
void assertBindWithoutSubqueryTableAlias() {
- MySQLSelectStatement selectStatement = mock(MySQLSelectStatement.class);
+ SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getDatabaseType()).thenReturn(databaseType);
when(selectStatement.getFrom()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0);
@@ -132,9 +132,8 @@ class SubqueryTableSegmentBinderTest {
SubqueryTableSegment subqueryTableSegment = new SubqueryTableSegment(0, 0, new SubquerySegment(0, 0, selectStatement, ""));
ShardingSphereMetaData metaData = createMetaData();
Multimap<CaseInsensitiveString, TableSegmentBinderContext> tableBinderContexts = LinkedHashMultimap.create();
- SubqueryTableSegment actual =
- SubqueryTableSegmentBinder.bind(subqueryTableSegment, new SQLStatementBinderContext(metaData, "foo_db", new HintValueContext(), selectStatement), tableBinderContexts,
- LinkedHashMultimap.create(), false);
+ SubqueryTableSegment actual = SubqueryTableSegmentBinder.bind(
+ subqueryTableSegment, new SQLStatementBinderContext(metaData, "foo_db", new HintValueContext(), selectStatement), tableBinderContexts, LinkedHashMultimap.create(), false);
assertFalse(actual.getAlias().isPresent());
assertTrue(tableBinderContexts.containsKey(new CaseInsensitiveString("")));
}
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinderTest.java
index d57d8ab2147..9215327182b 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/segment/dml/projection/type/ShorthandProjectionSegmentBinderTest.java
@@ -35,8 +35,8 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -90,7 +90,7 @@ class ShorthandProjectionSegmentBinderTest {
tableBinderContexts.put(new CaseInsensitiveString("o"),
new SimpleTableSegmentBinderContext(Arrays.asList(new ColumnProjectionSegment(new ColumnSegment(0, 0, new IdentifierValue("order_id"))), invisibleColumn),
TableSourceType.PHYSICAL_TABLE));
- SubqueryTableSegment boundTableSegment = new SubqueryTableSegment(0, 0, new SubquerySegment(0, 0, mock(MySQLSelectStatement.class), ""));
+ SubqueryTableSegment boundTableSegment = new SubqueryTableSegment(0, 0, new SubquerySegment(0, 0, mock(SelectStatement.class), ""));
boundTableSegment.setAlias(new AliasSegment(0, 0, new IdentifierValue("o")));
ShorthandProjectionSegment actual = ShorthandProjectionSegmentBinder.bind(new ShorthandProjectionSegment(0, 0), boundTableSegment, tableBinderContexts);
assertThat(actual.getActualProjectionSegments().size(), is(1));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
index da79a6e1695..5b011b7c620 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92DeleteStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -49,7 +49,7 @@ class DeleteStatementBinderTest {
@Test
void assertBind() {
- DeleteStatement deleteStatement = new MySQLDeleteStatement();
+ DeleteStatement deleteStatement = new SQL92DeleteStatement();
SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")));
deleteStatement.setTable(simpleTableSegment);
deleteStatement.setWhere(new WhereSegment(0, 0, new BinaryOperationExpression(0, 0, new ColumnSegment(0, 0, new IdentifierValue("status")),
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinderTest.java
index b2c2463fd5f..ba025b76c7c 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/InsertStatementBinderTest.java
@@ -33,9 +33,10 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.Proj
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -56,7 +57,7 @@ class InsertStatementBinderTest {
@Test
void assertBindInsertValues() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Arrays.asList(new ColumnSegment(0, 0, new IdentifierValue("order_id")),
new ColumnSegment(0, 0, new IdentifierValue("user_id")), new ColumnSegment(0, 0, new IdentifierValue("status")))));
@@ -93,11 +94,11 @@ class InsertStatementBinderTest {
@Test
void assertBindInsertSelectWithColumns() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Arrays.asList(new ColumnSegment(0, 0, new IdentifierValue("order_id")),
new ColumnSegment(0, 0, new IdentifierValue("user_id")), new ColumnSegment(0, 0, new IdentifierValue("status")))));
- MySQLSelectStatement subSelectStatement = new MySQLSelectStatement();
+ SelectStatement subSelectStatement = new SQL92SelectStatement();
subSelectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
ProjectionsSegment projections = new ProjectionsSegment(0, 0);
projections.getProjections().add(new ColumnProjectionSegment(new ColumnSegment(0, 0, new IdentifierValue("order_id"))));
@@ -119,9 +120,9 @@ class InsertStatementBinderTest {
@Test
void assertBindInsertSelectWithoutColumns() {
- InsertStatement insertStatement = new MySQLInsertStatement();
+ InsertStatement insertStatement = new SQL92InsertStatement();
insertStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- MySQLSelectStatement subSelectStatement = new MySQLSelectStatement();
+ SelectStatement subSelectStatement = new SQL92SelectStatement();
subSelectStatement.setFrom(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
ProjectionsSegment projections = new ProjectionsSegment(0, 0);
projections.getProjections().add(new ColumnProjectionSegment(new ColumnSegment(0, 0, new IdentifierValue("order_id"))));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinderTest.java
index c415b0ca0e4..dd435d20566 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/SelectStatementBinderTest.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -55,7 +55,7 @@ class SelectStatementBinderTest {
@Test
void assertBind() {
- SelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
ProjectionsSegment projections = new ProjectionsSegment(0, 0);
selectStatement.setProjections(projections);
ColumnProjectionSegment orderIdProjection = new ColumnProjectionSegment(new ColumnSegment(0, 0, new IdentifierValue("order_id")));
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
index c83fcb32b88..6d87ee53caa 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.junit.jupiter.api.Test;
import java.sql.Types;
@@ -49,7 +49,7 @@ class UpdateStatementBinderTest {
@Test
void assertBind() {
- UpdateStatement updateStatement = new MySQLUpdateStatement();
+ UpdateStatement updateStatement = new SQL92UpdateStatement();
SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")));
updateStatement.setTable(simpleTableSegment);
updateStatement.setWhere(new WhereSegment(0, 0, new BinaryOperationExpression(0, 0, new ColumnSegment(0, 0, new IdentifierValue("status")),
diff --git a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
index 79f01bd8481..d81437ff60e 100644
--- a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
+++ b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
@@ -29,8 +29,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignmen
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLUpdateStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92UpdateStatement;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
@@ -77,8 +78,8 @@ class ProcessEngineTest {
return result;
}
- private MySQLUpdateStatement getSQLStatement() {
- MySQLUpdateStatement result = new MySQLUpdateStatement();
+ private UpdateStatement getSQLStatement() {
+ UpdateStatement result = new SQL92UpdateStatement();
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
result.setTable(new SimpleTableSegment(tableNameSegment));
diff --git a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/keygen/generator/GeneratedKeyAssignmentTokenGeneratorTest.java b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/keygen/generator/GeneratedKeyAssignmentTokenGeneratorTest.java
index 3b8f4b94928..0089ee40a7a 100644
--- a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/keygen/generator/GeneratedKeyAssignmentTokenGeneratorTest.java
+++ b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/keygen/generator/GeneratedKeyAssignmentTokenGeneratorTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatem
import org.apache.shardingsphere.infra.rewrite.sql.token.keygen.pojo.LiteralGeneratedKeyAssignmentToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.keygen.pojo.ParameterMarkerGeneratedKeyAssignmentToken;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.SetAssignmentSegment;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -65,8 +65,8 @@ class GeneratedKeyAssignmentTokenGeneratorTest {
GeneratedKeyContext generatedKeyContext = new GeneratedKeyContext("testColumnName", false);
generatedKeyContext.getGeneratedValues().add(4);
when(result.getGeneratedKeyContext()).thenReturn(Optional.of(generatedKeyContext));
- MySQLInsertStatement insertStatement = new MySQLInsertStatement();
- insertStatement.setSetAssignment(new SetAssignmentSegment(0, 2, Collections.emptyList()));
+ InsertStatement insertStatement = mock(InsertStatement.class);
+ when(insertStatement.getSetAssignment()).thenReturn(Optional.of(new SetAssignmentSegment(0, 2, Collections.emptyList())));
when(result.getSqlStatement()).thenReturn(insertStatement);
return result;
}
diff --git a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
index 5937f0675e0..0c2af310844 100644
--- a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
+++ b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
@@ -30,18 +30,17 @@ import org.apache.shardingsphere.infra.route.engine.tableless.type.broadcast.Tab
import org.apache.shardingsphere.infra.route.engine.tableless.type.unicast.TablelessDataSourceUnicastRouteEngine;
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.session.query.QueryContext;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.CreateResourceGroupStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetResourceGroupStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.TCLStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLCreateResourceGroupStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLSetResourceGroupStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLSetStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLShowDatabasesStatement;
import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCloseStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLSetStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -87,7 +86,7 @@ class TablelessRouteEngineFactoryTest {
@Test
void assertNewInstanceForSetResourceGroup() {
- MySQLSetResourceGroupStatement resourceGroupStatement = mock(MySQLSetResourceGroupStatement.class);
+ SetResourceGroupStatement resourceGroupStatement = mock(SetResourceGroupStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(resourceGroupStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, mock(ShardingSphereDatabase.class));
@@ -96,18 +95,13 @@ class TablelessRouteEngineFactoryTest {
@Test
void assertNewInstanceForDALShow() {
- DALStatement dalStatement = mock(MySQLShowDatabasesStatement.class);
+ DALStatement dalStatement = mock(ShowDatabasesStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, database);
assertThat(actual, instanceOf(TablelessDataSourceBroadcastRouteEngine.class));
}
- @Test
- void assertNewInstanceForDALSetForPostgreSQL() {
- assertNewInstanceForDALSet(mock(PostgreSQLSetStatement.class));
- }
-
@Test
void assertNewInstanceForTCL() {
TCLStatement tclStatement = mock(TCLStatement.class);
@@ -119,11 +113,8 @@ class TablelessRouteEngineFactoryTest {
@Test
void assertNewInstanceForDALSetForMySQL() {
- assertNewInstanceForDALSet(mock(MySQLSetStatement.class));
- }
-
- private void assertNewInstanceForDALSet(final DALStatement dalStatement) {
- when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
+ SetStatement setStatement = mock(SetStatement.class);
+ when(sqlStatementContext.getSqlStatement()).thenReturn(setStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, database);
assertThat(actual, instanceOf(TablelessDataSourceBroadcastRouteEngine.class));
@@ -131,7 +122,7 @@ class TablelessRouteEngineFactoryTest {
@Test
void assertNewInstanceForCreateResourceGroup() {
- MySQLCreateResourceGroupStatement resourceGroupStatement = mock(MySQLCreateResourceGroupStatement.class);
+ CreateResourceGroupStatement resourceGroupStatement = mock(CreateResourceGroupStatement.class);
when(sqlStatementContext.getSqlStatement()).thenReturn(resourceGroupStatement);
QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, database);
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
index 3b2c1291719..31b1c5057e5 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
@@ -47,7 +47,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.Test;
@@ -216,8 +216,7 @@ class SingleSQLRouterTest {
}
private QueryContext createQueryContext() {
- CreateTableStatement createTableStatement = new MySQLCreateTableStatement();
- createTableStatement.setIfNotExists(false);
+ CreateTableStatement createTableStatement = new SQL92CreateTableStatement();
TableNameSegment tableNameSegment = new TableNameSegment(1, 2, new IdentifierValue("t_order"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
createTableStatement.setTable(new SimpleTableSegment(tableNameSegment));
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
index 91ea2640aa5..1f6fda165e9 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
@@ -33,8 +33,9 @@ import org.apache.shardingsphere.single.rule.SingleRule;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.Test;
@@ -94,8 +95,7 @@ class SingleRouteEngineTest {
@Test
void assertRouteWithoutSingleRule() throws SQLException {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
+ CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
SingleRouteEngine engine = new SingleRouteEngine(mockQualifiedTables(), sqlStatement, mock());
SingleRule singleRule = new SingleRule(new SingleRuleConfiguration(), "foo_db", mock(), createDataSourceMap(), Collections.emptyList());
RouteContext routeContext = new RouteContext();
@@ -111,11 +111,9 @@ class SingleRouteEngineTest {
@Test
void assertRouteWithDefaultSingleRule() throws SQLException {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
+ CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
SingleRouteEngine engine = new SingleRouteEngine(mockQualifiedTables(), sqlStatement, mock());
- SingleRule singleRule =
- new SingleRule(new SingleRuleConfiguration(Collections.emptyList(), "ds_0"), "foo_db", mock(), createDataSourceMap(), Collections.emptyList());
+ SingleRule singleRule = new SingleRule(new SingleRuleConfiguration(Collections.emptyList(), "ds_0"), "foo_db", mock(), createDataSourceMap(), Collections.emptyList());
RouteContext routeContext = new RouteContext();
engine.route(routeContext, singleRule);
List<RouteUnit> routeUnits = new ArrayList<>(routeContext.getRouteUnits());
@@ -139,22 +137,20 @@ class SingleRouteEngineTest {
@Test
void assertRouteDuplicateSingleTable() {
- SingleRouteEngine engine =
- new SingleRouteEngine(Collections.singleton(new QualifiedTable("foo_db", "t_order")), mockStatement(false), mock(HintValueContext.class));
+ SingleRouteEngine engine = new SingleRouteEngine(Collections.singleton(new QualifiedTable("foo_db", "t_order")), mockStatement(false), mock(HintValueContext.class));
assertThrows(TableExistsException.class, () -> engine.route(new RouteContext(), mockSingleRule()));
}
@Test
void assertRouteIfNotExistsDuplicateSingleTable() {
- SingleRouteEngine engine =
- new SingleRouteEngine(Collections.singleton(new QualifiedTable("foo_db", "t_order")), mockStatement(true), mock(HintValueContext.class));
+ SingleRouteEngine engine = new SingleRouteEngine(Collections.singleton(new QualifiedTable("foo_db", "t_order")), mockStatement(true), mock(HintValueContext.class));
assertDoesNotThrow(() -> engine.route(new RouteContext(), mockSingleRule()));
}
private SQLStatement mockStatement(final boolean ifNotExists) {
- MySQLCreateTableStatement result = new MySQLCreateTableStatement();
- result.setIfNotExists(ifNotExists);
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ CreateTableStatement result = mock(CreateTableStatement.class);
+ when(result.isIfNotExists()).thenReturn(ifNotExists);
+ when(result.getTable()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
return result;
}
diff --git a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/util/AutoCommitUtilsTest.java b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/util/AutoCommitUtilsTest.java
index 5890c643359..87b0b51e5f4 100644
--- a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/util/AutoCommitUtilsTest.java
+++ b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/util/AutoCommitUtilsTest.java
@@ -19,10 +19,11 @@ package org.apache.shardingsphere.transaction.util;
import org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.RegisterStorageUnitStatement;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.ddl.SQL92CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -33,7 +34,7 @@ class AutoCommitUtilsTest {
@Test
void assertNeedOpenTransactionForSelectStatement() {
- SelectStatement selectStatement = new MySQLSelectStatement();
+ SelectStatement selectStatement = new SQL92SelectStatement();
assertFalse(AutoCommitUtils.needOpenTransaction(selectStatement));
selectStatement.setFrom(mock(SimpleTableSegment.class));
assertTrue(AutoCommitUtils.needOpenTransaction(selectStatement));
@@ -41,10 +42,10 @@ class AutoCommitUtilsTest {
@Test
void assertNeedOpenTransactionForDDLOrDMLStatement() {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
+ CreateTableStatement sqlStatement = new SQL92CreateTableStatement();
sqlStatement.setIfNotExists(true);
assertTrue(AutoCommitUtils.needOpenTransaction(sqlStatement));
- assertTrue(AutoCommitUtils.needOpenTransaction(new MySQLInsertStatement()));
+ assertTrue(AutoCommitUtils.needOpenTransaction(new SQL92InsertStatement()));
}
@Test
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/ddl/RenameTableStatement.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/ddl/RenameTableStatement.java
index 6db9fea9ff4..c09fc85e47f 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/ddl/RenameTableStatement.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/ddl/RenameTableStatement.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.sql.parser.statement.core.statement.ddl;
import lombok.Getter;
-import lombok.Setter;
import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.RenameTableDefinitionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.AbstractSQLStatement;
@@ -29,7 +28,6 @@ import java.util.LinkedList;
* Rename table statement.
*/
@Getter
-@Setter
public abstract class RenameTableStatement extends AbstractSQLStatement implements DDLStatement {
private final Collection<RenameTableDefinitionSegment> renameTables = new LinkedList<>();
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index e7c46c010d0..2f6a59aff7b 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -49,13 +49,10 @@ import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.TruncateStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLTruncateStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLTruncateStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
import org.apache.shardingsphere.sqlfederation.rule.SQLFederationRule;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -86,6 +83,10 @@ class ProxySQLExecutorTest {
private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
+ private final DatabaseType mysqlDatabaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
+
+ private final DatabaseType postgresqlDatabaseType = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ConnectionSession connectionSession;
@@ -118,7 +119,8 @@ class ProxySQLExecutorTest {
@Test
void assertCheckExecutePrerequisitesWhenExecuteDDLInXATransaction() {
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
assertThrows(TableModifyInTransactionException.class,
() -> new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext));
@@ -133,7 +135,7 @@ class ProxySQLExecutorTest {
@Test
void assertCheckExecutePrerequisitesWhenExecuteTruncateInMySQLXATransaction() {
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLTruncateStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createTruncateStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
assertThrows(TableModifyInTransactionException.class,
() -> new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext));
@@ -143,7 +145,7 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteTruncateInMySQLLocalTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLTruncateStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createTruncateStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -151,7 +153,7 @@ class ProxySQLExecutorTest {
@Test
void assertCheckExecutePrerequisitesWhenExecuteDMLInXATransaction() {
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLInsertStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createInsertStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -160,7 +162,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteDDLInBaseTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.BASE);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -169,7 +172,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteDDLNotInXATransaction() {
when(connectionSession.getTransactionStatus().isInTransaction()).thenReturn(false);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -178,7 +182,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteDDLInPostgreSQLTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createPostgreSQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(postgresqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
assertThrows(TableModifyInTransactionException.class,
() -> new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext));
@@ -188,7 +193,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteTruncateInPostgreSQLTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createPostgreSQLTruncateStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createTruncateStatementContext(postgresqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -206,7 +212,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteDMLInPostgreSQLTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createPostgreSQLInsertStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createInsertStatementContext(postgresqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -215,7 +222,8 @@ class ProxySQLExecutorTest {
void assertCheckExecutePrerequisitesWhenExecuteDDLInMySQLTransaction() {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createMySQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(mysqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
@@ -234,27 +242,23 @@ class ProxySQLExecutorTest {
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
when(connectionSession.getTransactionStatus().isInTransaction()).thenReturn(false);
ExecutionContext executionContext = new ExecutionContext(
- new QueryContext(createPostgreSQLCreateTableStatementContext(), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class)),
+ new QueryContext(createCreateTableStatementContext(postgresqlDatabaseType), "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
+ mock(ShardingSphereMetaData.class)),
Collections.emptyList(), mock(RouteContext.class));
new ProxySQLExecutor(JDBCDriverType.STATEMENT, databaseConnectionManager, mock(DatabaseConnector.class), mockQueryContext()).checkExecutePrerequisites(executionContext);
}
- private CreateTableStatementContext createMySQLCreateTableStatementContext() {
- MySQLCreateTableStatement sqlStatement = new MySQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ private CreateTableStatementContext createCreateTableStatementContext(final DatabaseType databaseType) {
+ CreateTableStatement sqlStatement = mock(CreateTableStatement.class);
+ when(sqlStatement.getDatabaseType()).thenReturn(databaseType);
+ when(sqlStatement.getTable()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
return new CreateTableStatementContext(sqlStatement);
}
- private TruncateStatementContext createMySQLTruncateStatementContext() {
- MySQLTruncateStatement sqlStatement = new MySQLTruncateStatement();
- sqlStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- return new TruncateStatementContext(sqlStatement);
- }
-
- private SQLStatementContext createPostgreSQLTruncateStatementContext() {
- PostgreSQLTruncateStatement sqlStatement = new PostgreSQLTruncateStatement();
- sqlStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ private TruncateStatementContext createTruncateStatementContext(final DatabaseType databaseType) {
+ TruncateStatement sqlStatement = mock(TruncateStatement.class);
+ when(sqlStatement.getDatabaseType()).thenReturn(databaseType);
+ when(sqlStatement.getTables()).thenReturn(Collections.singletonList(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
return new TruncateStatementContext(sqlStatement);
}
@@ -269,24 +273,10 @@ class ProxySQLExecutorTest {
return new ShardingSphereMetaData(Collections.singleton(database), mock(ResourceMetaData.class), mock(RuleMetaData.class), mock(ConfigurationProperties.class));
}
- private InsertStatementContext createMySQLInsertStatementContext() {
- MySQLInsertStatement sqlStatement = new MySQLInsertStatement();
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.getName()).thenReturn("foo_db");
- return new InsertStatementContext(createShardingSphereMetaData(database), Collections.emptyList(), sqlStatement, "foo_db");
- }
-
- private CreateTableStatementContext createPostgreSQLCreateTableStatementContext() {
- PostgreSQLCreateTableStatement sqlStatement = new PostgreSQLCreateTableStatement();
- sqlStatement.setIfNotExists(false);
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
- return new CreateTableStatementContext(sqlStatement);
- }
-
- private InsertStatementContext createPostgreSQLInsertStatementContext() {
- PostgreSQLInsertStatement sqlStatement = new PostgreSQLInsertStatement();
- sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order"))));
+ private InsertStatementContext createInsertStatementContext(final DatabaseType databaseType) {
+ InsertStatement sqlStatement = mock(InsertStatement.class);
+ when(sqlStatement.getDatabaseType()).thenReturn(databaseType);
+ when(sqlStatement.getTable()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))));
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
return new InsertStatementContext(createShardingSphereMetaData(database), Collections.emptyList(), sqlStatement, "foo_db");
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
index cd0d07bb025..8d5b840ae00 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
@@ -37,10 +37,6 @@ import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterDatabaseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateDatabaseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateDatabaseStatement;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropDatabaseStatement;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.AfterEach;
@@ -93,51 +89,27 @@ class DatabaseOperateBackendHandlerFactoryTest {
}
@Test
- void assertExecuteMySQLCreateDatabaseContext() throws SQLException {
- assertExecuteCreateDatabaseContext(new MySQLCreateDatabaseStatement());
- }
-
- @Test
- void assertExecutePostgreSQLCreateDatabaseContext() throws SQLException {
- assertExecuteCreateDatabaseContext(new PostgreSQLCreateDatabaseStatement());
- }
-
- private void assertExecuteCreateDatabaseContext(final CreateDatabaseStatement sqlStatement) throws SQLException {
- sqlStatement.setDatabaseName("new_db");
+ void assertExecuteCreateDatabaseContext() throws SQLException {
+ CreateDatabaseStatement sqlStatement = mock(CreateDatabaseStatement.class);
+ when(sqlStatement.getDatabaseName()).thenReturn("new_db");
setGovernanceMetaDataContexts(true);
ResponseHeader response = DatabaseOperateBackendHandlerFactory.newInstance(sqlStatement, connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@Test
- void assertExecuteMySQLDropDatabaseContext() throws SQLException {
- assertExecuteDropDatabaseContext(new MySQLDropDatabaseStatement());
- }
-
- @Test
- void assertExecutePostgreSQLDropDatabaseContext() throws SQLException {
- assertExecuteDropDatabaseContext(new PostgreSQLDropDatabaseStatement());
- }
-
- private void assertExecuteDropDatabaseContext(final DropDatabaseStatement sqlStatement) throws SQLException {
- sqlStatement.setDatabaseName("foo_db");
+ void assertExecuteDropDatabaseContext() throws SQLException {
+ DropDatabaseStatement sqlStatement = mock(DropDatabaseStatement.class);
+ when(sqlStatement.getDatabaseName()).thenReturn("foo_db");
setGovernanceMetaDataContexts(true);
ResponseHeader response = DatabaseOperateBackendHandlerFactory.newInstance(sqlStatement, connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@Test
- void assertExecuteMySQLCreateDatabaseContextWithException() {
- assertExecuteCreateDatabaseContextWithException(new MySQLCreateDatabaseStatement());
- }
-
- @Test
- void assertExecutePostgreSQLCreateDatabaseContextWithException() {
- assertExecuteCreateDatabaseContextWithException(new PostgreSQLCreateDatabaseStatement());
- }
-
- private void assertExecuteCreateDatabaseContextWithException(final CreateDatabaseStatement sqlStatement) {
- sqlStatement.setDatabaseName("foo_db");
+ void assertExecuteCreateDatabaseContextWithException() {
+ CreateDatabaseStatement sqlStatement = mock(CreateDatabaseStatement.class);
+ when(sqlStatement.getDatabaseName()).thenReturn("foo_db");
setGovernanceMetaDataContexts(true);
try {
DatabaseOperateBackendHandlerFactory.newInstance(sqlStatement, connectionSession);
diff --git a/proxy/bootstrap/pom.xml b/proxy/bootstrap/pom.xml
index f957200df58..7be75482659 100644
--- a/proxy/bootstrap/pom.xml
+++ b/proxy/bootstrap/pom.xml
@@ -85,6 +85,7 @@
<artifactId>jul-to-slf4j</artifactId>
</dependency>
</dependencies>
+
<build>
<plugins>
<plugin>