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 c0dce9d44e2 Refactor QueryContext (#23707)
c0dce9d44e2 is described below
commit c0dce9d44e2ff7b0eaa4e84cfe0a897f3ecba98c
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jan 23 17:19:23 2023 +0800
Refactor QueryContext (#23707)
* Refactor QueryContext
---
.../shardingsphere/infra/binder/QueryContext.java | 18 +++++++++---------
.../proxy/backend/session/ConnectionSession.java | 2 +-
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/QueryContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/QueryContext.java
index 3af8c7354a3..ad7f74df4fe 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/QueryContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/QueryContext.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.infra.binder;
+import lombok.AccessLevel;
import lombok.Getter;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
@@ -37,9 +38,10 @@ public final class QueryContext {
private final List<Object> parameters;
- private HintValueContext hintValueContext;
+ @Getter(AccessLevel.NONE)
+ private final String databaseName;
- private String sqlStatementDatabaseName;
+ private final HintValueContext hintValueContext;
public QueryContext(final SQLStatementContext<?> sqlStatementContext,
final String sql, final List<Object> params) {
this(sqlStatementContext, sql, params, new HintValueContext());
@@ -49,18 +51,16 @@ public final class QueryContext {
this.sqlStatementContext = sqlStatementContext;
this.sql = sql;
parameters = params;
+ databaseName = sqlStatementContext instanceof TableAvailable ?
((TableAvailable)
sqlStatementContext).getTablesContext().getDatabaseName().orElse(null) : null;
this.hintValueContext = hintValueContext;
- if (sqlStatementContext instanceof TableAvailable) {
- ((TableAvailable)
sqlStatementContext).getTablesContext().getDatabaseName().ifPresent(optional ->
sqlStatementDatabaseName = optional);
- }
}
/**
- * Find SQL statement database name.
+ * Get database name from SQL statement.
*
- * @return database name
+ * @return got database name
*/
- public Optional<String> findSqlStatementDatabaseName() {
- return Optional.ofNullable(sqlStatementDatabaseName);
+ public Optional<String> getDatabaseNameFromSQLStatement() {
+ return Optional.ofNullable(databaseName);
}
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
index 29e1fe2fcc4..ae4d3956d02 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
@@ -101,7 +101,7 @@ public final class ConnectionSession {
* @return database name
*/
public String getDatabaseName() {
- return null == queryContext ? databaseName :
queryContext.findSqlStatementDatabaseName().orElse(databaseName);
+ return null == queryContext ? databaseName :
queryContext.getDatabaseNameFromSQLStatement().orElse(databaseName);
}
/**