This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 6277a1eb2eb Remove unreached codes on OracleMetaDataLoader (#38133)
6277a1eb2eb is described below
commit 6277a1eb2ebfad6fc3e73e9cefab873d1a455e62
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 13:39:25 2026 +0800
Remove unreached codes on OracleMetaDataLoader (#38133)
---
.../metadata/data/loader/OracleMetaDataLoader.java | 10 ++-----
.../data/loader/OracleMetaDataLoaderTest.java | 33 ++++++++++++++++++++++
2 files changed, 36 insertions(+), 7 deletions(-)
diff --git
a/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoader.java
b/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoader.java
index e6500ba2aca..da11d340197 100644
---
a/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoader.java
+++
b/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoader.java
@@ -59,8 +59,6 @@ public final class OracleMetaDataLoader implements
DialectMetaDataLoader {
private static final String ORDER_BY_COLUMN_ID = " ORDER BY COLUMN_ID";
- private static final String TABLE_META_DATA_SQL =
TABLE_META_DATA_SQL_NO_ORDER + ORDER_BY_COLUMN_ID;
-
private static final String TABLE_META_DATA_SQL_IN_TABLES =
TABLE_META_DATA_SQL_NO_ORDER + " AND TABLE_NAME IN (%s)" + ORDER_BY_COLUMN_ID;
private static final String VIEW_META_DATA_SQL = "SELECT VIEW_NAME FROM
ALL_VIEWS WHERE OWNER = ? AND VIEW_NAME IN (%s)";
@@ -174,8 +172,7 @@ public final class OracleMetaDataLoader implements
DialectMetaDataLoader {
stringBuilder.append(", COLLATION");
}
String collation = stringBuilder.toString();
- return tables.isEmpty() ? String.format(TABLE_META_DATA_SQL, collation)
- : String.format(TABLE_META_DATA_SQL_IN_TABLES, collation,
tables.stream().map(each -> String.format("'%s'",
each)).collect(Collectors.joining(",")));
+ return String.format(TABLE_META_DATA_SQL_IN_TABLES, collation,
tables.stream().map(each -> String.format("'%s'",
each)).collect(Collectors.joining(",")));
}
private boolean versionContainsCollation(final DatabaseMetaData
databaseMetaData) throws SQLException {
@@ -211,7 +208,7 @@ public final class OracleMetaDataLoader implements
DialectMetaDataLoader {
private void loadIndexColumnNames(final Connection connection, final
Map<String, Collection<IndexMetaData>> tableIndexMetaDataMap) throws
SQLException {
List<String> quotedIndexNames =
tableIndexMetaDataMap.values().stream().flatMap(Collection::stream).map(IndexMetaData::getName).map(QuoteCharacter.SINGLE_QUOTE::wrap).collect(Collectors.toList());
- if (!quotedIndexNames.isEmpty()) {
+ if (quotedIndexNames.isEmpty()) {
return;
}
Map<String, Collection<String>> indexColumnsMap = new HashMap<>();
@@ -252,8 +249,7 @@ public final class OracleMetaDataLoader implements
DialectMetaDataLoader {
}
private String getPrimaryKeyMetaDataSQL(final String schemaName, final
Collection<String> tables) {
- return tables.isEmpty() ? String.format(PRIMARY_KEY_META_DATA_SQL,
schemaName)
- : String.format(PRIMARY_KEY_META_DATA_SQL_IN_TABLES,
schemaName, tables.stream().map(each -> String.format("'%s'",
each)).collect(Collectors.joining(",")));
+ return String.format(PRIMARY_KEY_META_DATA_SQL_IN_TABLES, schemaName,
tables.stream().map(each -> String.format("'%s'",
each)).collect(Collectors.joining(",")));
}
@Override
diff --git
a/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
b/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
index 21ee8c62975..4fcb6adc933 100644
---
a/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
+++
b/database/connector/dialect/oracle/src/test/java/org/apache/shardingsphere/database/connector/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
@@ -55,6 +55,8 @@ class OracleMetaDataLoaderTest {
private static final String ALL_INDEXES_SQL = "SELECT OWNER AS
TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, UNIQUENESS FROM ALL_INDEXES WHERE OWNER =
? AND TABLE_NAME IN ('tbl')";
+ private static final String ALL_INDEX_COLUMNS_SQL = "SELECT INDEX_NAME,
COLUMN_NAME FROM ALL_IND_COLUMNS WHERE INDEX_OWNER = ? AND INDEX_NAME IN
('id')";
+
private static final String ALL_TAB_COLUMNS_SQL_CONDITION1 = "SELECT OWNER
AS TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, NULLABLE, DATA_TYPE, COLUMN_ID,
HIDDEN_COLUMN , IDENTITY_COLUMN, COLLATION"
+ " FROM ALL_TAB_COLS WHERE OWNER = ? AND TABLE_NAME IN ('tbl')
ORDER BY COLUMN_ID";
@@ -237,6 +239,29 @@ class OracleMetaDataLoaderTest {
assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("address", Types.VARCHAR, false, false, false, false, false,
true));
}
+ @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
+ @Test
+ void assertLoadIndexColumns() throws SQLException {
+ DataSource dataSource = mockDataSource();
+ ResultSet resultSet = mockTableMetaDataResultSet();
+
when(dataSource.getConnection().prepareStatement(ALL_TAB_COLUMNS_SQL_CONDITION4).executeQuery()).thenReturn(resultSet);
+ ResultSet indexResultSet = mockIndexMetaDataResultSet();
+
when(dataSource.getConnection().prepareStatement(ALL_INDEXES_SQL).executeQuery()).thenReturn(indexResultSet);
+
when(dataSource.getConnection().getMetaData().getUserName()).thenReturn("TEST");
+ ResultSet primaryKeys = mockPrimaryKeysMetaDataResultSet();
+
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITH_TABLES).executeQuery()).thenReturn(primaryKeys);
+ ResultSet indexColumnResultSet = mockIndexColumnMetaDataResultSet();
+
when(dataSource.getConnection().prepareStatement(ALL_INDEX_COLUMNS_SQL).executeQuery()).thenReturn(indexColumnResultSet);
+
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
+
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
+ DataTypeRegistry.load(dataSource, "Oracle");
+ Collection<SchemaMetaData> actual =
getDialectTableMetaDataLoader().load(
+ new MetaDataLoaderMaterial(Collections.singleton("tbl"),
"foo_ds", dataSource, databaseType, "sharding_db"));
+ TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
+ IndexMetaData actualIndexMetaData =
actualTableMetaData.getIndexes().iterator().next();
+ assertThat(actualIndexMetaData.getColumns(),
is(Collections.singletonList("id")));
+ }
+
@SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
private DataSource mockDataSource() throws SQLException {
DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS);
@@ -288,6 +313,14 @@ class OracleMetaDataLoaderTest {
return result;
}
+ private ResultSet mockIndexColumnMetaDataResultSet() throws SQLException {
+ ResultSet result = mock(ResultSet.class);
+ when(result.next()).thenReturn(true, false);
+ when(result.getString("INDEX_NAME")).thenReturn("id");
+ when(result.getString("COLUMN_NAME")).thenReturn("id");
+ return result;
+ }
+
private ResultSet mockPrimaryKeysMetaDataResultSet() throws SQLException {
ResultSet result = mock(ResultSet.class);
when(result.next()).thenReturn(true, false);