This is an automated email from the ASF dual-hosted git repository.
panjuan 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 d84777d51e9 Refactor DatabaseTypeFactory.getDefaultSchemaName()
(#27566)
d84777d51e9 is described below
commit d84777d51e96ef4558d59ede7968ae0a8f1a3e2c
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jul 30 11:21:34 2023 +0800
Refactor DatabaseTypeFactory.getDefaultSchemaName() (#27566)
---
.../encrypt/merge/dql/EncryptMergedResult.java | 4 ++--
.../rewrite/condition/EncryptConditionEngine.java | 4 ++--
.../rewriter/EncryptAssignmentParameterRewriter.java | 4 ++--
...ertOnDuplicateKeyUpdateValueParameterRewriter.java | 4 ++--
.../rewriter/EncryptInsertValueParameterRewriter.java | 5 +++--
.../rewriter/EncryptPredicateParameterRewriter.java | 4 ++--
.../generator/EncryptAssignmentTokenGenerator.java | 4 ++--
.../generator/EncryptOrderByItemTokenGenerator.java | 6 +++---
.../EncryptPredicateColumnTokenGenerator.java | 6 +++---
.../EncryptPredicateRightValueTokenGenerator.java | 4 ++--
.../generator/EncryptProjectionTokenGenerator.java | 4 ++--
.../insert/EncryptInsertOnUpdateTokenGenerator.java | 5 +++--
.../insert/EncryptInsertValuesTokenGenerator.java | 8 +++++---
.../mask/merge/dql/MaskAlgorithmMetaData.java | 4 ++--
.../sharding/merge/dal/ShardingDALResultMerger.java | 6 +++---
.../sharding/merge/ddl/ShardingDDLResultMerger.java | 4 ++--
.../sharding/merge/dql/ShardingDQLResultMerger.java | 4 ++--
.../token/generator/impl/IndexTokenGenerator.java | 4 ++--
.../engine/InsertClauseShardingConditionEngine.java | 4 ++--
.../engine/WhereClauseShardingConditionEngine.java | 4 ++--
.../impl/ShardingAlterIndexStatementValidator.java | 4 ++--
.../ShardingCreateFunctionStatementValidator.java | 4 ++--
.../impl/ShardingCreateIndexStatementValidator.java | 4 ++--
.../ShardingCreateProcedureStatementValidator.java | 4 ++--
.../impl/ShardingCreateTableStatementValidator.java | 4 ++--
.../ddl/impl/ShardingDropIndexStatementValidator.java | 6 +++---
.../ddl/impl/ShardingDropTableStatementValidator.java | 6 +++---
.../shardingsphere/sharding/rule/ShardingRule.java | 4 ++--
.../select/projection/engine/ProjectionEngine.java | 4 ++--
.../context/statement/dml/InsertStatementContext.java | 4 ++--
.../segment/from/impl/SimpleTableSegmentBinder.java | 4 ++--
.../infra/database/DatabaseTypeEngine.java | 14 --------------
.../metadata/database/ShardingSphereDatabase.java | 4 ++--
.../database/schema/builder/GenericSchemaBuilder.java | 8 ++++----
.../database/schema/util/IndexMetaDataUtils.java | 4 ++--
.../infra/database/DatabaseTypeEngineTest.java | 10 +---------
.../connection/refresher/MetaDataRefreshEngine.java | 4 ++--
.../ShardingSphereMetaDataValidateUtils.java | 4 ++--
.../infra/database/core/type/DatabaseTypeFactory.java | 13 +++++++++++++
...taData.java => BranchDialectDatabaseMetaData.java} | 4 ++--
.../fixture/TrunkDialectDatabaseMetaData.java | 7 +++++++
.../database/core/type/DatabaseTypeFactoryTest.java | 19 +++++++++++++++++++
...ase.core.metadata.database.DialectDatabaseMetaData | 1 +
.../driver/executor/DriverExecutor.java | 4 ++--
.../apache/shardingsphere/single/rule/SingleRule.java | 3 ++-
.../update/LoadSingleTableStatementUpdater.java | 4 ++--
.../update/UnloadSingleTableStatementUpdater.java | 4 ++--
.../proxy/backend/connector/ProxySQLExecutor.java | 6 +++---
.../ral/queryable/ShowTableMetaDataExecutor.java | 4 ++--
.../ral/updatable/RefreshTableMetaDataUpdater.java | 4 ++--
.../handler/distsql/rul/sql/PreviewExecutor.java | 7 ++++---
.../binary/prepare/MySQLComStmtPrepareExecutor.java | 6 +++---
.../describe/PostgreSQLComDescribeExecutor.java | 6 +++---
.../test/it/rewrite/engine/SQLRewriterIT.java | 6 +++---
54 files changed, 155 insertions(+), 131 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
index 3cf8af8220b..36449a8fb2d 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptMergedResult.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
import
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -62,7 +62,7 @@ public final class EncryptMergedResult implements
MergedResult {
}
TablesContext tablesContext =
selectStatementContext.getTablesContext();
String schemaName = tablesContext.getSchemaName()
- .orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
ColumnProjection originalColumn = new
ColumnProjection(columnProjection.get().getOriginalOwner(),
columnProjection.get().getOriginalName(), null,
selectStatementContext.getDatabaseType());
Map<String, String> expressionTableNames =
tablesContext.findTableNamesByColumnProjection(Collections.singletonList(originalColumn),
database.getSchema(schemaName));
Optional<String> tableName = findTableName(originalColumn,
expressionTableNames);
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index a79143c2e3c..dfa37eb4599 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInConditi
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
@@ -91,7 +91,7 @@ public final class EncryptConditionEngine {
public Collection<EncryptCondition> createEncryptConditions(final
Collection<WhereSegment> whereSegments, final Collection<ColumnSegment>
columnSegments,
final
SQLStatementContext sqlStatementContext, final String databaseName) {
Collection<EncryptCondition> result = new LinkedList<>();
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
Map<String, String> expressionTableNames =
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
schema);
for (WhereSegment each : whereSegments) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
index ecbbd34f05d..0df2082f673 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
@@ -27,7 +27,7 @@ import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
@@ -70,7 +70,7 @@ public final class EncryptAssignmentParameterRewriter
implements ParameterRewrit
@Override
public void rewrite(final ParameterBuilder paramBuilder, final
SQLStatementContext sqlStatementContext, final List<Object> params) {
String tableName = ((TableAvailable)
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (AssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
String columnName =
each.getColumns().get(0).getIdentifier().getValue();
if (each.getValue() instanceof ParameterMarkerExpressionSegment &&
encryptRule.findEncryptTable(tableName).map(optional ->
optional.isEncryptColumn(columnName)).orElse(false)) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
index ba41fcfd2aa..a9c826bc4dd 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import
org.apache.shardingsphere.infra.binder.context.segment.insert.values.OnDuplicateUpdateContext;
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.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
@@ -58,7 +58,7 @@ public final class
EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
String tableName =
insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue();
GroupedParameterBuilder groupedParamBuilder =
(GroupedParameterBuilder) paramBuilder;
OnDuplicateUpdateContext onDuplicateKeyUpdateValueContext =
insertStatementContext.getOnDuplicateKeyUpdateValueContext();
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (int index = 0; index <
onDuplicateKeyUpdateValueContext.getValueExpressions().size(); index++) {
String logicColumnName =
onDuplicateKeyUpdateValueContext.getColumn(index).getIdentifier().getValue();
if (!encryptRule.findEncryptTable(tableName).map(optional ->
optional.isEncryptColumn(logicColumnName)).orElse(false)) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
index d8daa13e634..7088a337c4e 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertValueParameterRewriter.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
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.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
@@ -66,7 +66,8 @@ public final class EncryptInsertValueParameterRewriter
implements ParameterRewri
return;
}
Iterator<String> descendingColumnNames =
insertStatementContext.getDescendingColumnNames();
- String schemaName =
insertStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
insertStatementContext.getTablesContext().getSchemaName()
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
while (descendingColumnNames.hasNext()) {
String columnName = descendingColumnNames.next();
if (encryptRule.findEncryptTable(tableName).map(optional ->
optional.isEncryptColumn(columnName)).orElse(false)) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
index 28810b0a6e4..262e1a4850d 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
@@ -57,7 +57,7 @@ public final class EncryptPredicateParameterRewriter
implements ParameterRewrite
@Override
public void rewrite(final ParameterBuilder paramBuilder, final
SQLStatementContext sqlStatementContext, final List<Object> params) {
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (EncryptCondition each : encryptConditions) {
encryptParameters(paramBuilder, each.getPositionIndexMap(),
getEncryptedValues(schemaName, each, each.getValues(params)));
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index c5dc054643d..900c817c6eb 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -31,7 +31,7 @@ import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
@@ -69,7 +69,7 @@ public final class EncryptAssignmentTokenGenerator implements
CollectionSQLToken
Collection<SQLToken> result = new LinkedList<>();
String tableName = ((TableAvailable)
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (AssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
String columnName =
each.getColumns().get(0).getIdentifier().getValue();
if (encryptTable.isEncryptColumn(columnName)) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index efdf2875c04..42ad3635142 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -28,9 +28,9 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
@@ -69,7 +69,7 @@ public final class EncryptOrderByItemTokenGenerator
implements CollectionSQLToke
@Override
public Collection<SQLToken> generateSQLTokens(final SQLStatementContext
sqlStatementContext) {
Collection<SQLToken> result = new LinkedHashSet<>();
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
for (OrderByItem each : getOrderByItems(sqlStatementContext)) {
if (each.getSegment() instanceof ColumnOrderByItemSegment) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
index fbba042021e..5b1fd060ba2 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
@@ -28,9 +28,9 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
@@ -78,7 +78,7 @@ public final class EncryptPredicateColumnTokenGenerator
implements CollectionSQL
columnSegments = ((WhereAvailable)
sqlStatementContext).getColumnSegments();
whereSegments = ((WhereAvailable)
sqlStatementContext).getWhereSegments();
}
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
Map<String, String> columnExpressionTableNames =
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
schema);
return generateSQLTokens(columnSegments, columnExpressionTableNames,
whereSegments);
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
index a69d13c8791..68b69005d78 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
@@ -34,7 +34,7 @@ import
org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.ParametersAware;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
@@ -70,7 +70,7 @@ public final class EncryptPredicateRightValueTokenGenerator
implements Collectio
@Override
public Collection<SQLToken> generateSQLTokens(final SQLStatementContext
sqlStatementContext) {
Collection<SQLToken> result = new LinkedHashSet<>();
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (EncryptCondition each : encryptConditions) {
encryptRule.findEncryptTable(each.getTableName()).ifPresent(optional ->
result.add(generateSQLToken(schemaName, optional, each)));
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
index 978ba7b3c16..2b6c6d6eaad 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
@@ -31,10 +31,10 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ShorthandProjection;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.PreviousSQLTokensAware;
@@ -167,7 +167,7 @@ public final class EncryptProjectionTokenGenerator
implements CollectionSQLToken
columns.addAll(((ShorthandProjection)
projection).getColumnProjections());
}
}
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
databaseName);
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
databaseName);
ShardingSphereSchema schema =
selectStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
return
selectStatementContext.getTablesContext().findTableNamesByColumnProjection(columns,
schema);
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
index 1827e1fddea..d9e9767a262 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
@@ -33,7 +33,7 @@ import
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnIte
import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
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.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
@@ -74,7 +74,8 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
if (onDuplicateKeyColumnsSegments.isEmpty()) {
return Collections.emptyList();
}
- String schemaName =
insertStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
insertStatementContext.getTablesContext().getSchemaName()
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
String tableName =
insertStatement.getTable().getTableName().getIdentifier().getValue();
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
Collection<SQLToken> result = new LinkedList<>();
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
index 0e2be0b1045..4121beb7a37 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
@@ -33,7 +33,7 @@ import
org.apache.shardingsphere.infra.binder.context.segment.insert.values.expr
import
org.apache.shardingsphere.infra.binder.context.segment.insert.values.expression.DerivedSimpleExpressionSegment;
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.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.OptionalSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.PreviousSQLTokensAware;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
@@ -90,7 +90,8 @@ public final class EncryptInsertValuesTokenGenerator
implements OptionalSQLToken
String tableName =
insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue();
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
int count = 0;
- String schemaName =
insertStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
insertStatementContext.getTablesContext().getSchemaName()
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
for (InsertValueContext each :
insertStatementContext.getInsertValueContexts()) {
encryptToken(insertValuesToken.getInsertValues().get(count),
schemaName, encryptTable, insertStatementContext, each);
count++;
@@ -102,7 +103,8 @@ public final class EncryptInsertValuesTokenGenerator
implements OptionalSQLToken
Collection<InsertValuesSegment> insertValuesSegments =
insertStatementContext.getSqlStatement().getValues();
InsertValuesToken result = new
EncryptInsertValuesToken(getStartIndex(insertValuesSegments),
getStopIndex(insertValuesSegments));
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
- String schemaName =
insertStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
insertStatementContext.getTablesContext().getSchemaName()
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(insertStatementContext.getDatabaseType(),
databaseName));
for (InsertValueContext each :
insertStatementContext.getInsertValueContexts()) {
InsertValue insertValueToken = new
InsertValue(each.getValueExpressions());
encryptToken(insertValueToken, schemaName, encryptTable,
insertStatementContext, each);
diff --git
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskAlgorithmMetaData.java
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskAlgorithmMetaData.java
index 31242713ae6..a5ea0a8c97e 100644
---
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskAlgorithmMetaData.java
+++
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/merge/dql/MaskAlgorithmMetaData.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
import
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.mask.rule.MaskRule;
import org.apache.shardingsphere.mask.spi.MaskAlgorithm;
@@ -57,7 +57,7 @@ public final class MaskAlgorithmMetaData {
return Optional.empty();
}
TablesContext tablesContext =
selectStatementContext.getTablesContext();
- String schemaName = tablesContext.getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
+ String schemaName = tablesContext.getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
Map<String, String> expressionTableNames =
tablesContext.findTableNamesByColumnProjection(
Collections.singletonList(columnProjection.get()),
database.getSchema(schemaName));
return findTableName(columnProjection.get(),
expressionTableNames).flatMap(optional -> maskRule.findMaskAlgorithm(optional,
columnProjection.get().getName().getValue()));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
index 99e3428fe4b..d7d2d840448 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
@@ -19,8 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dal;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.merge.engine.merger.ResultMerger;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
@@ -29,6 +28,7 @@ import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
import
org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import
org.apache.shardingsphere.sharding.merge.dal.show.LogicTablesMergedResult;
import
org.apache.shardingsphere.sharding.merge.dal.show.ShowCreateTableMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowIndexMergedResult;
@@ -62,7 +62,7 @@ public final class ShardingDALResultMerger implements
ResultMerger {
if (dalStatement instanceof MySQLShowDatabasesStatement) {
return new LocalDataMergedResult(Collections.singleton(new
LocalDataQueryResultRow(databaseName)));
}
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName()));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName()));
ShardingSphereSchema schema = database.getSchema(schemaName);
if (dalStatement instanceof MySQLShowTablesStatement) {
return new LogicTablesMergedResult(shardingRule,
sqlStatementContext, schema, queryResults);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/ddl/ShardingDDLResultMerger.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/ddl/ShardingDDLResultMerger.java
index f11a20e3ed9..d1c9d90d9a9 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/ddl/ShardingDDLResultMerger.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/ddl/ShardingDDLResultMerger.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.ddl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.ddl.FetchStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.merge.engine.merger.ResultMerger;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
@@ -57,7 +57,7 @@ public final class ShardingDDLResultMerger implements
ResultMerger {
}
private ShardingSphereSchema getSchema(final SQLStatementContext
sqlStatementContext, final ShardingSphereDatabase database) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
return
sqlStatementContext.getTablesContext().getSchemaName().map(database::getSchema).orElseGet(()
-> database.getSchema(defaultSchemaName));
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
index b7fc164dcb1..b005c1078f7 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
@@ -22,10 +22,10 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.orderby.Ord
import
org.apache.shardingsphere.infra.binder.context.segment.select.pagination.PaginationContext;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.merge.engine.merger.ResultMerger;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
@@ -82,7 +82,7 @@ public final class ShardingDQLResultMerger implements
ResultMerger {
private MergedResult build(final List<QueryResult> queryResults, final
SelectStatementContext selectStatementContext,
final Map<String, Integer> columnLabelIndexMap,
final ShardingSphereDatabase database) throws SQLException {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
selectStatementContext.getTablesContext().getSchemaName()
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
if (isNeedProcessGroupBy(selectStatementContext)) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
index d4d8e02faae..907648be0b7 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/IndexTokenGenerator.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
import lombok.Setter;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.IndexAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
@@ -54,7 +54,7 @@ public final class IndexTokenGenerator implements
CollectionSQLTokenGenerator<SQ
@Override
public Collection<SQLToken> generateSQLTokens(final SQLStatementContext
sqlStatementContext) {
Collection<SQLToken> result = new LinkedList<>();
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
if (sqlStatementContext instanceof IndexAvailable) {
for (IndexSegment each : ((IndexAvailable)
sqlStatementContext).getIndexes()) {
ShardingSphereSchema schema = each.getOwner().isPresent() ?
schemas.get(each.getOwner().get().getIdentifier().getValue()) :
schemas.get(defaultSchemaName);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
index f37780c9c79..7e26f29af95 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.binder.context.segment.insert.keygen.Gene
import
org.apache.shardingsphere.infra.binder.context.segment.insert.values.InsertValueContext;
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.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -91,7 +91,7 @@ public final class InsertClauseShardingConditionEngine {
}
private void appendMissingShardingConditions(final InsertStatementContext
sqlStatementContext, final Collection<String> columnNames, final
List<ShardingCondition> shardingConditions) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(database::getSchema).orElseGet(()
-> database.getSchema(defaultSchemaName));
String tableName =
sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue();
ShardingSpherePreconditions.checkState(schema.containsTable(tableName), () ->
new NoSuchTableException(tableName));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
index f9e1848bd0a..563db3afa6b 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
@@ -21,7 +21,7 @@ import com.google.common.collect.Range;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.sharding.exception.data.ShardingValueDataTypeException;
@@ -79,7 +79,7 @@ public final class WhereClauseShardingConditionEngine {
return Collections.emptyList();
}
Collection<ColumnSegment> columnSegments = ((WhereAvailable)
sqlStatementContext).getColumnSegments();
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName()
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
Map<String, String> columnExpressionTableNames =
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
schema);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java
index 48d766e8c6c..96a9404a340 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -45,7 +45,7 @@ public final class ShardingAlterIndexStatementValidator
extends ShardingDDLState
final List<Object> params, final
ShardingSphereDatabase database, final ConfigurationProperties props) {
AlterIndexStatement alterIndexStatement = (AlterIndexStatement)
sqlStatementContext.getSqlStatement();
Optional<IndexSegment> index = alterIndexStatement.getIndex();
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema = index.flatMap(optional ->
optional.getOwner()
.map(owner ->
database.getSchema(owner.getIdentifier().getValue()))).orElseGet(() ->
database.getSchema(defaultSchemaName));
if (index.isPresent() && !isSchemaContainsIndex(schema, index.get())) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java
index 2667995c99d..8f5d126f955 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -52,7 +52,7 @@ public final class ShardingCreateFunctionStatementValidator
extends ShardingDDLS
TableExtractor extractor = new TableExtractor();
Collection<SimpleTableSegment> existTables =
extractor.extractExistTableFromRoutineBody(routineBodySegment.get());
validateShardingTable(shardingRule, "CREATE FUNCTION", existTables);
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
createFunctionStatement.getFunctionName().flatMap(optional ->
optional.getOwner()
.map(owner ->
database.getSchema(owner.getIdentifier().getValue()))).orElseGet(() ->
database.getSchema(defaultSchemaName));
validateTableExist(schema, existTables);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java
index b65fb6c208c..770ada5f2ce 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.IndexAvailable;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -46,7 +46,7 @@ public final class ShardingCreateIndexStatementValidator
extends ShardingDDLStat
return;
}
CreateIndexStatement createIndexStatement = (CreateIndexStatement)
sqlStatementContext.getSqlStatement();
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName()
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
validateTableExist(schema,
Collections.singleton(createIndexStatement.getTable()));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java
index a88c2e2ecee..b8e223e213a 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -50,7 +50,7 @@ public final class ShardingCreateProcedureStatementValidator
extends ShardingDDL
return;
}
TableExtractor extractor = new TableExtractor();
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
createProcedureStatement.getProcedureName().flatMap(optional ->
optional.getOwner()
.map(owner ->
database.getSchema(owner.getIdentifier().getValue()))).orElseGet(() ->
database.getSchema(defaultSchemaName));
Collection<SimpleTableSegment> existTables =
extractor.extractExistTableFromRoutineBody(routineBodySegment.get());
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java
index 74e561239e3..5ce91a9120e 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -43,7 +43,7 @@ public final class ShardingCreateTableStatementValidator
extends ShardingDDLStat
final List<Object> params, final
ShardingSphereDatabase database, final ConfigurationProperties props) {
CreateTableStatement createTableStatement = (CreateTableStatement)
sqlStatementContext.getSqlStatement();
if (!CreateTableStatementHandler.ifNotExists(createTableStatement)) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName()
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
validateTableNotExist(schema,
Collections.singleton(createTableStatement.getTable()));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java
index 3806053aee8..5c67ca83432 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -49,7 +49,7 @@ public final class ShardingDropIndexStatementValidator
extends ShardingDDLStatem
if (DropIndexStatementHandler.ifExists(dropIndexStatement)) {
return;
}
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
for (IndexSegment each : dropIndexStatement.getIndexes()) {
ShardingSphereSchema schema = each.getOwner().map(optional ->
optional.getIdentifier().getValue())
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
@@ -68,7 +68,7 @@ public final class ShardingDropIndexStatementValidator
extends ShardingDDLStatem
if (logicTableName.isPresent()) {
validateDropIndexRouteUnit(shardingRule, routeContext,
indexSegments, logicTableName.get());
} else {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
for (IndexSegment each : indexSegments) {
ShardingSphereSchema schema = each.getOwner().map(optional ->
optional.getIdentifier().getValue())
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
index 7bf07cf361a..03b0cfc1232 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
@@ -19,15 +19,15 @@ package
org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
-import
org.apache.shardingsphere.sharding.exception.metadata.DropInUsedTablesException;
import
org.apache.shardingsphere.sharding.exception.connection.ShardingDDLRouteException;
+import
org.apache.shardingsphere.sharding.exception.metadata.DropInUsedTablesException;
import
org.apache.shardingsphere.sharding.exception.syntax.UnsupportedShardingOperationException;
import
org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -51,7 +51,7 @@ public final class ShardingDropTableStatementValidator
extends ShardingDDLStatem
final List<Object> params, final
ShardingSphereDatabase database, final ConfigurationProperties props) {
DropTableStatement dropTableStatement = (DropTableStatement)
sqlStatementContext.getSqlStatement();
if (!DropTableStatementHandler.ifExists(dropTableStatement)) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName()
.map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchemaName));
validateTableExist(schema,
sqlStatementContext.getTablesContext().getSimpleTableSegments());
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index 2c90964a4cc..e5bfae31b57 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -23,7 +23,7 @@ import lombok.Getter;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory;
import org.apache.shardingsphere.infra.instance.InstanceContext;
@@ -470,7 +470,7 @@ public final class ShardingRule implements DatabaseRule,
DataNodeContainedRule,
if (!isAllBindingTables(logicTableNames)) {
return false;
}
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(database::getSchema).orElseGet(()
-> database.getSchema(defaultSchemaName));
SelectStatementContext select = (SelectStatementContext)
sqlStatementContext;
return isJoinConditionContainsShardingColumns(schema, select,
logicTableNames, select.getWhereSegments());
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionEngine.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionEngine.java
index ebb74ad1e4d..641789f20cb 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionEngine.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/engine/ProjectionEngine.java
@@ -27,10 +27,10 @@ import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ParameterMarkerProjection;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ShorthandProjection;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.SubqueryProjection;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
import org.apache.shardingsphere.infra.exception.SchemaNotFoundException;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -173,7 +173,7 @@ public final class ProjectionEngine {
String tableName = ((SimpleTableSegment)
table).getTableName().getIdentifier().getValue();
String tableAlias = table.getAliasName().orElse(tableName);
String schemaName = ((SimpleTableSegment)
table).getOwner().map(optional -> optional.getIdentifier().getValue())
- .orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(databaseType,
databaseName)).toLowerCase();
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(databaseType,
databaseName)).toLowerCase();
ShardingSphereSchema schema = schemas.get(schemaName);
ShardingSpherePreconditions.checkNotNull(schema, () -> new
SchemaNotFoundException(schemaName));
Collection<ColumnProjection> result = new LinkedList<>();
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 24928f4b7df..f0348466699 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.infra.binder.context.segment.insert.values.OnDu
import
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
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;
@@ -102,7 +102,7 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
ShardingSpherePreconditions.checkNotNull(databaseName,
NoDatabaseSelectedException::new);
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
ShardingSpherePreconditions.checkNotNull(database, () -> new
UnknownDatabaseException(databaseName));
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(getDatabaseType(), databaseName);
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(getDatabaseType(), databaseName);
return
tablesContext.getSchemaName().map(database::getSchema).orElseGet(() ->
database.getSchema(defaultSchema));
}
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SimpleTableSegmentBinder.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SimpleTableSegmentBinder.java
index ea8442cf5af..a79bc270e61 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SimpleTableSegmentBinder.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SimpleTableSegmentBinder.java
@@ -20,10 +20,10 @@ package
org.apache.shardingsphere.infra.binder.segment.from.impl;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.database.opengauss.type.OpenGaussDatabaseType;
import
org.apache.shardingsphere.infra.database.postgresql.type.PostgreSQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -98,7 +98,7 @@ public final class SimpleTableSegmentBinder {
&&
SYSTEM_CATALOG_TABLES.contains(segment.getTableName().getIdentifier().getValue().toLowerCase()))
{
return new IdentifierValue(PG_CATALOG);
}
- return new
IdentifierValue(DatabaseTypeEngine.getDefaultSchemaName(databaseType,
defaultDatabaseName));
+ return new
IdentifierValue(DatabaseTypeFactory.getDefaultSchemaName(databaseType,
defaultDatabaseName));
}
private static TableSegmentBinderContext
createSimpleTableBinderContext(final SimpleTableSegment segment, final
ShardingSphereSchema schema,
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
index ec35ffea1be..8224501a44f 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
@@ -22,8 +22,6 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
-import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
-import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datasource.state.DataSourceStateManager;
@@ -131,16 +129,4 @@ public final class DatabaseTypeEngine {
throw new SQLWrapperException(ex);
}
}
-
- /**
- * Get default schema name.
- *
- * @param protocolType protocol type
- * @param databaseName database name
- * @return default schema name
- */
- public static String getDefaultSchemaName(final DatabaseType protocolType,
final String databaseName) {
- DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, protocolType);
- return dialectDatabaseMetaData.getDefaultSchema().orElseGet(() -> null
== databaseName ? null : databaseName.toLowerCase());
- }
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
index 1ea339c9261..3cdc5c31c1f 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDa
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import org.apache.shardingsphere.infra.datasource.state.DataSourceStateManager;
import org.apache.shardingsphere.infra.datasource.storage.StorageResource;
@@ -88,7 +88,7 @@ public final class ShardingSphereDatabase {
Collection<ShardingSphereRule> databaseRules =
DatabaseRulesBuilder.build(name, databaseConfig, instanceContext);
Map<String, ShardingSphereSchema> schemas = new
ConcurrentHashMap<>(GenericSchemaBuilder
.build(new GenericSchemaBuilderMaterial(protocolType,
storageTypes,
DataSourceStateManager.getInstance().getEnabledDataSourceMap(name,
databaseConfig.getDataSources()), databaseRules,
- props,
DatabaseTypeEngine.getDefaultSchemaName(protocolType, name))));
+ props,
DatabaseTypeFactory.getDefaultSchemaName(protocolType, name))));
SystemSchemaBuilder.build(name, protocolType,
props).forEach(schemas::putIfAbsent);
return create(name, protocolType, databaseConfig, databaseRules,
schemas);
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
index 7230209dcf2..60330968dea 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
@@ -20,8 +20,6 @@ package
org.apache.shardingsphere.infra.metadata.database.schema.builder;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader;
import
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
@@ -29,6 +27,8 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.Constra
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereConstraint;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
@@ -108,10 +108,10 @@ public final class GenericSchemaBuilder {
private static Map<String, SchemaMetaData> translate(final Map<String,
SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material)
{
Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
for (DatabaseType each : material.getStorageTypes().values()) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(each, material.getDefaultSchemaName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(each, material.getDefaultSchemaName());
tableMetaDataList.addAll(Optional.ofNullable(schemaMetaDataMap.get(defaultSchemaName)).map(SchemaMetaData::getTables).orElseGet(Collections::emptyList));
}
- String frontendSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(material.getProtocolType(),
material.getDefaultSchemaName());
+ String frontendSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(material.getProtocolType(),
material.getDefaultSchemaName());
Map<String, SchemaMetaData> result = new LinkedHashMap<>();
result.put(frontendSchemaName, new SchemaMetaData(frontendSchemaName,
tableMetaDataList));
return result;
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
index 87c9243f730..0cc44839925 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
@@ -21,7 +21,7 @@ import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -89,7 +89,7 @@ public final class IndexMetaDataUtils {
*/
public static Collection<QualifiedTable> getTableNames(final
ShardingSphereDatabase database, final DatabaseType protocolType, final
Collection<IndexSegment> indexes) {
Collection<QualifiedTable> result = new LinkedList<>();
- String schemaName =
DatabaseTypeEngine.getDefaultSchemaName(protocolType, database.getName());
+ String schemaName =
DatabaseTypeFactory.getDefaultSchemaName(protocolType, database.getName());
for (IndexSegment each : indexes) {
String actualSchemaName = each.getOwner().map(optional ->
optional.getIdentifier().getValue()).orElse(schemaName);
findLogicTableNameFromMetaData(database.getSchema(actualSchemaName),
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
index 3f41fa4caab..af71089538e 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
@@ -21,9 +21,9 @@ import
org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
import
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDatabaseConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
import
org.apache.shardingsphere.infra.database.postgresql.type.PostgreSQLDatabaseType;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.wrapper.SQLWrapperException;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -119,12 +119,4 @@ class DatabaseTypeEngineTest {
throw new IllegalStateException("Unexpected value: " +
databaseType.getType());
}
}
-
- @Test
- void assertGetDefaultSchemaName() {
- DatabaseType schemaSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "openGauss");
-
assertThat(DatabaseTypeEngine.getDefaultSchemaName(schemaSupportDatabaseType,
""), is("public"));
- DatabaseType schemaNoSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
-
assertThat(DatabaseTypeEngine.getDefaultSchemaName(schemaNoSupportDatabaseType,
"MySQL"), is("mysql"));
- }
}
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/MetaDataRefreshEngine.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/MetaDataRefreshEngine.java
index 0a99d80360d..f0c8a478c12 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/MetaDataRefreshEngine.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/MetaDataRefreshEngine.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.connection.refresher;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -64,7 +64,7 @@ public final class MetaDataRefreshEngine {
Optional<MetaDataRefresher> schemaRefresher =
TypedSPILoader.findService(MetaDataRefresher.class,
sqlStatementClass.getSuperclass().getName());
if (schemaRefresher.isPresent()) {
String schemaName =
sqlStatementContext.getTablesContext().getSchemaName()
- .orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName())).toLowerCase();
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName())).toLowerCase();
Collection<String> logicDataSourceNames =
routeUnits.stream().map(each ->
each.getDataSourceMapper().getLogicName()).collect(Collectors.toList());
schemaRefresher.get().refresh(modeContextManager, database,
logicDataSourceNames, schemaName, sqlStatementContext.getSqlStatement(), props);
return;
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/validator/ShardingSphereMetaDataValidateUtils.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/validator/ShardingSphereMetaDataValidateUtils.java
index 63c61912de9..3504cd30e77 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/validator/ShardingSphereMetaDataValidateUtils.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/validator/ShardingSphereMetaDataValidateUtils.java
@@ -21,7 +21,7 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.dialect.exception.syntax.table.NoSuchTableException;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -49,7 +49,7 @@ public final class ShardingSphereMetaDataValidateUtils {
* @throws NoSuchTableException no such table exception
*/
public static void validateTableExist(final SQLStatementContext
sqlStatementContext, final ShardingSphereDatabase database) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName());
ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(database::getSchema).orElseGet(()
-> database.getSchema(defaultSchemaName));
for (String each :
sqlStatementContext.getTablesContext().getTableNames()) {
if (!EXCLUDE_VALIDATE_TABLES.contains(each.toUpperCase()) &&
!schema.containsTable(each)) {
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
index a28f234d4a2..892698f9661 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactory.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.infra.database.core.type;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
+import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
@@ -62,4 +64,15 @@ public final class DatabaseTypeFactory {
return
ShardingSphereServiceLoader.getServiceInstances(DatabaseType.class)
.stream().filter(each ->
each.getTrunkDatabaseType().map(optional -> optional ==
databaseType).orElse(false)).collect(Collectors.toList());
}
+
+ /**
+ * Get default schema name.
+ *
+ * @param databaseType database type
+ * @param databaseName database name
+ * @return default schema name
+ */
+ public static String getDefaultSchemaName(final DatabaseType databaseType,
final String databaseName) {
+ return
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class,
databaseType).getDefaultSchema().orElseGet(() -> null == databaseName ? null :
databaseName.toLowerCase());
+ }
}
diff --git
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/BranchDialectDatabaseMetaData.java
similarity index 92%
copy from
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
copy to
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/BranchDialectDatabaseMetaData.java
index 56d0c4bc514..359203f5dba 100644
---
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
+++
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/BranchDialectDatabaseMetaData.java
@@ -21,7 +21,7 @@ import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDa
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.NullsOrderType;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
-public final class TrunkDialectDatabaseMetaData implements
DialectDatabaseMetaData {
+public final class BranchDialectDatabaseMetaData implements
DialectDatabaseMetaData {
@Override
public QuoteCharacter getQuoteCharacter() {
@@ -35,6 +35,6 @@ public final class TrunkDialectDatabaseMetaData implements
DialectDatabaseMetaDa
@Override
public String getDatabaseType() {
- return "TRUNK";
+ return "BRANCH";
}
}
diff --git
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
index 56d0c4bc514..656824b723c 100644
---
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
+++
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/metadata/database/fixture/TrunkDialectDatabaseMetaData.java
@@ -21,6 +21,8 @@ import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDa
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.NullsOrderType;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
+import java.util.Optional;
+
public final class TrunkDialectDatabaseMetaData implements
DialectDatabaseMetaData {
@Override
@@ -33,6 +35,11 @@ public final class TrunkDialectDatabaseMetaData implements
DialectDatabaseMetaDa
return NullsOrderType.FIRST;
}
+ @Override
+ public Optional<String> getDefaultSchema() {
+ return Optional.of("test");
+ }
+
@Override
public String getDatabaseType() {
return "TRUNK";
diff --git
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactoryTest.java
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactoryTest.java
index 8a511273a37..8b5f2cf028e 100644
---
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactoryTest.java
+++
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/DatabaseTypeFactoryTest.java
@@ -25,6 +25,7 @@ import java.util.Collections;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
class DatabaseTypeFactoryTest {
@@ -49,4 +50,22 @@ class DatabaseTypeFactoryTest {
Collection<DatabaseType> actual =
DatabaseTypeFactory.getAllBranchDatabaseTypes(TypedSPILoader.getService(DatabaseType.class,
"TRUNK"));
assertThat(actual,
is(Collections.singletonList(TypedSPILoader.getService(DatabaseType.class,
"BRANCH"))));
}
+
+ @Test
+ void assertGetDefaultSchemaNameWhenDatabaseTypeContainsDefaultSchema() {
+ DatabaseType schemaNoSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "TRUNK");
+
assertThat(DatabaseTypeFactory.getDefaultSchemaName(schemaNoSupportDatabaseType,
"FOO"), is("test"));
+ }
+
+ @Test
+ void assertGetDefaultSchemaNameWhenDatabaseTypeNotContainsDefaultSchema() {
+ DatabaseType schemaNoSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "BRANCH");
+
assertThat(DatabaseTypeFactory.getDefaultSchemaName(schemaNoSupportDatabaseType,
"FOO"), is("foo"));
+ }
+
+ @Test
+ void
assertGetDefaultSchemaNameWhenDatabaseTypeNotContainsDefaultSchemaAndNullDatabaseName()
{
+ DatabaseType schemaNoSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "BRANCH");
+
assertNull(DatabaseTypeFactory.getDefaultSchemaName(schemaNoSupportDatabaseType,
null));
+ }
}
diff --git
a/infra/database/core/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData
b/infra/database/core/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData
index 1614cb55be6..d950867d3e9 100644
---
a/infra/database/core/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData
+++
b/infra/database/core/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData
@@ -16,3 +16,4 @@
#
org.apache.shardingsphere.infra.database.core.metadata.database.fixture.TrunkDialectDatabaseMetaData
+org.apache.shardingsphere.infra.database.core.metadata.database.fixture.BranchDialectDatabaseMetaData
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
index 606b5996480..51ba17c270c 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.driver.executor;
import lombok.Getter;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawExecutor;
@@ -51,7 +51,7 @@ public final class DriverExecutor implements AutoCloseable {
regularExecutor = new DriverJDBCExecutor(connection.getDatabaseName(),
connection.getContextManager(), jdbcExecutor);
rawExecutor = new RawExecutor(executorEngine,
connection.getDatabaseConnectionManager().getConnectionContext());
ShardingSphereDatabase database =
metaDataContexts.getMetaData().getDatabase(connection.getDatabaseName());
- String schemaName =
DatabaseTypeEngine.getDefaultSchemaName(database.getProtocolType(),
connection.getDatabaseName());
+ String schemaName =
DatabaseTypeFactory.getDefaultSchemaName(database.getProtocolType(),
connection.getDatabaseName());
sqlFederationEngine = new
SQLFederationEngine(connection.getDatabaseName(), schemaName,
metaDataContexts.getMetaData(), metaDataContexts.getStatistics(), jdbcExecutor);
trafficExecutor = new TrafficExecutor();
}
diff --git
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
index 39633df2caa..a3974e9f082 100644
---
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
+++
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.infra.binder.context.type.IndexAvailable;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.datasource.state.DataSourceStateManager;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -180,7 +181,7 @@ public final class SingleRule implements DatabaseRule,
DataNodeContainedRule, Ta
private Collection<QualifiedTable> getQualifiedTables(final
ShardingSphereDatabase database, final DatabaseType databaseType, final
Collection<SimpleTableSegment> tableSegments) {
Collection<QualifiedTable> result = new LinkedList<>();
- String schemaName =
DatabaseTypeEngine.getDefaultSchemaName(databaseType, database.getName());
+ String schemaName =
DatabaseTypeFactory.getDefaultSchemaName(databaseType, database.getName());
for (SimpleTableSegment each : tableSegments) {
String actualSchemaName = each.getOwner().map(optional ->
optional.getIdentifier().getValue()).orElse(schemaName);
result.add(new QualifiedTable(actualSchemaName,
each.getTableName().getIdentifier().getValue()));
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
index 3f794234086..9fbd08e6c04 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
@@ -20,9 +20,9 @@ package
org.apache.shardingsphere.single.distsql.handler.update;
import
org.apache.shardingsphere.dialect.exception.syntax.table.TableExistsException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.exception.InvalidDataNodesFormatException;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
@@ -51,7 +51,7 @@ public final class LoadSingleTableStatementUpdater implements
RuleDefinitionCrea
@Override
public void checkSQLStatement(final ShardingSphereDatabase database, final
LoadSingleTableStatement sqlStatement, final SingleRuleConfiguration
currentRuleConfig) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(database.getProtocolType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(database.getProtocolType(),
database.getName());
checkDuplicatedTables(database, sqlStatement, defaultSchemaName);
checkStorageUnits(database, sqlStatement);
checkActualTableExist(database, sqlStatement, defaultSchemaName);
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableStatementUpdater.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableStatementUpdater.java
index b817c273877..55488e22046 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableStatementUpdater.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableStatementUpdater.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.dialect.exception.syntax.table.NoSuchTableExcep
import
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
import
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionAlterUpdater;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
@@ -76,7 +76,7 @@ public final class UnloadSingleTableStatementUpdater
implements RuleDefinitionAl
}
private Collection<String> getAllTableNames(final ShardingSphereDatabase
database) {
- String defaultSchemaName =
DatabaseTypeEngine.getDefaultSchemaName(database.getProtocolType(),
database.getName());
+ String defaultSchemaName =
DatabaseTypeFactory.getDefaultSchemaName(database.getProtocolType(),
database.getName());
return
database.getSchema(defaultSchemaName).getTables().values().stream().map(ShardingSphereTable::getName).collect(Collectors.toList());
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
index ee8abf3e0c2..31e8070c052 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
@@ -21,8 +21,9 @@ import lombok.Getter;
import
org.apache.shardingsphere.dialect.exception.transaction.TableModifyInTransactionException;
import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
+import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
import
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupReportContext;
@@ -42,7 +43,6 @@ import
org.apache.shardingsphere.infra.rule.identifier.type.RawExecutionRule;
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import
org.apache.shardingsphere.infra.session.connection.transaction.TransactionConnectionContext;
import org.apache.shardingsphere.infra.session.query.QueryContext;
-import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -103,7 +103,7 @@ public final class ProxySQLExecutor {
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
String databaseName =
databaseConnectionManager.getConnectionSession().getDatabaseName();
String schemaName =
queryContext.getSqlStatementContext().getTablesContext().getSchemaName()
- .orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(queryContext.getSqlStatementContext().getDatabaseType(),
databaseName));
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(queryContext.getSqlStatementContext().getDatabaseType(),
databaseName));
sqlFederationEngine = new SQLFederationEngine(databaseName,
schemaName, metaDataContexts.getMetaData(), metaDataContexts.getStatistics(),
jdbcExecutor);
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetaDataExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetaDataExecutor.java
index 53b9411f10d..a871bc1d76f 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetaDataExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetaDataExecutor.java
@@ -21,7 +21,7 @@ import com.google.common.base.Strings;
import
org.apache.shardingsphere.dialect.exception.syntax.database.NoDatabaseSelectedException;
import
org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException;
import
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTableMetaDataStatement;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
@@ -48,7 +48,7 @@ public final class ShowTableMetaDataExecutor implements
ConnectionSessionRequire
@Override
public Collection<LocalDataQueryResultRow> getRows(final
ShardingSphereMetaData metaData, final ConnectionSession connectionSession,
final ShowTableMetaDataStatement sqlStatement) {
String databaseName = getDatabaseName(connectionSession, sqlStatement);
- String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(connectionSession.getProtocolType(),
connectionSession.getDatabaseName());
+ String defaultSchema =
DatabaseTypeFactory.getDefaultSchemaName(connectionSession.getProtocolType(),
connectionSession.getDatabaseName());
ShardingSphereSchema schema =
ProxyContext.getInstance().getDatabase(databaseName).getSchema(defaultSchema);
return schema.getAllTableNames().stream().filter(each ->
sqlStatement.getTableNames().contains(each))
.map(each -> buildTableRows(databaseName, schema,
each)).flatMap(Collection::stream).collect(Collectors.toList());
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataUpdater.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataUpdater.java
index 918c856ca72..fdd6e4bb902 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataUpdater.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshTableMetaDataUpdater.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDataba
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.EmptyStorageUnitException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.RefreshTableMetaDataStatement;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -82,7 +82,7 @@ public final class RefreshTableMetaDataUpdater implements
ConnectionSessionRequi
private String getSchemaName(final String databaseName, final
RefreshTableMetaDataStatement sqlStatement, final ConnectionSession
connectionSession) {
return sqlStatement.getSchemaName().isPresent()
? sqlStatement.getSchemaName().get()
- :
DatabaseTypeEngine.getDefaultSchemaName(connectionSession.getProtocolType(),
databaseName);
+ :
DatabaseTypeFactory.getDefaultSchemaName(connectionSession.getProtocolType(),
databaseName);
}
@Override
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
index d563f2a3d63..d9322c9c340 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
@@ -23,15 +23,15 @@ import
org.apache.shardingsphere.dialect.exception.syntax.database.NoDatabaseSel
import
org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException;
import
org.apache.shardingsphere.distsql.parser.statement.rul.sql.PreviewStatement;
import
org.apache.shardingsphere.infra.binder.context.aware.CursorDefinitionAware;
-import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.ddl.CursorStatementContext;
import org.apache.shardingsphere.infra.binder.context.type.CursorAvailable;
+import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutorExceptionHandler;
@@ -105,7 +105,8 @@ public final class PreviewExecutor implements
ConnectionSessionRequiredRULExecut
ShardingSphereDatabase database =
ProxyContext.getInstance().getDatabase(connectionSession.getDatabaseName());
ShardingSpherePreconditions.checkState(database.isComplete(), () ->
new RuleNotExistedException(connectionSession.getDatabaseName()));
ConfigurationProperties props =
metaDataContexts.getMetaData().getProps();
- String schemaName =
queryContext.getSqlStatementContext().getTablesContext().getSchemaName().orElseGet(()
-> DatabaseTypeEngine.getDefaultSchemaName(database.getProtocolType(),
databaseName));
+ String schemaName =
queryContext.getSqlStatementContext().getTablesContext().getSchemaName()
+ .orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(database.getProtocolType(),
databaseName));
SQLFederationEngine sqlFederationEngine = new
SQLFederationEngine(databaseName, schemaName, metaDataContexts.getMetaData(),
metaDataContexts.getStatistics(),
new
JDBCExecutor(BackendExecutorContext.getInstance().getExecutorEngine(),
connectionSession.getConnectionContext()));
Collection<ExecutionUnit> executionUnits =
isUseFederation(queryContext, metaDataContexts, connectionSession,
sqlFederationEngine)
diff --git
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
index 7dbbb68476f..380e2a093ae 100644
---
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
+++
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
@@ -29,13 +29,13 @@ import
org.apache.shardingsphere.db.protocol.mysql.packet.command.query.binary.p
import
org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLEofPacket;
import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
import
org.apache.shardingsphere.dialect.mysql.exception.UnsupportedPreparedStatementException;
-import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -164,7 +164,7 @@ public final class MySQLComStmtPrepareExecutor implements
CommandExecutor {
String databaseName =
sqlStatementContext.getTablesContext().getDatabaseName().orElseGet(connectionSession::getDefaultDatabaseName);
ShardingSphereDatabase database =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName);
return
sqlStatementContext.getTablesContext().getSchemaName().map(database::getSchema)
- .orElseGet(() ->
database.getSchema(DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName())));
+ .orElseGet(() ->
database.getSchema(DatabaseTypeFactory.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName())));
}
private int calculateColumnDefinitionFlag(final ShardingSphereColumn
column) {
diff --git
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
index d0f5c60ae9f..669b54d772a 100644
---
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
+++
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java
@@ -26,10 +26,10 @@ import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.Pos
import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLColumnType;
import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.describe.PostgreSQLComDescribePacket;
import
org.apache.shardingsphere.dialect.postgresql.exception.metadata.ColumnNotFoundException;
-import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
@@ -168,7 +168,7 @@ public final class PostgreSQLComDescribeExecutor implements
CommandExecutor {
private ShardingSphereTable getTableFromMetaData(final String
databaseName, final InsertStatement insertStatement, final String
logicTableName) {
ShardingSphereDatabase database =
ProxyContext.getInstance().getDatabase(databaseName);
String schemaName = insertStatement.getTable().getOwner().map(optional
-> optional.getIdentifier()
- .getValue()).orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(database.getProtocolType(),
databaseName));
+ .getValue()).orElseGet(() ->
DatabaseTypeFactory.getDefaultSchemaName(database.getProtocolType(),
databaseName));
return database.getSchema(schemaName).getTable(logicTableName);
}
diff --git
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
index c1ce02c0f72..44968982327 100644
---
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
+++
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
@@ -20,15 +20,15 @@ package org.apache.shardingsphere.test.it.rewrite.engine;
import com.google.common.base.Preconditions;
import
org.apache.shardingsphere.infra.binder.context.aware.CursorDefinitionAware;
import org.apache.shardingsphere.infra.binder.context.aware.ParameterAware;
-import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.ddl.CursorStatementContext;
+import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
import
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDatabaseConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -121,7 +121,7 @@ public abstract class SQLRewriterIT {
Map<String, DatabaseType> storageTypes =
createStorageTypes(databaseConfig, databaseType);
ShardingSphereResourceMetaData resourceMetaData =
mock(ShardingSphereResourceMetaData.class);
when(resourceMetaData.getStorageTypes()).thenReturn(storageTypes);
- String schemaName =
DatabaseTypeEngine.getDefaultSchemaName(databaseType,
DefaultDatabase.LOGIC_NAME);
+ String schemaName =
DatabaseTypeFactory.getDefaultSchemaName(databaseType,
DefaultDatabase.LOGIC_NAME);
SQLStatementParserEngine sqlStatementParserEngine = new
SQLStatementParserEngine(TypedSPILoader.getService(DatabaseType.class,
testParams.getDatabaseType()),
sqlParserRule.getSqlStatementCache(),
sqlParserRule.getParseTreeCache(), sqlParserRule.isSqlCommentParseEnabled());
SQLStatement sqlStatement =
sqlStatementParserEngine.parse(testParams.getInputSQL(), false);