This is an automated email from the ASF dual-hosted git repository.
tuichenchuxin 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 0781787897e Support cursor statement when call proxy through raw jdbc
(#18220)
0781787897e is described below
commit 0781787897efc38a63fef212166b9b8cbe13fc21
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Tue Jun 7 17:58:39 2022 +0800
Support cursor statement when call proxy through raw jdbc (#18220)
---
.../proxy/frontend/postgresql/command/query/extended/JDBCPortal.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/JDBCPortal.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/JDBCPortal.java
index db6d6faed89..0c7c4cb8dc8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/JDBCPortal.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/JDBCPortal.java
@@ -39,6 +39,7 @@ import
org.apache.shardingsphere.db.protocol.postgresql.packet.identifier.Postgr
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.binder.type.CursorAvailable;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.SystemSchemaBuilderRule;
@@ -105,7 +106,7 @@ public final class JDBCPortal implements Portal<Void> {
String databaseName =
backendConnection.getConnectionSession().getDefaultDatabaseName();
SQLStatementContext<?> sqlStatementContext =
SQLStatementContextFactory.newInstance(
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases(),
parameters, sqlStatement, databaseName);
- if
(containsSystemTable(sqlStatementContext.getTablesContext().getTableNames())) {
+ if
(containsSystemTable(sqlStatementContext.getTablesContext().getTableNames()) ||
sqlStatementContext instanceof CursorAvailable) {
databaseCommunicationEngine = null;
DatabaseType databaseType =
ProxyContext.getInstance().getDatabase(databaseName).getResource().getDatabaseType();
textProtocolBackendHandler =
TextProtocolBackendHandlerFactory.newInstance(databaseType,