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 4bd6d9923a6 Simplify connector firebird (#40323)
4bd6d9923a6 is described below
commit 4bd6d9923a6de57ba41d466b359cd1964fcb30be
Author: Maxim Igoshin <[email protected]>
AuthorDate: Thu Oct 22 12:58:49 2026 +0300
Simplify connector firebird (#40323)
* Simplify Firebird connection properties parser
* Simplify Firebird blob and column size registries
* Simplify Firebird metadata loaders
* Unwrap short lines and order private methods in Firebird connector
* Simplify Firebird metadata registry tests
* Remove unused stubs and flags in Firebird metadata loader tests
* Keep empty blob columns check in Firebird blob registry
* Restore stub flags in Firebird column size loader test
* Restore schema stub in Firebird schema metadata loader test
* Keep attach object name check in Firebird connection properties parser
* Add release note for Firebird connector simplification
* Add PR link to Firebird connector simplification release note
* Keep Firebird connection properties parser loadable without Jaybird
---------
Co-authored-by: Liang Zhang <[email protected]>
---
RELEASE-NOTES.md | 1 +
.../FirebirdConnectionPropertiesParser.java | 5 +---
.../metadata/data/FirebirdBlobInfoRegistry.java | 9 ++----
.../FirebirdNonFixedLengthColumnSizeRegistry.java | 15 ++--------
.../data/loader/FirebirdBlobColumnLoader.java | 24 +++++-----------
.../data/loader/FirebirdMetaDataLoader.java | 14 ++++-----
.../FirebirdNonFixedLengthColumnSizeLoader.java | 24 ++++++----------
.../database/FirebirdDatabaseMetaData.java | 3 +-
.../database/option/FirebirdFunctionOption.java | 3 +-
.../FirebirdIdentifierCasePolicyProvider.java | 8 +++---
.../firebird/type/FirebirdDatabaseType.java | 1 -
.../data/FirebirdBlobInfoRegistryTest.java | 33 ++++++----------------
...rebirdNonFixedLengthColumnSizeRegistryTest.java | 2 +-
.../loader/FirebirdSchemaMetaDataLoaderTest.java | 2 +-
14 files changed, 45 insertions(+), 99 deletions(-)
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index ed9471429bb..fef88cee685 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -192,6 +192,7 @@
1. Sharding: Fix HASH_MOD routing mismatch for same negative numeric values
across numeric Java types with compatibility switch
`normalize-numeric-int-range` -
[#38327](https://github.com/apache/shardingsphere/pull/38327)
1. SQL Parser: Support parsing SYSTEM_USER in SQL92 dialect and bind it as a
niladic function instead of a column -
[#39102](https://github.com/apache/shardingsphere/pull/39102)
1. E2E: Add Firebird to SQL E2E tests through ShardingSphere-Proxy
+1. Proxy: Simplify connection properties parsing and metadata loading in
Firebird - [#40323](https://github.com/apache/shardingsphere/pull/40323)
1. Proxy: Simplify SQL dialect exception mapping in Firebird -
[#40312](https://github.com/apache/shardingsphere/pull/40312)
1. Proxy: Simplify protocol codec and packets in Firebird -
[#40314](https://github.com/apache/shardingsphere/pull/40314)
1. SQL Parser: Simplify SQL statement visitors in Firebird -
[#40315](https://github.com/apache/shardingsphere/pull/40315)
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/jdbcurl/FirebirdConnectionPropertiesParser.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/jdbcurl/FirebirdConnectionPropertiesParser.java
index 95391c31b60..b2566256164 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/jdbcurl/FirebirdConnectionPropertiesParser.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/jdbcurl/FirebirdConnectionPropertiesParser.java
@@ -22,7 +22,6 @@ import
org.apache.shardingsphere.database.connector.core.jdbcurl.parser.Connecti
import
org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.firebirdsql.gds.impl.DbAttachInfo;
import org.firebirdsql.gds.impl.GDSFactory;
-import org.firebirdsql.gds.impl.GDSType;
import org.firebirdsql.jdbc.FBDriver;
import java.util.Properties;
@@ -35,9 +34,7 @@ public final class FirebirdConnectionPropertiesParser
implements ConnectionPrope
@SneakyThrows(Exception.class)
@Override
public ConnectionProperties parse(final String url, final String username,
final String catalog) {
- GDSType type = GDSFactory.getTypeForProtocol(url);
- String databaseURL = GDSFactory.getDatabasePath(type, url);
- DbAttachInfo dbAttachInfo =
DbAttachInfo.parseConnectString(databaseURL);
+ DbAttachInfo dbAttachInfo =
DbAttachInfo.parseConnectString(GDSFactory.getDatabasePath(GDSFactory.getTypeForProtocol(url),
url));
String attachObjectName = dbAttachInfo.getAttachObjectName();
String databaseName = attachObjectName.contains("?") ?
attachObjectName.split("\\?")[0] : attachObjectName;
Properties queryProps = new Properties();
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistry.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistry.java
index 53a6384f31a..ca07daf23c2 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistry.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistry.java
@@ -77,8 +77,7 @@ public final class FirebirdBlobInfoRegistry {
if (null == tableName || null == columnName) {
return false;
}
- Map<String, Integer> blobColumns =
BLOB_COLUMNS.get(buildTableKey(schemaName, tableName));
- return null != blobColumns &&
blobColumns.containsKey(toKey(columnName));
+ return BLOB_COLUMNS.getOrDefault(buildTableKey(schemaName, tableName),
Collections.emptyMap()).containsKey(toKey(columnName));
}
/**
@@ -93,11 +92,7 @@ public final class FirebirdBlobInfoRegistry {
if (null == tableName || null == columnName) {
return OptionalInt.empty();
}
- Map<String, Integer> blobColumns =
BLOB_COLUMNS.get(buildTableKey(schemaName, tableName));
- if (null == blobColumns) {
- return OptionalInt.empty();
- }
- Integer subtype = blobColumns.get(toKey(columnName));
+ Integer subtype = BLOB_COLUMNS.getOrDefault(buildTableKey(schemaName,
tableName), Collections.emptyMap()).get(toKey(columnName));
return null == subtype ? OptionalInt.empty() : OptionalInt.of(subtype);
}
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistry.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistry.java
index 3bb859957db..48ecd179ee4 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistry.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistry.java
@@ -47,11 +47,6 @@ public final class FirebirdNonFixedLengthColumnSizeRegistry {
if (null == tableName) {
return;
}
- String tableKey = buildTableKey(schemaName, tableName);
- if (columnSizes.isEmpty()) {
- COLUMN_SIZES.remove(tableKey);
- return;
- }
Map<String, Integer> normalizedColumnSizes = new
HashMap<>(columnSizes.size(), 1F);
for (Entry<String, Integer> entry : columnSizes.entrySet()) {
if (null == entry.getKey()) {
@@ -59,6 +54,7 @@ public final class FirebirdNonFixedLengthColumnSizeRegistry {
}
normalizedColumnSizes.put(toKey(entry.getKey()), entry.getValue());
}
+ String tableKey = buildTableKey(schemaName, tableName);
if (normalizedColumnSizes.isEmpty()) {
COLUMN_SIZES.remove(tableKey);
return;
@@ -78,18 +74,13 @@ public final class FirebirdNonFixedLengthColumnSizeRegistry
{
if (null == tableName || null == columnName) {
return OptionalInt.empty();
}
- Map<String, Integer> tableSizes =
COLUMN_SIZES.get(buildTableKey(schemaName, tableName));
- if (null == tableSizes) {
- return OptionalInt.empty();
- }
- Integer columnSize = tableSizes.get(toKey(columnName));
+ Integer columnSize =
COLUMN_SIZES.getOrDefault(buildTableKey(schemaName, tableName),
Collections.emptyMap()).get(toKey(columnName));
return null == columnSize ? OptionalInt.empty() :
OptionalInt.of(columnSize);
}
private static String buildTableKey(final String schemaName, final String
tableName) {
String schemaKey = null == schemaName ? "" : toKey(schemaName);
- String logicTable = trimToLogicTableName(tableName);
- return schemaKey + "." + toKey(logicTable);
+ return schemaKey + "." + toKey(trimToLogicTableName(tableName));
}
private static String trimToLogicTableName(final String tableName) {
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
index 54a45ff3ea3..fcdd6f8971c 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.database.connector.firebird.metadata.data.loader;
+import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderConnection;
import
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderMaterial;
@@ -49,12 +50,9 @@ final class FirebirdBlobColumnLoader {
return Collections.emptyMap();
}
Map<String, Map<String, Integer>> result = new
HashMap<>(material.getActualTableNames().size(), 1F);
- try (
- MetaDataLoaderConnection connection = new
MetaDataLoaderConnection(
- material.getStorageType(),
material.getDataSource().getConnection())) {
+ try (MetaDataLoaderConnection connection = new
MetaDataLoaderConnection(material.getStorageType(),
material.getDataSource().getConnection())) {
for (String each : material.getActualTableNames()) {
- Map<String, Integer> blobColumns =
loadTableBlobColumns(connection, each);
- result.put(each, blobColumns);
+ result.put(each, loadTableBlobColumns(connection, each));
}
}
return result;
@@ -66,22 +64,14 @@ final class FirebirdBlobColumnLoader {
preparedStatement.setString(1,
formattedTableName.toUpperCase(Locale.ENGLISH));
try (ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
- String normalizedColumnName =
normalizeColumnName(resultSet.getString("COLUMN_NAME"));
- if (null != normalizedColumnName) {
- result.put(normalizedColumnName,
getColumnSubtype(resultSet));
+ String columnName =
Strings.nullToEmpty(resultSet.getString("COLUMN_NAME")).trim();
+ if (!columnName.isEmpty()) {
+ result.put(columnName.toUpperCase(Locale.ENGLISH),
getColumnSubtype(resultSet));
}
}
}
}
- return result.isEmpty() ? Collections.emptyMap() :
Collections.unmodifiableMap(result);
- }
-
- private String normalizeColumnName(final String columnName) {
- if (null == columnName) {
- return null;
- }
- String trimmed = columnName.trim();
- return trimmed.isEmpty() ? null : trimmed.toUpperCase(Locale.ENGLISH);
+ return result;
}
private Integer getColumnSubtype(final ResultSet resultSet) throws
SQLException {
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
index bf4104c18c8..1e719f97dbb 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
@@ -47,19 +47,17 @@ public final class FirebirdMetaDataLoader implements
DialectMetaDataLoader {
return Collections.singleton(new
SchemaMetaData(material.getDefaultSchemaName(), tableMetaData));
}
- private void loadNonFixedLengthColumnSizes(final MetaDataLoaderMaterial
material) throws SQLException {
- Map<String, Map<String, Integer>> nonFixedColumnSizes = new
FirebirdNonFixedLengthColumnSizeLoader(material).load();
+ private void loadBlobColumns(final MetaDataLoaderMaterial material) throws
SQLException {
+ Map<String, Map<String, Integer>> blobColumns = new
FirebirdBlobColumnLoader(material).load();
for (String each : material.getActualTableNames()) {
- Map<String, Integer> tableSizes =
nonFixedColumnSizes.getOrDefault(each, Collections.emptyMap());
-
FirebirdNonFixedLengthColumnSizeRegistry.refreshTable(material.getDefaultSchemaName(),
each, tableSizes);
+
FirebirdBlobInfoRegistry.refreshTable(material.getDefaultSchemaName(), each,
blobColumns.getOrDefault(each, Collections.emptyMap()));
}
}
- private void loadBlobColumns(final MetaDataLoaderMaterial material) throws
SQLException {
- Map<String, Map<String, Integer>> blobColumns = new
FirebirdBlobColumnLoader(material).load();
+ private void loadNonFixedLengthColumnSizes(final MetaDataLoaderMaterial
material) throws SQLException {
+ Map<String, Map<String, Integer>> nonFixedColumnSizes = new
FirebirdNonFixedLengthColumnSizeLoader(material).load();
for (String each : material.getActualTableNames()) {
- Map<String, Integer> tableColumns = blobColumns.getOrDefault(each,
Collections.emptyMap());
-
FirebirdBlobInfoRegistry.refreshTable(material.getDefaultSchemaName(), each,
tableColumns);
+
FirebirdNonFixedLengthColumnSizeRegistry.refreshTable(material.getDefaultSchemaName(),
each, nonFixedColumnSizes.getOrDefault(each, Collections.emptyMap()));
}
}
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
index 65445ec498f..afcd156262e 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
@@ -45,8 +45,7 @@ final class FirebirdNonFixedLengthColumnSizeLoader {
Map<String, Map<String, Integer>> result = new
HashMap<>(material.getActualTableNames().size(), 1F);
try (MetaDataLoaderConnection connection = new
MetaDataLoaderConnection(material.getStorageType(),
material.getDataSource().getConnection())) {
for (String each : material.getActualTableNames()) {
- Map<String, Integer> columnSizes =
loadTableColumnSizes(connection, each);
- result.put(each, columnSizes);
+ result.put(each, loadTableColumnSizes(connection, each));
}
}
return result;
@@ -54,29 +53,22 @@ final class FirebirdNonFixedLengthColumnSizeLoader {
private Map<String, Integer> loadTableColumnSizes(final
MetaDataLoaderConnection connection, final String formattedTableName) throws
SQLException {
Map<String, Integer> result = new HashMap<>();
- loadColumnSizesFromMetaData(connection, formattedTableName, result);
- return result.isEmpty() ? Collections.emptyMap() :
Collections.unmodifiableMap(result);
- }
-
- private void loadColumnSizesFromMetaData(final MetaDataLoaderConnection
connection, final String formattedTableName, final Map<String, Integer> result)
throws SQLException {
try (ResultSet resultSet =
connection.getMetaData().getColumns(connection.getCatalog(),
connection.getSchema(), formattedTableName, "%")) {
while (resultSet.next()) {
- if (!Objects.equals(formattedTableName,
resultSet.getString("TABLE_NAME"))) {
+ if (!Objects.equals(formattedTableName,
resultSet.getString("TABLE_NAME")) ||
!isNonFixedLengthType(resultSet.getInt("DATA_TYPE"))) {
continue;
}
- int dataType = resultSet.getInt("DATA_TYPE");
- if (!isNonFixedLengthType(dataType)) {
+ String columnName = resultSet.getString("COLUMN_NAME");
+ if (null == columnName) {
continue;
}
- String columnName = resultSet.getString("COLUMN_NAME");
- if (null != columnName) {
- int columnSize = resultSet.getInt("COLUMN_SIZE");
- if (!resultSet.wasNull() && columnSize > 0) {
- result.put(columnName.toUpperCase(Locale.ENGLISH),
columnSize);
- }
+ int columnSize = resultSet.getInt("COLUMN_SIZE");
+ if (!resultSet.wasNull() && columnSize > 0) {
+ result.put(columnName.toUpperCase(Locale.ENGLISH),
columnSize);
}
}
}
+ return result;
}
private boolean isNonFixedLengthType(final int dataType) {
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/FirebirdDatabaseMetaData.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/FirebirdDatabaseMetaData.java
index 099d05672b0..ede9574d84f 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/FirebirdDatabaseMetaData.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/FirebirdDatabaseMetaData.java
@@ -58,8 +58,7 @@ public final class FirebirdDatabaseMetaData implements
DialectDatabaseMetaData {
@Override
public DialectTransactionOption getTransactionOption() {
- return new DialectTransactionOption(false,
DDLCommitPolicy.COMMIT_CURRENT_TRANSACTION, false, false, true, false, true,
- Collections.singleton("org.firebirdsql.ds.FBXADataSource"));
+ return new DialectTransactionOption(false,
DDLCommitPolicy.COMMIT_CURRENT_TRANSACTION, false, false, true, false, true,
Collections.singleton("org.firebirdsql.ds.FBXADataSource"));
}
@Override
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/option/FirebirdFunctionOption.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/option/FirebirdFunctionOption.java
index fabd230bdd7..fd73442fbad 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/option/FirebirdFunctionOption.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/database/option/FirebirdFunctionOption.java
@@ -28,8 +28,7 @@ import java.util.Collection;
*/
public final class FirebirdFunctionOption implements DialectFunctionOption {
- private static final Collection<String> UNPARENTHESIZED_FUNCTION_NAMES =
new CaseInsensitiveSet<>(Arrays.asList(
- "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP",
"CURRENT_USER"));
+ private static final Collection<String> UNPARENTHESIZED_FUNCTION_NAMES =
new CaseInsensitiveSet<>(Arrays.asList("CURRENT_DATE", "CURRENT_TIME",
"CURRENT_TIMESTAMP", "CURRENT_USER"));
@Override
public Collection<String> getUnparenthesizedFunctionNames() {
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/identifier/FirebirdIdentifierCasePolicyProvider.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/identifier/FirebirdIdentifierCasePolicyProvider.java
index e28c7026b73..cc51e22a8cb 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/identifier/FirebirdIdentifierCasePolicyProvider.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/identifier/FirebirdIdentifierCasePolicyProvider.java
@@ -36,12 +36,12 @@ public final class FirebirdIdentifierCasePolicyProvider
implements IdentifierCas
each -> each,
FirebirdIdentifierCasePolicyProvider::toUpperCase,
FirebirdIdentifierCasePolicyProvider::toUpperCase, each -> true));
}
+ private static String toUpperCase(final String value) {
+ return value.toUpperCase(Locale.ENGLISH);
+ }
+
@Override
public String getDatabaseType() {
return "Firebird";
}
-
- private static String toUpperCase(final String value) {
- return value.toUpperCase(Locale.ENGLISH);
- }
}
diff --git
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/type/FirebirdDatabaseType.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/type/FirebirdDatabaseType.java
index 083b9d767c9..e2022ac62c3 100644
---
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/type/FirebirdDatabaseType.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/type/FirebirdDatabaseType.java
@@ -36,5 +36,4 @@ public final class FirebirdDatabaseType implements
DatabaseType {
public String getType() {
return "Firebird";
}
-
}
diff --git
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistryTest.java
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistryTest.java
index 01cc62e291b..a094ca3903c 100644
---
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistryTest.java
+++
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdBlobInfoRegistryTest.java
@@ -63,7 +63,7 @@ class FirebirdBlobInfoRegistryTest {
@Test
void assertRefreshTableWhenTableNameIsNull() {
- registerBlobColumns("SENTINEL",
Collections.singletonMap("EXISTING_COL", 9));
+ blobColumns.put("SENTINEL", Collections.singletonMap("EXISTING_COL",
9));
FirebirdBlobInfoRegistry.refreshTable("schema_a", null,
Collections.singletonMap("blob_col", 1));
assertTrue(blobColumns.containsKey("SENTINEL"));
assertThat(blobColumns.get("SENTINEL").get("EXISTING_COL"), is(9));
@@ -78,8 +78,7 @@ class FirebirdBlobInfoRegistryTest {
@Test
void assertRefreshTable() {
- Map<String, Integer> newColumns = createColumnsWithMixedNames();
- FirebirdBlobInfoRegistry.refreshTable(null, "table_1", newColumns);
+ FirebirdBlobInfoRegistry.refreshTable(null, "table_1",
createColumnsWithMixedNames());
Map<String, Integer> actual = blobColumns.get(".TABLE_1");
assertTrue(actual.containsKey("BLOB_COL"));
assertThat(actual.get("BLOB_COL"), is(2));
@@ -91,31 +90,29 @@ class FirebirdBlobInfoRegistryTest {
@MethodSource("notBlobColumnCases")
void assertIsBlobColumnWhenNotMatched(final String name, final String
tableName, final String columnName, final boolean registerTable, final boolean
registerColumn) {
if (registerTable) {
- blobColumns.put("SCHEMA_A.TABLE_A", registerColumn ?
Collections.singletonMap("BLOB_COL", 1) : Collections.singletonMap("OTHER_COL",
1));
+ blobColumns.put("SCHEMA_A.TABLE_A",
Collections.singletonMap(registerColumn ? "BLOB_COL" : "OTHER_COL", 1));
}
assertFalse(FirebirdBlobInfoRegistry.isBlobColumn("schema_a",
tableName, columnName));
}
@Test
void assertIsBlobColumn() {
- registerBlobColumns("SCHEMA_A.123",
Collections.singletonMap("BLOB_COL", 1));
- boolean actual = FirebirdBlobInfoRegistry.isBlobColumn("schema_a",
"123", "blob_col");
- assertTrue(actual);
+ blobColumns.put("SCHEMA_A.123", Collections.singletonMap("BLOB_COL",
1));
+ assertTrue(FirebirdBlobInfoRegistry.isBlobColumn("schema_a", "123",
"blob_col"));
}
@ParameterizedTest(name = "{0}")
- @MethodSource("findBlobSubtypeEmptyCases")
+ @MethodSource("notBlobColumnCases")
void assertFindBlobSubtypeWhenAbsent(final String name, final String
tableName, final String columnName, final boolean registerTable, final boolean
registerColumn) {
if (registerTable) {
- blobColumns.put("SCHEMA_A.TABLE_A", registerColumn ?
Collections.singletonMap("BLOB_COL", 5) : Collections.singletonMap("OTHER_COL",
5));
+ blobColumns.put("SCHEMA_A.TABLE_A",
Collections.singletonMap(registerColumn ? "BLOB_COL" : "OTHER_COL", 5));
}
- OptionalInt actual =
FirebirdBlobInfoRegistry.findBlobSubtype("schema_a", tableName, columnName);
- assertFalse(actual.isPresent());
+ assertFalse(FirebirdBlobInfoRegistry.findBlobSubtype("schema_a",
tableName, columnName).isPresent());
}
@Test
void assertFindBlobSubtype() {
- registerBlobColumns("SCHEMA_A.TABLE_A",
Collections.singletonMap("BLOB_COL", 7));
+ blobColumns.put("SCHEMA_A.TABLE_A",
Collections.singletonMap("BLOB_COL", 7));
OptionalInt actual =
FirebirdBlobInfoRegistry.findBlobSubtype("schema_a", "table_a", "blob_col");
assertTrue(actual.isPresent());
assertThat(actual.getAsInt(), is(7));
@@ -136,22 +133,10 @@ class FirebirdBlobInfoRegistryTest {
Arguments.of("column_not_registered", "table_a", "blob_col",
true, false));
}
- private static Stream<Arguments> findBlobSubtypeEmptyCases() {
- return Stream.of(
- Arguments.of("null_table_name", null, "blob_col", false,
false),
- Arguments.of("null_column_name", "table_a", null, true, true),
- Arguments.of("table_not_registered", "table_a", "blob_col",
false, false),
- Arguments.of("column_not_registered", "table_a", "blob_col",
true, false));
- }
-
private static Map<String, Integer> createColumnsWithMixedNames() {
Map<String, Integer> result = new HashMap<>(2, 1F);
result.put("blob_col", 2);
result.put(null, 9);
return result;
}
-
- private void registerBlobColumns(final String tableKey, final Map<String,
Integer> columns) {
- blobColumns.put(tableKey, columns);
- }
}
diff --git
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistryTest.java
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistryTest.java
index da167e7cd87..b264a7646a1 100644
---
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistryTest.java
+++
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/FirebirdNonFixedLengthColumnSizeRegistryTest.java
@@ -91,7 +91,7 @@ class FirebirdNonFixedLengthColumnSizeRegistryTest {
@MethodSource("findColumnSizeEmptyCases")
void assertFindColumnSizeWhenAbsent(final String name, final String
tableName, final String columnName, final boolean registerTable, final boolean
registerColumn) {
if (registerTable) {
- columnSizes.put("SCHEMA_A.TABLE_A", registerColumn ?
Collections.singletonMap("SIZE_COL", 12) :
Collections.singletonMap("OTHER_COL", 12));
+ columnSizes.put("SCHEMA_A.TABLE_A",
Collections.singletonMap(registerColumn ? "SIZE_COL" : "OTHER_COL", 12));
}
assertFalse(FirebirdNonFixedLengthColumnSizeRegistry.findColumnSize("schema_a",
tableName, columnName).isPresent());
}
diff --git
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdSchemaMetaDataLoaderTest.java
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdSchemaMetaDataLoaderTest.java
index 734ec1b05a9..9b2655e9093 100644
---
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdSchemaMetaDataLoaderTest.java
+++
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdSchemaMetaDataLoaderTest.java
@@ -67,7 +67,7 @@ class FirebirdSchemaMetaDataLoaderTest {
private ResultSet mockTableResultSet() throws SQLException {
ResultSet result = mock(ResultSet.class);
when(result.next()).thenReturn(true, true, true, true, true, false);
- when(result.getString("TABLE_NAME")).thenReturn("tbl", "$tbl", "/tbl",
"##tbl", "partitioned_tbl", "RDB$RELATIONS", "RDB$REL", "RDB_Relations",
"rdb$functions");
+ when(result.getString("TABLE_NAME")).thenReturn("tbl", "$tbl", "/tbl",
"##tbl", "partitioned_tbl");
return result;
}