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 f969c62fe94 Add DefaultSessionVariableHandler (#24251)
f969c62fe94 is described below
commit f969c62fe94fc5ec69b11c84ae7a3167ceaf5d87
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 20 10:11:16 2023 +0800
Add DefaultSessionVariableHandler (#24251)
---
.../handler/admin/executor/DefaultSessionVariableHandler.java | 5 +++++
.../backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java | 4 ++--
.../admin/postgresql/PostgreSQLResetVariableAdminExecutor.java | 3 +--
.../handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java | 3 +--
...ere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler | 1 +
...backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler | 1 +
.../admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java | 4 +---
.../admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java | 4 +---
8 files changed, 13 insertions(+), 12 deletions(-)
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
index ca77969baf5..2f643d93e92 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultSessionVariableHandler.java
@@ -44,4 +44,9 @@ public abstract class DefaultSessionVariableHandler
implements SessionVariableHa
log.debug("Set statement {} = {} was discarded.", variableName,
assignValue);
}
}
+
+ @Override
+ public final boolean isDefault() {
+ return true;
+ }
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
index a076b026cb9..d517558dfb1 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/MySQLSetVariableAdminExecutor.java
@@ -52,8 +52,8 @@ public final class MySQLSetVariableAdminExecutor implements
DatabaseAdminExecuto
@Override
public void execute(final ConnectionSession connectionSession) throws
SQLException {
Map<String, String> sessionVariables = extractSessionVariables();
- Map<String, MySQLSessionVariableHandler> handlers =
sessionVariables.keySet().stream().collect(Collectors.toMap(Function.identity(),
- value ->
TypedSPILoader.findService(MySQLSessionVariableHandler.class,
value).orElseGet(DefaultMySQLSessionVariableHandler::new)));
+ Map<String, MySQLSessionVariableHandler> handlers =
sessionVariables.keySet().stream()
+ .collect(Collectors.toMap(Function.identity(), value ->
TypedSPILoader.getService(MySQLSessionVariableHandler.class, value)));
for (String each : handlers.keySet()) {
handlers.get(each).handle(connectionSession, each,
sessionVariables.get(each));
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
index 53ab12dc1a4..f0a73339543 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutor.java
@@ -36,8 +36,7 @@ public final class PostgreSQLResetVariableAdminExecutor
implements DatabaseAdmin
@Override
public void execute(final ConnectionSession connectionSession) {
String variableName =
resetParameterStatement.getConfigurationParameter();
- PostgreSQLSessionVariableHandler variableHandler =
TypedSPILoader.findService(
- PostgreSQLSessionVariableHandler.class,
variableName).orElseGet(DefaultPostgreSQLSessionVariableHandler::new);
+ PostgreSQLSessionVariableHandler variableHandler =
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, variableName);
variableHandler.handle(connectionSession, variableName, DEFAULT);
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
index 060f0db70e6..60714ab7f02 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutor.java
@@ -37,8 +37,7 @@ public final class PostgreSQLSetVariableAdminExecutor
implements DatabaseAdminEx
VariableAssignSegment variableAssignSegment =
setStatement.getVariableAssigns().iterator().next();
String variableName =
variableAssignSegment.getVariable().getVariable().toLowerCase();
String assignValue = variableAssignSegment.getAssignValue();
- PostgreSQLSessionVariableHandler variableHandler =
TypedSPILoader.findService(
- PostgreSQLSessionVariableHandler.class,
variableName).orElseGet(DefaultPostgreSQLSessionVariableHandler::new);
+ PostgreSQLSessionVariableHandler variableHandler =
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class, variableName);
variableHandler.handle(connectionSession, variableName, assignValue);
}
}
diff --git
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
index 8f40601e2a4..cd7ac38966a 100644
---
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
+++
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.mysql.MySQLSessionVariableHandler
@@ -15,4 +15,5 @@
# limitations under the License.
#
+org.apache.shardingsphere.proxy.backend.handler.admin.mysql.DefaultMySQLSessionVariableHandler
org.apache.shardingsphere.proxy.backend.handler.admin.mysql.executor.MySQLSetCharsetExecutor
diff --git
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
index e4b1e1cf9d5..54ffdb56627 100644
---
a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
+++
b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.PostgreSQLSessionVariableHandler
@@ -15,4 +15,5 @@
# limitations under the License.
#
+org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.DefaultPostgreSQLSessionVariableHandler
org.apache.shardingsphere.proxy.backend.handler.admin.postgresql.executor.PostgreSQLSetCharsetExecutor
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
index 98add253a3a..7795414060c 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLResetVariableAdminExecutorTest.java
@@ -22,8 +22,6 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal
import org.junit.Test;
import org.mockito.MockedStatic;
-import java.util.Optional;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
@@ -35,7 +33,7 @@ public final class PostgreSQLResetVariableAdminExecutorTest {
PostgreSQLResetVariableAdminExecutor executor = new
PostgreSQLResetVariableAdminExecutor(new
PostgreSQLResetParameterStatement("key"));
try (MockedStatic<TypedSPILoader> mockStatic =
mockStatic(TypedSPILoader.class)) {
PostgreSQLSessionVariableHandler mockHandler =
mock(PostgreSQLSessionVariableHandler.class);
- mockStatic.when(() ->
TypedSPILoader.findService(PostgreSQLSessionVariableHandler.class,
"key")).thenReturn(Optional.of(mockHandler));
+ mockStatic.when(() ->
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class,
"key")).thenReturn(mockHandler);
executor.execute(null);
verify(mockHandler).handle(null, "key", "DEFAULT");
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
index 506e92e6c21..ad2479141cb 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/postgresql/PostgreSQLSetVariableAdminExecutorTest.java
@@ -24,8 +24,6 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal
import org.junit.Test;
import org.mockito.MockedStatic;
-import java.util.Optional;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
@@ -44,7 +42,7 @@ public final class PostgreSQLSetVariableAdminExecutorTest {
PostgreSQLSetVariableAdminExecutor executor = new
PostgreSQLSetVariableAdminExecutor(setStatement);
try (MockedStatic<TypedSPILoader> mockStatic =
mockStatic(TypedSPILoader.class)) {
PostgreSQLSessionVariableHandler mockHandler =
mock(PostgreSQLSessionVariableHandler.class);
- mockStatic.when(() ->
TypedSPILoader.findService(PostgreSQLSessionVariableHandler.class,
"key")).thenReturn(Optional.of(mockHandler));
+ mockStatic.when(() ->
TypedSPILoader.getService(PostgreSQLSessionVariableHandler.class,
"key")).thenReturn(mockHandler);
executor.execute(null);
verify(mockHandler).handle(null, "key", "value");
}