This is an automated email from the ASF dual-hosted git repository. zhangliang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new b034788be66 Refactor MySQLComFieldListPacketExecutor to use database type consistently (#35517) b034788be66 is described below commit b034788be66d937e6f61f90107df38639e589f5c Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Sun May 25 23:22:28 2025 +0800 Refactor MySQLComFieldListPacketExecutor to use database type consistently (#35517) * Refactor PostgreSQLBatchedStatementsExecutor to use database type consistently * Refactor MySQLComFieldListPacketExecutor to use database type consistently * Refactor MySQLComFieldListPacketExecutor to use database type consistently --- .../query/text/fieldlist/MySQLComFieldListPacketExecutor.java | 2 +- .../query/extended/bind/OpenGaussComBatchBindExecutorTest.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java index 50846b8c92b..1eeaeb33639 100644 --- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java +++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java @@ -71,7 +71,7 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor { SQLParserRule sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class); SQLStatement sqlStatement = sqlParserRule.getSQLParserEngine(databaseType).parse(sql, false); HintValueContext hintValueContext = SQLHintUtils.extractHint(sql); - SQLStatementContext sqlStatementContext = new SQLBindEngine(metaDataContexts.getMetaData(), currentDatabaseName, hintValueContext).bind(sqlStatement, Collections.emptyList()); + SQLStatementContext sqlStatementContext = new SQLBindEngine(metaDataContexts.getMetaData(), currentDatabaseName, hintValueContext).bind(databaseType, sqlStatement, Collections.emptyList()); ProxyDatabaseConnectionManager databaseConnectionManager = connectionSession.getDatabaseConnectionManager(); QueryContext queryContext = new QueryContext(sqlStatementContext, sql, Collections.emptyList(), hintValueContext, connectionSession.getConnectionContext(), metaDataContexts.getMetaData()); databaseConnector = DatabaseConnectorFactory.getInstance().newInstance(queryContext, databaseConnectionManager, false); diff --git a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java index ee9f15f6876..317517987b8 100644 --- a/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java +++ b/proxy/frontend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java @@ -76,8 +76,9 @@ import static org.mockito.Mockito.when; @StaticMockSettings(ProxyContext.class) class OpenGaussComBatchBindExecutorTest { - private final ShardingSphereSQLParserEngine parserEngine = new ShardingSphereSQLParserEngine( - TypedSPILoader.getService(DatabaseType.class, "openGauss"), new CacheOption(2000, 65535L), new CacheOption(128, 1024L)); + private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "openGauss"); + + private final ShardingSphereSQLParserEngine parserEngine = new ShardingSphereSQLParserEngine(databaseType, new CacheOption(2000, 65535L), new CacheOption(128, 1024L)); @Test void assertExecute() throws SQLException { @@ -85,6 +86,7 @@ class OpenGaussComBatchBindExecutorTest { String sql = "insert into bmsql (id) values (?)"; SQLStatement sqlStatement = parserEngine.parse(sql, false); SQLStatementContext sqlStatementContext = mock(InsertStatementContext.class); + when(sqlStatementContext.getDatabaseType()).thenReturn(databaseType); when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement); ConnectionSession connectionSession = mockConnectionSession(); PostgreSQLServerPreparedStatement serverPreparedStatement = new PostgreSQLServerPreparedStatement(sql, sqlStatementContext, new HintValueContext(), Collections.emptyList(), @@ -148,7 +150,7 @@ class OpenGaussComBatchBindExecutorTest { ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS); when(result.getResourceMetaData().getAllInstanceDataSourceNames()).thenReturn(Collections.singleton("foo_ds")); StorageUnit storageUnit = mock(StorageUnit.class, RETURNS_DEEP_STUBS); - when(storageUnit.getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class, "openGauss")); + when(storageUnit.getStorageType()).thenReturn(databaseType); when(result.getResourceMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds", storageUnit)); when(result.getRuleMetaData()).thenReturn(new RuleMetaData(Collections.emptyList())); when(result.containsSchema("public")).thenReturn(true);