This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 a23d7a80208 Fix no database selected exception in the query sql 
(#32675)
a23d7a80208 is described below

commit a23d7a8020884204383865b90cbe30001be764ab
Author: ZhangCheng <[email protected]>
AuthorDate: Mon Aug 26 09:40:13 2024 +0800

    Fix no database selected exception in the query sql (#32675)
---
 .../shardingsphere/proxy/backend/connector/ProxySQLExecutor.java | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

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 ba4060adcd6..0e43235e9b1 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
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.connector;
 
+import com.google.common.base.Strings;
 import lombok.Getter;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
@@ -104,9 +105,11 @@ public final class ProxySQLExecutor {
         regularExecutor = new ProxyJDBCExecutor(type, 
databaseConnectionManager.getConnectionSession(), databaseConnector, 
jdbcExecutor);
         rawExecutor = new RawExecutor(executorEngine, connectionContext);
         MetaDataContexts metaDataContexts = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
-        String usedDatabaseName = 
databaseConnectionManager.getConnectionSession().getUsedDatabaseName();
-        String usedSchemaName = 
getSchemaName(queryContext.getSqlStatementContext(), 
metaDataContexts.getMetaData().getDatabase(usedDatabaseName));
-        sqlFederationEngine = new SQLFederationEngine(usedDatabaseName, 
usedSchemaName, metaDataContexts.getMetaData(), 
metaDataContexts.getStatistics(), jdbcExecutor);
+        String currentDatabaseName =
+                
Strings.isNullOrEmpty(databaseConnectionManager.getConnectionSession().getCurrentDatabaseName())
 ? databaseConnectionManager.getConnectionSession().getUsedDatabaseName()
+                        : 
databaseConnectionManager.getConnectionSession().getCurrentDatabaseName();
+        String currentSchemaName = 
getSchemaName(queryContext.getSqlStatementContext(), 
metaDataContexts.getMetaData().getDatabase(currentDatabaseName));
+        sqlFederationEngine = new SQLFederationEngine(currentDatabaseName, 
currentSchemaName, metaDataContexts.getMetaData(), 
metaDataContexts.getStatistics(), jdbcExecutor);
     }
     
     private String getSchemaName(final SQLStatementContext 
sqlStatementContext, final ShardingSphereDatabase database) {

Reply via email to