This is an automated email from the ASF dual-hosted git repository.
terrymanu 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 5e3c7592f34 Simplify backend firebird (#40316)
5e3c7592f34 is described below
commit 5e3c7592f34b1246cbb1760e67768adcaedd8a09
Author: Maxim Igoshin <[email protected]>
AuthorDate: Thu Oct 22 18:04:14 2026 +0300
Simplify backend firebird (#40316)
* Remove unused variable row generator from Firebird show variable executor
* Remove commented-out Firebird character sets
* Simplify mocks in Firebird proxy backend tests
* Add release note for Firebird proxy backend simplification
* Add PR link to Firebird proxy backend simplification release note
---
.../executor/FirebirdShowVariableExecutor.java | 24 ++--------------------
.../variable/charset/FirebirdCharacterSets.java | 2 --
...StatementMemoryStrictlyFetchSizeSetterTest.java | 14 ++-----------
.../admin/FirebirdAdminExecutorCreatorTest.java | 1 -
.../FirebirdSetVariableAdminExecutorTest.java | 16 +++++----------
5 files changed, 9 insertions(+), 48 deletions(-)
diff --git
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
index 68472a8b03d..8e7969c841f 100644
---
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
+++
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdShowVariableExecutor.java
@@ -33,9 +33,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.Sh
import java.sql.Types;
import java.util.Collections;
-import java.util.LinkedHashMap;
import java.util.Locale;
-import java.util.Map;
import java.util.Optional;
/**
@@ -44,13 +42,6 @@ import java.util.Optional;
@RequiredArgsConstructor
public final class FirebirdShowVariableExecutor implements
DatabaseAdminQueryExecutor {
- private static final Map<String, VariableRowDataGenerator>
VARIABLE_ROW_DATA_GENERATORS = new LinkedHashMap<>(7, 1);
-
- static {
- VARIABLE_ROW_DATA_GENERATORS.put("server_version", connectionSession
-> new String[]{"server_version", ShardingSphereVersion.VERSION, "Shows the
server version."});
- // TODO add SHOW statements support
- }
-
private final ShowStatement showStatement;
@Getter
@@ -63,18 +54,7 @@ public final class FirebirdShowVariableExecutor implements
DatabaseAdminQueryExe
public void execute(final ConnectionSession connectionSession, final
ShardingSphereMetaData metaData) {
String name =
Optional.ofNullable(showStatement.getName()).orElse("").toLowerCase(Locale.ROOT);
queryResultMetaData = new
RawQueryResultMetaData(Collections.singletonList(new
RawQueryResultColumnMetaData("", "", name, Types.VARCHAR, "VARCHAR", -1, 0)));
- VariableRowDataGenerator variableRowDataGenerator =
VARIABLE_ROW_DATA_GENERATORS.getOrDefault(name, unused -> new String[]{"", "",
""});
- mergedResult = new LocalDataMergedResult(Collections.singletonList(new
LocalDataQueryResultRow(variableRowDataGenerator.getVariable(connectionSession)[1])));
- }
-
- private interface VariableRowDataGenerator {
-
- /**
- * Get variable.
- *
- * @param connectionSession connection session
- * @return variable
- */
- Object[] getVariable(ConnectionSession connectionSession);
+ // TODO add SHOW statements support
+ mergedResult = new LocalDataMergedResult(Collections.singletonList(new
LocalDataQueryResultRow("server_version".equals(name) ?
ShardingSphereVersion.VERSION : "")));
}
}
diff --git
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
index 72dd999ffdd..c1a52dad86b 100644
---
a/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
+++
b/proxy/backend/dialect/firebird/src/main/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/variable/charset/FirebirdCharacterSets.java
@@ -33,7 +33,6 @@ public enum FirebirdCharacterSets {
ASCII(() -> StandardCharsets.US_ASCII),
BIG_5(() -> Charset.forName("BIG5")),
- // CYRL(() -> Charset.forName("CYRL")),
DOS437(() -> Charset.forName("IBM437")),
DOS737(() -> Charset.forName("IBM737")),
DOS775(() -> Charset.forName("IBM775")),
@@ -64,7 +63,6 @@ public enum FirebirdCharacterSets {
KOI8R(() -> Charset.forName("KOI8-R")),
KOI8U(() -> Charset.forName("KOI8-U")),
KSC_5601(() -> Charset.forName("EUC-KR")),
- // NEXT(() -> Charset.forName("NEXT")),
// default jvm value as described here:
https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html#how-can-i-specify-the-connection-character-set
NONE(Charset::defaultCharset),
diff --git
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
index 3a33da528b7..cb0a50fe61a 100644
---
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
+++
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/connector/jdbc/statement/FirebirdStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoa
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.StatementMemoryStrictlyFetchSizeSetter;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import
org.apache.shardingsphere.test.infra.framework.extension.mock.AutoMockExtension;
@@ -32,7 +31,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.sql.Statement;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -48,8 +46,7 @@ class FirebirdStatementMemoryStrictlyFetchSizeSetterTest {
@Test
void assertSetFetchSizeWithDefaultValue() throws SQLException {
Statement statement = mock(Statement.class);
- ContextManager contextManager = mockContextManager(-1);
-
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(-1);
fetchSizeSetter.setFetchSize(statement);
verify(statement).setFetchSize(1);
}
@@ -57,15 +54,8 @@ class FirebirdStatementMemoryStrictlyFetchSizeSetterTest {
@Test
void assertSetFetchSizeWithCustomValue() throws SQLException {
Statement statement = mock(Statement.class);
- ContextManager contextManager = mockContextManager(20);
-
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(20);
fetchSizeSetter.setFetchSize(statement);
verify(statement).setFetchSize(20);
}
-
- private ContextManager mockContextManager(final int configuredFetchSize) {
- ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.PROXY_BACKEND_QUERY_FETCH_SIZE)).thenReturn(configuredFetchSize);
- return result;
- }
}
diff --git
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
index 50971126933..8447d6c9f9b 100644
---
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
+++
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
@@ -80,5 +80,4 @@ class FirebirdAdminExecutorCreatorTest {
when(result.getSqlStatement()).thenReturn(SelectStatement.builder().databaseType(DATABASE_TYPE).build());
return result;
}
-
}
diff --git
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
index 52768c33388..9874b00f8fd 100644
---
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
+++
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/executor/FirebirdSetVariableAdminExecutorTest.java
@@ -20,10 +20,8 @@ package
org.apache.shardingsphere.proxy.backend.firebird.handler.admin.executor;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import
org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import
org.apache.shardingsphere.proxy.backend.handler.admin.executor.variable.session.ReplayedSessionVariableProvider;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import
org.apache.shardingsphere.proxy.backend.session.RequiredSessionVariableRecorder;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dal.VariableAssignSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dal.VariableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.SetStatement;
@@ -33,6 +31,7 @@ import org.mockito.MockedStatic;
import java.util.Collections;
import java.util.Optional;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
@@ -45,19 +44,14 @@ class FirebirdSetVariableAdminExecutorTest {
@Test
void assertExecute() {
SetStatement setStatement = new SetStatement(databaseType,
Collections.singletonList(new VariableAssignSegment(0, 0, new
VariableSegment(0, 0, "key"), "value")));
- FirebirdSetVariableAdminExecutor executor = new
FirebirdSetVariableAdminExecutor(setStatement);
- ConnectionSession connectionSession = mock(ConnectionSession.class);
- RequiredSessionVariableRecorder requiredSessionVariableRecorder =
mock(RequiredSessionVariableRecorder.class);
- ProxyDatabaseConnectionManager databaseConnectionManager =
mock(ProxyDatabaseConnectionManager.class);
-
when(connectionSession.getRequiredSessionVariableRecorder()).thenReturn(requiredSessionVariableRecorder);
-
when(connectionSession.getDatabaseConnectionManager()).thenReturn(databaseConnectionManager);
+ ConnectionSession connectionSession = mock(ConnectionSession.class,
RETURNS_DEEP_STUBS);
try (MockedStatic<DatabaseTypedSPILoader> databaseTypedSPILoader =
mockStatic(DatabaseTypedSPILoader.class)) {
ReplayedSessionVariableProvider replayedSessionVariableProvider =
mock(ReplayedSessionVariableProvider.class);
when(replayedSessionVariableProvider.isNeedToReplay("key")).thenReturn(true);
databaseTypedSPILoader.when(() ->
DatabaseTypedSPILoader.findService(ReplayedSessionVariableProvider.class,
databaseType)).thenReturn(Optional.of(replayedSessionVariableProvider));
- executor.execute(connectionSession, mock());
- verify(requiredSessionVariableRecorder).setVariable("key",
"value");
- verify(databaseConnectionManager).markSessionVariablesDirty();
+ new
FirebirdSetVariableAdminExecutor(setStatement).execute(connectionSession,
mock());
+
verify(connectionSession.getRequiredSessionVariableRecorder()).setVariable("key",
"value");
+
verify(connectionSession.getDatabaseConnectionManager()).markSessionVariablesDirty();
}
}
}