This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 76d85ed18c5 Remove DatabaseTypeEngine.getTrunkDatabaseTypeName (#27322)
76d85ed18c5 is described below
commit 76d85ed18c584d73d42a3dab87b47834ebb9418e
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 20 14:33:40 2023 +0800
Remove DatabaseTypeEngine.getTrunkDatabaseTypeName (#27322)
---
.../shardingsphere/infra/database/DatabaseTypeEngine.java | 10 ----------
.../shardingsphere/infra/database/DatabaseTypeEngineTest.java | 11 -----------
.../jdbc/core/statement/ShardingSpherePreparedStatement.java | 7 +++----
.../driver/jdbc/core/statement/ShardingSphereStatement.java | 7 +++----
.../shardingsphere/globalclock/core/rule/GlobalClockRule.java | 4 +++-
.../sqlfederation/compiler/it/SQLStatementCompilerIT.java | 7 ++-----
.../backend/handler/distsql/rul/sql/PreviewExecutor.java | 4 ++--
.../query/extended/parse/PostgreSQLComParseExecutor.java | 5 +++--
8 files changed, 16 insertions(+), 39 deletions(-)
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 497641fddac..8351272fb57 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
@@ -143,16 +143,6 @@ public final class DatabaseTypeEngine {
return databaseType.getTrunkDatabaseType().orElse(databaseType);
}
- /**
- * Get name of trunk database type.
- *
- * @param databaseType database type
- * @return name of trunk database type
- */
- public static String getTrunkDatabaseTypeName(final DatabaseType
databaseType) {
- return
databaseType.getTrunkDatabaseType().map(DatabaseType::getType).orElse(databaseType.getType());
- }
-
/**
* Get default schema name.
*
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 814c865b76d..3c3046c9c58 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,7 +21,6 @@ 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.mariadb.MariaDBDatabaseType;
import org.apache.shardingsphere.infra.database.mysql.MySQLDatabaseType;
import
org.apache.shardingsphere.infra.database.postgresql.PostgreSQLDatabaseType;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
@@ -131,16 +130,6 @@ class DatabaseTypeEngineTest {
assertThat(DatabaseTypeEngine.getTrunkDatabaseType("H2").getType(),
is("MySQL"));
}
- @Test
- void assertGetTrunkDatabaseTypeNameWithTrunkDatabaseType() {
- assertThat(DatabaseTypeEngine.getTrunkDatabaseTypeName(new
MySQLDatabaseType()), is("MySQL"));
- }
-
- @Test
- void assertGetTrunkDatabaseTypeNameWithBranchDatabaseType() {
- assertThat(DatabaseTypeEngine.getTrunkDatabaseTypeName(new
MariaDBDatabaseType()), is("MySQL"));
- }
-
@Test
void assertGetDefaultSchemaName() {
DatabaseType schemaSupportDatabaseType =
TypedSPILoader.getService(DatabaseType.class, "openGauss");
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index da6bf408bf5..310804e6c2d 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -40,9 +40,8 @@ import
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementConte
import
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
-import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.mysql.MySQLDatabaseType;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
import
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
@@ -194,8 +193,8 @@ public final class ShardingSpherePreparedStatement extends
AbstractPreparedState
this.sql = sqlParserRule.isSqlCommentParseEnabled() ? sql :
SQLHintUtils.removeHint(sql);
statements = new ArrayList<>();
parameterSets = new ArrayList<>();
- SQLParserEngine sqlParserEngine = sqlParserRule.getSQLParserEngine(
-
DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabase(connection.getDatabaseName()).getProtocolType()));
+ DatabaseType protocolType =
metaDataContexts.getMetaData().getDatabase(connection.getDatabaseName()).getProtocolType();
+ SQLParserEngine sqlParserEngine =
sqlParserRule.getSQLParserEngine(protocolType.getTrunkDatabaseType().orElse(protocolType).getType());
sqlStatement = sqlParserEngine.parse(this.sql, true);
sqlStatementContext =
SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData(),
sqlStatement, connection.getDatabaseName());
parameterMetaData = new ShardingSphereParameterMetaData(sqlStatement);
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 333613ee1a2..3e502e16757 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -40,9 +40,8 @@ import
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementConte
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
-import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.mysql.MySQLDatabaseType;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
import
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
@@ -495,8 +494,8 @@ public final class ShardingSphereStatement extends
AbstractStatementAdapter {
private QueryContext createQueryContext(final String originSQL) {
SQLParserRule sqlParserRule =
metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
String sql = sqlParserRule.isSqlCommentParseEnabled() ? originSQL :
SQLHintUtils.removeHint(originSQL);
- SQLStatement sqlStatement = sqlParserRule.getSQLParserEngine(
-
DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabase(connection.getDatabaseName()).getProtocolType())).parse(sql,
false);
+ DatabaseType protocolType =
metaDataContexts.getMetaData().getDatabase(connection.getDatabaseName()).getProtocolType();
+ SQLStatement sqlStatement =
sqlParserRule.getSQLParserEngine(protocolType.getTrunkDatabaseType().orElse(protocolType).getType()).parse(sql,
false);
SQLStatementContext sqlStatementContext =
SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData(),
sqlStatement, connection.getDatabaseName());
HintValueContext hintValueContext =
sqlParserRule.isSqlCommentParseEnabled() ? new HintValueContext() :
SQLHintUtils.extractHint(originSQL).orElseGet(HintValueContext::new);
return new QueryContext(sqlStatementContext, sql,
Collections.emptyList(), hintValueContext);
diff --git
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
index bb3c0f52efc..99ec4a0fd76 100644
---
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
@@ -21,6 +21,7 @@ import lombok.Getter;
import
org.apache.shardingsphere.globalclock.api.config.GlobalClockRuleConfiguration;
import org.apache.shardingsphere.globalclock.core.provider.GlobalClockProvider;
import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.identifier.scope.GlobalRule;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -50,7 +51,8 @@ public final class GlobalClockRule implements GlobalRule {
private Properties getProps(final Map<String, ShardingSphereDatabase>
databases) {
Properties result = new Properties();
- result.setProperty("trunkType",
DatabaseTypeEngine.getTrunkDatabaseTypeName(DatabaseTypeEngine.getStorageType(getDataSources(databases))));
+ DatabaseType storageType =
DatabaseTypeEngine.getStorageType(getDataSources(databases));
+ result.setProperty("trunkType",
storageType.getTrunkDatabaseType().orElse(storageType).getType());
result.setProperty("enabled",
String.valueOf(configuration.isEnabled()));
result.setProperty("type", configuration.getType());
result.setProperty("provider", configuration.getProvider());
diff --git
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/it/SQLStatementCompilerIT.java
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/it/SQLStatementCompilerIT.java
index e42366a6585..c159756fd7a 100644
---
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/it/SQLStatementCompilerIT.java
+++
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/it/SQLStatementCompilerIT.java
@@ -27,9 +27,7 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
import org.apache.calcite.rex.RexBuilder;
import org.apache.calcite.sql.validate.SqlValidator;
import org.apache.calcite.sql2rel.SqlToRelConverter;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
-import org.apache.shardingsphere.infra.database.h2.H2DatabaseType;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -247,9 +245,8 @@ class SQLStatementCompilerIT {
@ParameterizedTest(name = "{0}")
@ArgumentsSource(TestCaseArgumentsProvider.class)
void assertCompile(final TestCase testcase) {
- String databaseType = DatabaseTypeEngine.getTrunkDatabaseTypeName(new
H2DatabaseType());
- SQLStatement sqlStatement =
sqlParserRule.getSQLParserEngine(databaseType).parse(testcase.getSql(), false);
- String actual = sqlStatementCompiler.compile(sqlStatement,
databaseType).getPhysicalPlan().explain().replaceAll("[\r\n]", " ");
+ SQLStatement sqlStatement =
sqlParserRule.getSQLParserEngine("MySQL").parse(testcase.getSql(), false);
+ String actual = sqlStatementCompiler.compile(sqlStatement,
"MySQL").getPhysicalPlan().explain().replaceAll("[\r\n]", " ");
assertThat(actual, is(testcase.getAssertion().getExpectedResult()));
}
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 03758c1b107..4fe2c2d37c2 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
@@ -90,11 +90,11 @@ public final class PreviewExecutor implements
ConnectionSessionRequiredRULExecut
public Collection<LocalDataQueryResultRow> getRows(final
ShardingSphereMetaData metaData, final ConnectionSession connectionSession,
final PreviewStatement sqlStatement) throws SQLException {
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
String databaseName = getDatabaseName(connectionSession);
- String databaseType =
DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabase(databaseName).getProtocolType());
ShardingSphereRuleMetaData globalRuleMetaData =
metaDataContexts.getMetaData().getGlobalRuleMetaData();
SQLParserRule sqlParserRule =
globalRuleMetaData.getSingleRule(SQLParserRule.class);
String sql = sqlParserRule.isSqlCommentParseEnabled() ?
sqlStatement.getSql() : SQLHintUtils.removeHint(sqlStatement.getSql());
- SQLStatement previewedStatement =
sqlParserRule.getSQLParserEngine(databaseType).parse(sql, false);
+ DatabaseType protocolType =
metaDataContexts.getMetaData().getDatabase(databaseName).getProtocolType();
+ SQLStatement previewedStatement =
sqlParserRule.getSQLParserEngine(protocolType.getTrunkDatabaseType().orElse(protocolType).getType()).parse(sql,
false);
SQLStatementContext sqlStatementContext =
SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData(),
previewedStatement, databaseName);
HintValueContext hintValueContext =
sqlParserRule.isSqlCommentParseEnabled() ? new HintValueContext() :
SQLHintUtils.extractHint(sqlStatement.getSql()).orElseGet(HintValueContext::new);
QueryContext queryContext = new QueryContext(sqlStatementContext, sql,
Collections.emptyList(), hintValueContext);
diff --git
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
index 73aa993f23c..6ac3fe390cf 100644
---
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
+++
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.ext
import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import org.apache.shardingsphere.infra.parser.SQLParserEngine;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
@@ -83,7 +83,8 @@ public final class PostgreSQLComParseExecutor implements
CommandExecutor {
private SQLParserEngine createShardingSphereSQLParserEngine(final String
databaseName) {
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
SQLParserRule sqlParserRule =
metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
- return
sqlParserRule.getSQLParserEngine(DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabase(databaseName).getProtocolType()));
+ DatabaseType protocolType =
metaDataContexts.getMetaData().getDatabase(databaseName).getProtocolType();
+ return
sqlParserRule.getSQLParserEngine(protocolType.getTrunkDatabaseType().orElse(protocolType).getType());
}
private String convertSQLToJDBCStyle(final List<ParameterMarkerSegment>
parameterMarkerSegments, final String sql) {