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 d796c6bd55c Refactor PostgreSQLComDescribeExecutor to use 
ShardingSphereMetaData for SQL statement binding (#35513)
d796c6bd55c is described below

commit d796c6bd55cee2b8fe66643a83655defc42d3e7b
Author: Liang Zhang <[email protected]>
AuthorDate: Sun May 25 22:46:32 2025 +0800

    Refactor PostgreSQLComDescribeExecutor to use ShardingSphereMetaData for 
SQL statement binding (#35513)
---
 .../describe/PostgreSQLComDescribeExecutor.java        | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

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 03e2f59b58b..635c88e14e2 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
@@ -30,17 +30,17 @@ import 
org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
 import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import 
org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperationException;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.column.ColumnNotFoundException;
+import 
org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperationException;
 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;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 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.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.identifier.ShardingSphereIdentifier;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
-import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import 
org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -236,17 +236,17 @@ public final class PostgreSQLComDescribeExecutor 
implements CommandExecutor {
     }
     
     private void tryDescribePreparedStatementByJDBC(final 
PostgreSQLServerPreparedStatement logicPreparedStatement) throws SQLException {
-        MetaDataContexts metaDataContexts = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
-        String databaseName = connectionSession.getUsedDatabaseName();
-        SQLStatementContext sqlStatementContext = new 
SQLBindEngine(metaDataContexts.getMetaData(), 
connectionSession.getCurrentDatabaseName(), 
logicPreparedStatement.getHintValueContext())
-                
.bind(logicPreparedStatement.getSqlStatementContext().getSqlStatement(), 
Collections.emptyList());
+        ShardingSphereMetaData metaData = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData();
+        SQLStatementContext sqlStatementContext = new SQLBindEngine(metaData, 
connectionSession.getCurrentDatabaseName(), 
logicPreparedStatement.getHintValueContext())
+                
.bind(logicPreparedStatement.getSqlStatementContext().getDatabaseType(), 
logicPreparedStatement.getSqlStatementContext().getSqlStatement(), 
Collections.emptyList());
         QueryContext queryContext = new QueryContext(sqlStatementContext, 
logicPreparedStatement.getSql(), Collections.emptyList(), 
logicPreparedStatement.getHintValueContext(),
-                connectionSession.getConnectionContext(), 
metaDataContexts.getMetaData());
+                connectionSession.getConnectionContext(), metaData);
         ExecutionContext executionContext =
-                new KernelProcessor().generateExecutionContext(queryContext, 
metaDataContexts.getMetaData().getGlobalRuleMetaData(), 
metaDataContexts.getMetaData().getProps());
+                new KernelProcessor().generateExecutionContext(queryContext, 
metaData.getGlobalRuleMetaData(), metaData.getProps());
         ExecutionUnit executionUnitSample = 
executionContext.getExecutionUnits().iterator().next();
         ProxyDatabaseConnectionManager databaseConnectionManager = 
connectionSession.getDatabaseConnectionManager();
-        Connection connection = 
databaseConnectionManager.getConnections(databaseName, 
executionUnitSample.getDataSourceName(), 0, 1, 
ConnectionMode.CONNECTION_STRICTLY).iterator().next();
+        Connection connection = databaseConnectionManager.getConnections(
+                connectionSession.getUsedDatabaseName(), 
executionUnitSample.getDataSourceName(), 0, 1, 
ConnectionMode.CONNECTION_STRICTLY).iterator().next();
         try (PreparedStatement actualPreparedStatement = 
connection.prepareStatement(executionUnitSample.getSqlUnit().getSql())) {
             populateParameterTypes(logicPreparedStatement, 
actualPreparedStatement);
             populateColumnTypes(logicPreparedStatement, 
actualPreparedStatement);

Reply via email to