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) {

Reply via email to