diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java index b9a2b24d78dd8..e197885749092 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java @@ -81,7 +81,8 @@ public Optional findEncryptContext(final int columnIndex) { } TablesContext tablesContext = selectStatementContext.getTablesContext(); String schemaName = tablesContext.getSchemaName().orElse(selectStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName())); - Map expressionTableNames = tablesContext.findTableNamesByColumnProjection(Collections.singletonList(columnProjection.get()), databaseMetaData.getSchema(schemaName)); + Map expressionTableNames = tablesContext.findTableNamesByColumnProjection( + Collections.singletonList(columnProjection.get()), databaseMetaData.getDatabase().getSchema(schemaName)); Optional tableName = findTableName(columnProjection.get(), expressionTableNames); return tableName.map(optional -> EncryptContextBuilder.build(databaseName, schemaName, optional, columnProjection.get().getName(), encryptRule)); } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java index 3dbf31e7e8d55..4d9abb6e7bc08 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java @@ -87,7 +87,7 @@ public void setUp() { when(selectStatementContext.getTablesContext()).thenReturn(tablesContext); when(selectStatementContext.getDatabaseType()).thenReturn(new MySQLDatabaseType()); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); encryptAlgorithm = EncryptAlgorithmFactory.newInstance(new ShardingSphereAlgorithmConfiguration("MD5", new Properties())); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java index f32b8c7a5f01b..3410c1d2d62ee 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java @@ -59,7 +59,7 @@ public MergedResult merge(final List queryResults, final SQLStateme if (dalStatement instanceof MySQLShowDatabasesStatement) { return new SingleLocalDataMergedResult(Collections.singletonList(databaseName)); } - ShardingSphereSchema schema = databaseMetaData.getSchema(schemaName); + ShardingSphereSchema schema = databaseMetaData.getDatabase().getSchema(schemaName); if (dalStatement instanceof MySQLShowTablesStatement) { return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schema, queryResults); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java index bace17ab90f6b..6628470ea930c 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java @@ -80,7 +80,8 @@ private Map getColumnLabelIndexMap(final QueryResult queryResul private MergedResult build(final List queryResults, final SelectStatementContext selectStatementContext, final Map columnLabelIndexMap, final ShardingSphereDatabaseMetaData databaseMetaData) throws SQLException { String defaultSchema = selectStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = selectStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = selectStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); if (isNeedProcessGroupBy(selectStatementContext)) { return getGroupByMergedResult(queryResults, selectStatementContext, columnLabelIndexMap, schema); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java index 3e3d56aa5f524..1a5166a7050dc 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java @@ -69,7 +69,8 @@ public List createShardingConditions(final SQLStatementContex } Collection columnSegments = ((WhereAvailable) sqlStatementContext).getColumnSegments(); String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); Map columnExpressionTableNames = sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments, schema); List result = new ArrayList<>(); for (WhereSegment each : ((WhereAvailable) sqlStatementContext).getWhereSegments()) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java index df372f550ca5d..dfebcd5e73c49 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterIndexStatementValidator.java @@ -42,8 +42,8 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementConte final List parameters, final ShardingSphereDatabaseMetaData databaseMetaData) { Optional index = sqlStatementContext.getSqlStatement().getIndex(); String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = index.isPresent() ? index.get().getOwner().map(optional -> optional.getIdentifier().getValue()) - .map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)) : databaseMetaData.getSchema(defaultSchema); + ShardingSphereSchema schema = index.flatMap(optional -> optional.getOwner() + .map(owner -> databaseMetaData.getDatabase().getSchema(owner.getIdentifier().getValue()))).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); if (index.isPresent() && !isSchemaContainsIndex(schema, index.get())) { throw new ShardingSphereException("Index '%s' does not exist.", index.get().getIndexName().getIdentifier().getValue()); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java index 309010df8b7d0..b54499912c9b4 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java @@ -51,7 +51,7 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementConte validateShardingTable(shardingRule, existTables); String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); ShardingSphereSchema schema = sqlStatementContext.getSqlStatement().getFunctionName().flatMap(optional -> optional.getOwner() - .map(owner -> databaseMetaData.getSchema(owner.getIdentifier().getValue()))).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + .map(owner -> databaseMetaData.getDatabase().getSchema(owner.getIdentifier().getValue()))).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); validateTableExist(schema, existTables); validateTableNotExist(schema, extractor.extractNotExistTableFromRoutineBody(routineBodySegment.get())); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java index 93fd5b2078f73..d845bfc7816d0 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateIndexStatementValidator.java @@ -40,7 +40,8 @@ public final class ShardingCreateIndexStatementValidator extends ShardingDDLStat public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, final List parameters, final ShardingSphereDatabaseMetaData databaseMetaData) { String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); validateTableExist(schema, Collections.singletonList(sqlStatementContext.getSqlStatement().getTable())); String tableName = sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue(); String indexName = ((IndexAvailable) sqlStatementContext).getIndexes().stream().map(each -> each.getIndexName().getIdentifier().getValue()).findFirst().orElse(null); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java index f0c9ded964087..5be5a192a99fe 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java @@ -49,7 +49,7 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementConte TableExtractor extractor = new TableExtractor(); String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); ShardingSphereSchema schema = sqlStatementContext.getSqlStatement().getProcedureName().flatMap(optional -> optional.getOwner() - .map(owner -> databaseMetaData.getSchema(owner.getIdentifier().getValue()))).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + .map(owner -> databaseMetaData.getDatabase().getSchema(owner.getIdentifier().getValue()))).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); Collection existTables = extractor.extractExistTableFromRoutineBody(routineBodySegment.get()); validateShardingTable(shardingRule, existTables); validateTableExist(schema, existTables); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java index f08be3aac20c6..4c92aaeef0639 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java @@ -41,7 +41,8 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementConte final List parameters, final ShardingSphereDatabaseMetaData databaseMetaData) { if (!CreateTableStatementHandler.containsNotExistClause(sqlStatementContext.getSqlStatement())) { String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); validateTableNotExist(schema, Collections.singletonList(sqlStatementContext.getSqlStatement().getTable())); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java index 962847519de94..2da4ced118655 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropIndexStatementValidator.java @@ -47,8 +47,8 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementConte } String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); for (IndexSegment each : sqlStatementContext.getSqlStatement().getIndexes()) { - ShardingSphereSchema schema = each.getOwner() - .map(optional -> optional.getIdentifier().getValue()).map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = each.getOwner().map(optional -> optional.getIdentifier().getValue()) + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); if (!isSchemaContainsIndex(schema, each)) { throw new ShardingSphereException("Index '%s' does not exist.", each.getIndexName().getIdentifier().getValue()); } @@ -66,7 +66,7 @@ public void postValidate(final ShardingRule shardingRule, final SQLStatementCont String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); for (IndexSegment each : indexSegments) { ShardingSphereSchema schema = each.getOwner().map(optional -> optional.getIdentifier().getValue()) - .map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); logicTableName = schema.getAllTableNames().stream().filter(tableName -> schema.get(tableName).getIndexes().containsKey(each.getIndexName().getIdentifier().getValue())).findFirst(); logicTableName.ifPresent(optional -> validateDropIndexRouteUnit(shardingRule, routeContext, indexSegments, optional)); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java index c686d375d1ad5..cf7dff44b8e67 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java @@ -47,7 +47,8 @@ public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, final List parameters, final ShardingSphereDatabaseMetaData databaseMetaData) { if (!DropTableStatementHandler.containsExistClause(sqlStatementContext.getSqlStatement())) { String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); validateTableExist(schema, sqlStatementContext.getTablesContext().getTables()); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java index 2127412efcb43..3b1ef846cf967 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java @@ -387,7 +387,8 @@ public boolean isAllBindingTables(final ShardingSphereDatabaseMetaData databaseM return false; } String defaultSchema = sqlStatementContext.getDatabaseType().getDefaultSchema(databaseMetaData.getDatabase().getName()); - ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName().map(databaseMetaData::getSchema).orElseGet(() -> databaseMetaData.getSchema(defaultSchema)); + ShardingSphereSchema schema = sqlStatementContext.getTablesContext().getSchemaName() + .map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); SelectStatementContext select = (SelectStatementContext) sqlStatementContext; Collection joinSegments = WhereExtractUtil.getJoinWhereSegments(select.getSqlStatement()); return isJoinConditionContainsShardingColumns(schema, select, logicTableNames, joinSegments) diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java index 608790c8cb709..e08713edcec6a 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java @@ -51,6 +51,7 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -83,8 +84,8 @@ public void assertNewInstanceWithSelectStatementForSQLServer() { private void assertNewInstanceWithSelectStatement(final SelectStatement selectStatement) { ConfigurationProperties props = new ConfigurationProperties(new Properties()); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setProjections(new ProjectionsSegment(0, 0)); SelectStatementContext sqlStatementContext = new SelectStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), Collections.emptyList(), selectStatement, DefaultDatabase.LOGIC_NAME); @@ -113,8 +114,8 @@ public void assertNewInstanceWithOtherStatement() { } private InsertStatementContext createInsertStatementContext(final InsertStatement insertStatement) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); Map databaseMetaDataMap = Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData); return new InsertStatementContext(databaseMetaDataMap, Collections.emptyList(), insertStatement, DefaultDatabase.LOGIC_NAME); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java index a3bd5196cee11..5f6e39bc326e7 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java @@ -80,8 +80,8 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildIteratorStreamMergedResult() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SelectStatement selectStatement = buildSelectStatement(new MySQLSelectStatement()); selectStatement.setProjections(new ProjectionsSegment(0, 0)); SelectStatementContext selectStatementContext = new SelectStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), Collections.emptyList(), @@ -92,8 +92,8 @@ public void assertBuildIteratorStreamMergedResult() throws SQLException { @Test public void assertBuildIteratorStreamMergedResultWithLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setProjections(new ProjectionsSegment(0, 0)); selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, 1), null)); @@ -105,8 +105,8 @@ public void assertBuildIteratorStreamMergedResultWithLimit() throws SQLException @Test public void assertBuildIteratorStreamMergedResultWithMySQLLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setProjections(new ProjectionsSegment(0, 0)); selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, 1), null)); @@ -120,7 +120,7 @@ public void assertBuildIteratorStreamMergedResultWithMySQLLimit() throws SQLExce @Test public void assertBuildIteratorStreamMergedResultWithOracleLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("Oracle")); - final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); OracleSelectStatement selectStatement = (OracleSelectStatement) buildSelectStatement(new OracleSelectStatement()); selectStatement.setProjections(new ProjectionsSegment(0, 0)); WhereSegment whereSegment = mock(WhereSegment.class); @@ -151,8 +151,8 @@ public void assertBuildIteratorStreamMergedResultWithOracleLimit() throws SQLExc @Test public void assertBuildIteratorStreamMergedResultWithSQLServerLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SQLServerSelectStatement selectStatement = (SQLServerSelectStatement) buildSelectStatement(new SQLServerSelectStatement()); selectStatement.setProjections(new ProjectionsSegment(0, 0)); selectStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralLimitValueSegment(0, 0, 1), null)); @@ -166,8 +166,8 @@ public void assertBuildIteratorStreamMergedResultWithSQLServerLimit() throws SQL @Test public void assertBuildOrderByStreamMergedResult() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setProjections(new ProjectionsSegment(0, 0)); @@ -179,8 +179,8 @@ public void assertBuildOrderByStreamMergedResult() throws SQLException { @Test public void assertBuildOrderByStreamMergedResultWithMySQLLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setProjections(new ProjectionsSegment(0, 0)); @@ -195,7 +195,7 @@ public void assertBuildOrderByStreamMergedResultWithMySQLLimit() throws SQLExcep @Test public void assertBuildOrderByStreamMergedResultWithOracleLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("Oracle")); - final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); WhereSegment whereSegment = mock(WhereSegment.class); BinaryOperationExpression binaryOperationExpression = mock(BinaryOperationExpression.class); when(binaryOperationExpression.getLeft()).thenReturn(new ColumnSegment(0, 0, new IdentifierValue("row_id"))); @@ -227,8 +227,8 @@ public void assertBuildOrderByStreamMergedResultWithOracleLimit() throws SQLExce @Test public void assertBuildOrderByStreamMergedResultWithSQLServerLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SQLServerSelectStatement selectStatement = (SQLServerSelectStatement) buildSelectStatement(new SQLServerSelectStatement()); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setProjections(new ProjectionsSegment(0, 0)); @@ -243,8 +243,8 @@ public void assertBuildOrderByStreamMergedResultWithSQLServerLimit() throws SQLE @Test public void assertBuildGroupByStreamMergedResult() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); @@ -257,8 +257,8 @@ public void assertBuildGroupByStreamMergedResult() throws SQLException { @Test public void assertBuildGroupByStreamMergedResultWithMySQLLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); @@ -274,7 +274,7 @@ public void assertBuildGroupByStreamMergedResultWithMySQLLimit() throws SQLExcep @Test public void assertBuildGroupByStreamMergedResultWithOracleLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("Oracle")); - final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); WhereSegment whereSegment = mock(WhereSegment.class); BinaryOperationExpression binaryOperationExpression = mock(BinaryOperationExpression.class); when(binaryOperationExpression.getLeft()).thenReturn(new ColumnSegment(0, 0, new IdentifierValue("row_id"))); @@ -307,8 +307,8 @@ public void assertBuildGroupByStreamMergedResultWithOracleLimit() throws SQLExce @Test public void assertBuildGroupByStreamMergedResultWithSQLServerLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SQLServerSelectStatement selectStatement = (SQLServerSelectStatement) buildSelectStatement(new SQLServerSelectStatement()); selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); @@ -324,8 +324,8 @@ public void assertBuildGroupByStreamMergedResultWithSQLServerLimit() throws SQLE @Test public void assertBuildGroupByMemoryMergedResult() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setProjections(new ProjectionsSegment(0, 0)); @@ -337,8 +337,8 @@ public void assertBuildGroupByMemoryMergedResult() throws SQLException { @Test public void assertBuildGroupByMemoryMergedResultWithMySQLLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)))); selectStatement.setProjections(new ProjectionsSegment(0, 0)); @@ -353,7 +353,7 @@ public void assertBuildGroupByMemoryMergedResultWithMySQLLimit() throws SQLExcep @Test public void assertBuildGroupByMemoryMergedResultWithOracleLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("Oracle")); - final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); WhereSegment whereSegment = mock(WhereSegment.class); BinaryOperationExpression binaryOperationExpression = mock(BinaryOperationExpression.class); when(binaryOperationExpression.getLeft()).thenReturn(new ColumnSegment(0, 0, new IdentifierValue("row_id"))); @@ -386,8 +386,8 @@ public void assertBuildGroupByMemoryMergedResultWithOracleLimit() throws SQLExce @Test public void assertBuildGroupByMemoryMergedResultWithSQLServerLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SQLServerSelectStatement selectStatement = (SQLServerSelectStatement) buildSelectStatement(new SQLServerSelectStatement()); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); selectStatement.setProjections(projectionsSegment); @@ -404,8 +404,8 @@ public void assertBuildGroupByMemoryMergedResultWithSQLServerLimit() throws SQLE @Test public void assertBuildGroupByMemoryMergedResultWithAggregationOnly() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("MySQL")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.COUNT, "(*)")); @@ -417,8 +417,8 @@ public void assertBuildGroupByMemoryMergedResultWithAggregationOnly() throws SQL @Test public void assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithMySQLLimit() throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); MySQLSelectStatement selectStatement = (MySQLSelectStatement) buildSelectStatement(new MySQLSelectStatement()); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.COUNT, "(*)")); @@ -436,7 +436,7 @@ public void assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithMySQLLimi @Test public void assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithOracleLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("Oracle")); - final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); WhereSegment whereSegment = mock(WhereSegment.class); BinaryOperationExpression binaryOperationExpression = mock(BinaryOperationExpression.class); when(binaryOperationExpression.getLeft()).thenReturn(new ColumnSegment(0, 0, new IdentifierValue("row_id"))); @@ -469,8 +469,8 @@ public void assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithOracleLim @Test public void assertBuildGroupByMemoryMergedResultWithAggregationOnlyWithSQLServerLimit() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); SQLServerSelectStatement selectStatement = (SQLServerSelectStatement) buildSelectStatement(new SQLServerSelectStatement()); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.COUNT, "(*)")); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java index 7273237c29c55..8914036a46b16 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java @@ -120,8 +120,7 @@ private SelectStatementContext createSelectStatementContext() { selectStatement.setGroupBy(new GroupBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 3, OrderDirection.ASC, OrderDirection.ASC)))); selectStatement.setOrderBy(new OrderBySegment(0, 0, Collections.singletonList(new IndexOrderByItemSegment(0, 0, 3, OrderDirection.DESC, OrderDirection.ASC)))); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); - when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setProjections(projectionsSegment); return new SelectStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), Collections.emptyList(), selectStatement, DefaultDatabase.LOGIC_NAME); } @@ -194,7 +193,7 @@ public void assertNextForDistinctShorthandResultSetsEmpty() throws SQLException when(schema.get("t_order")).thenReturn(tableMetaData); when(tableMetaData.getColumns()).thenReturn(Collections.emptyMap()); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); when(databaseMetaData.getDatabase().getSchemas()).thenReturn(mockSchemas(schema)); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); when(schema.getAllColumnNames("t_order")).thenReturn(Arrays.asList("order_id", "content")); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java index c7a22adee5e89..1dff5178afa63 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java @@ -80,8 +80,8 @@ public void assertCompareToForAscWithOrderByItemsForSQLServer() throws SQLExcept } private void assertCompareToForAscWithOrderByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC)))); @@ -123,8 +123,8 @@ public void assertCompareToForDecsWithOrderByItemsForSQLServer() throws SQLExcep } private void assertCompareToForDecsWithOrderByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.ASC, OrderDirection.ASC)))); @@ -166,8 +166,8 @@ public void assertCompareToForEqualWithOrderByItemsForSQLServer() throws SQLExce } private void assertCompareToForEqualWithOrderByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.ASC, OrderDirection.ASC)))); @@ -209,8 +209,8 @@ public void assertCompareToForAscWithGroupByItemsForSQLServer() throws SQLExcept } private void assertCompareToForAscWithGroupByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.ASC, OrderDirection.ASC)))); @@ -250,8 +250,8 @@ public void assertCompareToForDecsWithGroupByItemsForSQLServer() throws SQLExcep } private void assertCompareToForDecsWithGroupByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC)))); @@ -291,8 +291,8 @@ public void assertCompareToForEqualWithGroupByItemsForSQLServer() throws SQLExce } private void assertCompareToForEqualWithGroupByItems(final SelectStatement selectStatement) throws SQLException { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); selectStatement.setGroupBy(new GroupBySegment(0, 0, Arrays.asList( new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC), new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC)))); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java index d4f87521cdffc..0ffc6df36abf6 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java @@ -161,8 +161,8 @@ private SelectStatementContext createSelectStatementContext() { SimpleTableSegment tableSegment = new SimpleTableSegment(new TableNameSegment(10, 13, new IdentifierValue("tbl"))); MySQLSelectStatement selectStatement = new MySQLSelectStatement(); selectStatement.setFrom(tableSegment); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.COUNT, "(*)")); projectionsSegment.getProjections().add(new AggregationProjectionSegment(0, 0, AggregationType.AVG, "(num)")); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/TopAndRowNumberDecoratorMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/TopAndRowNumberDecoratorMergedResultTest.java index a80dc9aa6499c..c9099d92bda13 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/TopAndRowNumberDecoratorMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/pagination/TopAndRowNumberDecoratorMergedResultTest.java @@ -55,7 +55,7 @@ public void setUp() { @Test public void assertNextForSkipAll() throws SQLException { ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); SQLServerSelectStatement sqlStatement = new SQLServerSelectStatement(); sqlStatement.setProjections(new ProjectionsSegment(0, 0)); sqlStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralRowNumberValueSegment(0, 0, Integer.MAX_VALUE, true), null)); @@ -71,7 +71,7 @@ public void assertNextForSkipAll() throws SQLException { public void assertNextWithoutOffsetWithRowCount() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); SQLServerSelectStatement sqlStatement = new SQLServerSelectStatement(); sqlStatement.setProjections(new ProjectionsSegment(0, 0)); sqlStatement.setLimit(new LimitSegment(0, 0, null, new NumberLiteralLimitValueSegment(0, 0, 5))); @@ -88,7 +88,7 @@ public void assertNextWithoutOffsetWithRowCount() throws SQLException { @Test public void assertNextWithOffsetWithoutRowCount() throws SQLException { ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); SQLServerSelectStatement sqlStatement = new SQLServerSelectStatement(); sqlStatement.setProjections(new ProjectionsSegment(0, 0)); sqlStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralRowNumberValueSegment(0, 0, 2, true), null)); @@ -107,7 +107,7 @@ public void assertNextWithOffsetWithoutRowCount() throws SQLException { public void assertNextWithOffsetBoundOpenedFalse() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); final ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); SQLServerSelectStatement sqlStatement = new SQLServerSelectStatement(); sqlStatement.setProjections(new ProjectionsSegment(0, 0)); sqlStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralRowNumberValueSegment(0, 0, 2, false), new NumberLiteralLimitValueSegment(0, 0, 4))); @@ -124,7 +124,7 @@ public void assertNextWithOffsetBoundOpenedFalse() throws SQLException { public void assertNextWithOffsetBoundOpenedTrue() throws SQLException { final ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeFactory.getInstance("SQLServer")); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); SQLServerSelectStatement sqlStatement = new SQLServerSelectStatement(); sqlStatement.setProjections(new ProjectionsSegment(0, 0)); sqlStatement.setLimit(new LimitSegment(0, 0, new NumberLiteralRowNumberValueSegment(0, 0, 2, true), new NumberLiteralLimitValueSegment(0, 0, 4))); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java index 87049e8b58cd8..fb8d2f38c882c 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java @@ -52,7 +52,7 @@ public final class ShardingConditionEngineFactoryTest { @Before public void setUp() { - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); } @SuppressWarnings({"rawtypes", "unchecked"}) diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java index 846e511c6d312..ab5abd58b0817 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java @@ -105,7 +105,7 @@ public final class ShardingRouteEngineFactoryTest { @Before public void setUp() { when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); tableNames = new ArrayList<>(); when(tablesContext.getTableNames()).thenReturn(tableNames); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterIndexStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterIndexStatementValidatorTest.java index 97ed3dc92e1ba..1a4a6b41e4085 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterIndexStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterIndexStatementValidatorTest.java @@ -58,8 +58,8 @@ public void assertPreValidateAlterIndexWhenIndexExistRenameIndexNotExistForPostg TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(true); when(indexes.containsKey("t_order_index_new")).thenReturn(false); new ShardingAlterIndexStatementValidator().preValidate(shardingRule, new AlterIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); @@ -73,8 +73,8 @@ public void assertPreValidateAlterIndexWhenIndexNotExistRenameIndexNotExistForPo TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(false); new ShardingAlterIndexStatementValidator().preValidate(shardingRule, new AlterIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); } @@ -87,8 +87,8 @@ public void assertPreValidateAlterIndexWhenIndexExistRenameIndexExistForPostgreS TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(true); when(indexes.containsKey("t_order_index_new")).thenReturn(true); new ShardingAlterIndexStatementValidator().preValidate(shardingRule, new AlterIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java index 9000cd740027a..720ebfd0768fd 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java @@ -70,7 +70,7 @@ public void assertPreValidateCreateFunctionForMySQL() { SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order_item")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order_item")).thenReturn(true); new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); } @@ -115,7 +115,7 @@ public void assertPreValidateCreateFunctionWithTableExistsForMySQL() { SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order")).thenReturn(true); new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateIndexStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateIndexStatementValidatorTest.java index 24d2ac9a0d1bd..2a2dfb5652d26 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateIndexStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateIndexStatementValidatorTest.java @@ -59,9 +59,9 @@ public void assertPreValidateCreateIndexWhenTableExistIndexNotExistForPostgreSQL PostgreSQLCreateIndexStatement sqlStatement = new PostgreSQLCreateIndexStatement(); sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("t_order_index")))); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(true); TableMetaData tableMetaData = mock(TableMetaData.class); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); when(indexes.containsKey("t_order_index")).thenReturn(false); @@ -73,7 +73,7 @@ public void assertPreValidateCreateIndexWhenTableNotExistIndexNotExistForPostgre PostgreSQLCreateIndexStatement sqlStatement = new PostgreSQLCreateIndexStatement(); sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("t_order_index")))); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(false); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(false); new ShardingCreateIndexStatementValidator().preValidate(shardingRule, new CreateIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); } @@ -82,9 +82,9 @@ public void assertPreValidateCreateIndexWhenTableExistIndexExistForPostgreSQL() PostgreSQLCreateIndexStatement sqlStatement = new PostgreSQLCreateIndexStatement(); sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 0, new IdentifierValue("t_order_index")))); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(true); TableMetaData tableMetaData = mock(TableMetaData.class); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); when(indexes.containsKey("t_order_index")).thenReturn(true); @@ -97,9 +97,9 @@ public void assertPreValidateCreateIndexWithoutIndexNameWhenTableExistIndexNotEx sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setColumns(Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("content")))); sqlStatement.setGeneratedIndexStartIndex(10); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(true); TableMetaData tableMetaData = mock(TableMetaData.class); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); new ShardingCreateIndexStatementValidator().preValidate(shardingRule, new CreateIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); @@ -111,7 +111,7 @@ public void assertPreValidateCreateIndexWithoutIndexNameWhenTableNotExistIndexNo sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setColumns(Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("content")))); sqlStatement.setGeneratedIndexStartIndex(10); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(false); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(false); new ShardingCreateIndexStatementValidator().preValidate(shardingRule, new CreateIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); } @@ -121,9 +121,9 @@ public void assertPreValidateCreateIndexWithoutIndexNameWhenTableExistIndexExist sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); sqlStatement.setColumns(Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("content")))); sqlStatement.setGeneratedIndexStartIndex(10); - when(databaseMetaData.getSchema("public").containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema("public").containsTable("t_order")).thenReturn(true); TableMetaData tableMetaData = mock(TableMetaData.class); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); when(indexes.containsKey("content_idx")).thenReturn(true); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java index 0aca6277a928d..0237350453f82 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java @@ -69,7 +69,7 @@ public void assertPreValidateCreateProcedureForMySQL() { sqlStatement.setRoutineBody(routineBody); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order_item")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order_item")).thenReturn(true); when(shardingRule.isShardingTable("t_order_item")).thenReturn(false); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); @@ -116,7 +116,7 @@ public void assertPreValidateCreateProcedureWithTableExistsForMySQL() { SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).containsTable("t_order")).thenReturn(true); new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java index b255d5832b35e..f4b181e578149 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java @@ -106,7 +106,7 @@ private void assertPreValidateCreateTable(final CreateTableStatement sqlStatemen SQLStatementContext sqlStatementContext = new CreateTableStatementContext(sqlStatement); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn("sharding_db"); - when(databaseMetaData.getSchema(schemaName).containsTable("t_order")).thenReturn(true); + when(databaseMetaData.getDatabase().getSchema(schemaName).containsTable("t_order")).thenReturn(true); new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); } @@ -128,7 +128,7 @@ public void assertPreValidateCreateTableIfNotExistsForPostgreSQL() { private void assertPreValidateCreateTableIfNotExists(final CreateTableStatement sqlStatement) { SQLStatementContext sqlStatementContext = new CreateTableStatementContext(sqlStatement); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), databaseMetaData); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDropIndexStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDropIndexStatementValidatorTest.java index c8927d84acf76..aa75712f27cf2 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDropIndexStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDropIndexStatementValidatorTest.java @@ -69,8 +69,8 @@ public void assertPreValidateDropIndexWhenIndexExistForPostgreSQL() { TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(true); when(indexes.containsKey("t_order_index_new")).thenReturn(true); new ShardingDropIndexStatementValidator().preValidate(shardingRule, new DropIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); @@ -84,8 +84,8 @@ public void assertPreValidateDropIndexWhenIndexNotExistForPostgreSQL() { TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(false); new ShardingDropIndexStatementValidator().preValidate(shardingRule, new DropIndexStatementContext(sqlStatement), Collections.emptyList(), databaseMetaData); } @@ -98,8 +98,8 @@ public void assertPostValidateDropIndexWithSameRouteResultShardingTableIndexForP TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(true); when(shardingRule.isShardingTable("t_order")).thenReturn(true); when(shardingRule.getTableRule("t_order")).thenReturn(new TableRule(Arrays.asList("ds_0", "ds_1"), "t_order")); @@ -119,8 +119,8 @@ public void assertPostValidateDropIndexWithDifferentRouteResultShardingTableInde TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); - when(databaseMetaData.getSchema("public").get("t_order")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_order")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_order")).thenReturn(tableMetaData); when(indexes.containsKey("t_order_index")).thenReturn(true); when(shardingRule.isShardingTable("t_order")).thenReturn(true); when(shardingRule.getTableRule("t_order")).thenReturn(new TableRule(Arrays.asList("ds_0", "ds_1"), "t_order")); @@ -139,8 +139,8 @@ public void assertPostValidateDropIndexWithSameRouteResultBroadcastTableIndexFor TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_config")); - when(databaseMetaData.getSchema("public").get("t_config")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_config")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_config")).thenReturn(tableMetaData); when(indexes.containsKey("t_config_index")).thenReturn(true); when(shardingRule.isBroadcastTable("t_config")).thenReturn(true); when(shardingRule.getTableRule("t_config")).thenReturn(new TableRule(Arrays.asList("ds_0", "ds_1"), "t_config")); @@ -160,8 +160,8 @@ public void assertPostValidateDropIndexWithDifferentRouteResultBroadcastTableInd TableMetaData tableMetaData = mock(TableMetaData.class); Map indexes = mock(HashMap.class); when(tableMetaData.getIndexes()).thenReturn(indexes); - when(databaseMetaData.getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_config")); - when(databaseMetaData.getSchema("public").get("t_config")).thenReturn(tableMetaData); + when(databaseMetaData.getDatabase().getSchema("public").getAllTableNames()).thenReturn(Collections.singletonList("t_config")); + when(databaseMetaData.getDatabase().getSchema("public").get("t_config")).thenReturn(tableMetaData); when(indexes.containsKey("t_config_index")).thenReturn(true); when(shardingRule.isBroadcastTable("t_config")).thenReturn(true); when(shardingRule.getTableRule("t_config")).thenReturn(new TableRule(Arrays.asList("ds_0", "ds_1"), "t_config")); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java index 0f490185befd1..03808576af45b 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java @@ -65,6 +65,7 @@ import java.util.Optional; import java.util.Properties; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -86,12 +87,13 @@ public void assertPreValidateWhenInsertMultiTables() { Collection tableNames = sqlStatementContext.getTablesContext().getTableNames(); when(shardingRule.isAllShardingTables(tableNames)).thenReturn(false); when(shardingRule.tableRuleExists(tableNames)).thenReturn(true); - new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class)); + new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, + sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS)); } private InsertStatementContext createInsertStatementContext(final List parameters, final InsertStatement insertStatement) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); return new InsertStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), parameters, insertStatement, DefaultDatabase.LOGIC_NAME); } @@ -101,7 +103,8 @@ public void assertPreValidateWhenInsertSelectWithoutKeyGenerateColumn() { when(shardingRule.isGenerateKeyColumn("id", "user")).thenReturn(false); SQLStatementContext sqlStatementContext = createInsertStatementContext(Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTableNames().addAll(createSingleTablesContext().getTableNames()); - new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class)); + new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, + sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS)); } @Test @@ -110,7 +113,8 @@ public void assertPreValidateWhenInsertSelectWithKeyGenerateColumn() { when(shardingRule.isGenerateKeyColumn("id", "user")).thenReturn(true); SQLStatementContext sqlStatementContext = createInsertStatementContext(Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTableNames().addAll(createSingleTablesContext().getTableNames()); - new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class)); + new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, + sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS)); } @Test(expected = ShardingSphereException.class) @@ -122,7 +126,8 @@ public void assertPreValidateWhenInsertSelectWithoutBindingTables() { when(shardingRule.tableRuleExists(multiTablesContext.getTableNames())).thenReturn(true); SQLStatementContext sqlStatementContext = createInsertStatementContext(Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTableNames().addAll(multiTablesContext.getTableNames()); - new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class)); + new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, + sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS)); } @Test @@ -132,7 +137,8 @@ public void assertPreValidateWhenInsertSelectWithBindingTables() { TablesContext multiTablesContext = createMultiTablesContext(); SQLStatementContext sqlStatementContext = createInsertStatementContext(Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTableNames().addAll(multiTablesContext.getTableNames()); - new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class)); + new ShardingInsertStatementValidator(shardingConditions).preValidate(shardingRule, + sqlStatementContext, Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS)); } @Test @@ -140,7 +146,7 @@ public void assertPostValidateWhenInsertWithSingleRouting() { SQLStatementContext sqlStatementContext = createInsertStatementContext(Collections.singletonList(1), createInsertStatement()); when(routeContext.isSingleRouting()).thenReturn(true); new ShardingInsertStatementValidator(shardingConditions).postValidate(shardingRule, sqlStatementContext, - Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), routeContext); + Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), routeContext); } @Test @@ -149,7 +155,7 @@ public void assertPostValidateWhenInsertWithBroadcastTable() { when(routeContext.isSingleRouting()).thenReturn(false); when(shardingRule.isBroadcastTable(sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue())).thenReturn(true); new ShardingInsertStatementValidator(shardingConditions).postValidate(shardingRule, sqlStatementContext, - Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), routeContext); + Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), routeContext); } @Test @@ -159,7 +165,7 @@ public void assertPostValidateWhenInsertWithRoutingToSingleDataNode() { when(shardingRule.isBroadcastTable(sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue())).thenReturn(false); when(routeContext.getOriginalDataNodes()).thenReturn(getSingleRouteDataNodes()); new ShardingInsertStatementValidator(shardingConditions).postValidate(shardingRule, sqlStatementContext, - Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), routeContext); + Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), routeContext); } @Test(expected = IllegalStateException.class) @@ -169,7 +175,7 @@ public void assertPostValidateWhenInsertWithRoutingToMultipleDataNodes() { when(shardingRule.isBroadcastTable(sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue())).thenReturn(false); when(routeContext.getOriginalDataNodes()).thenReturn(getMultipleRouteDataNodes()); new ShardingInsertStatementValidator(shardingConditions).postValidate(shardingRule, sqlStatementContext, - Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), routeContext); + Collections.emptyList(), mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), routeContext); } @Test @@ -179,7 +185,7 @@ public void assertPostValidateWhenNotOnDuplicateKeyUpdateShardingColumn() { when(routeContext.isSingleRouting()).thenReturn(true); InsertStatementContext insertStatementContext = createInsertStatementContext(parameters, createInsertStatement()); new ShardingInsertStatementValidator(mock(ShardingConditions.class)).postValidate(shardingRule, - insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), routeContext); + insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), routeContext); } @Test @@ -188,7 +194,7 @@ public void assertPostValidateWhenOnDuplicateKeyUpdateShardingColumnWithSameRout List parameters = Collections.singletonList(1); InsertStatementContext insertStatementContext = createInsertStatementContext(parameters, createInsertStatement()); new ShardingInsertStatementValidator(mock(ShardingConditions.class)).postValidate(shardingRule, - insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), createSingleRouteContext()); + insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), createSingleRouteContext()); } @Test(expected = ShardingSphereException.class) @@ -197,7 +203,7 @@ public void assertPostValidateWhenOnDuplicateKeyUpdateShardingColumnWithDifferen List parameters = Collections.singletonList(1); InsertStatementContext insertStatementContext = createInsertStatementContext(parameters, createInsertStatement()); new ShardingInsertStatementValidator(mock(ShardingConditions.class)).postValidate(shardingRule, - insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class), mock(ConfigurationProperties.class), createFullRouteContext()); + insertStatementContext, parameters, mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS), mock(ConfigurationProperties.class), createFullRouteContext()); } private void mockShardingRuleForUpdateShardingColumn() { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java index 3eba4666d373c..cbf0ebf24e009 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java @@ -565,7 +565,7 @@ public void assertIsAllBindingTableWithJoinQueryWithDatabaseJoinCondition() { when(sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftDatabaseJoin, rightDatabaseJoin), schema)).thenReturn(createColumnTableNameMap()); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); assertFalse(createMaximumShardingRule().isAllBindingTables(databaseMetaData, sqlStatementContext, Arrays.asList("logic_Table", "sub_Logic_Table"))); } @@ -589,8 +589,8 @@ public void assertIsAllBindingTableWithJoinQueryWithDatabaseJoinConditionInUpper when(sqlStatementContext.getDatabaseType()).thenReturn(new MySQLDatabaseType()); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("LOGIC_TABLE")).thenReturn(Arrays.asList("user_id", "order_id")); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("SUB_LOGIC_TABLE")).thenReturn(Arrays.asList("uid", "order_id")); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("LOGIC_TABLE")).thenReturn(Arrays.asList("user_id", "order_id")); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("SUB_LOGIC_TABLE")).thenReturn(Arrays.asList("uid", "order_id")); assertFalse(createMaximumShardingRule().isAllBindingTables(databaseMetaData, sqlStatementContext, Arrays.asList("LOGIC_TABLE", "SUB_LOGIC_TABLE"))); } @@ -617,7 +617,7 @@ public void assertIsAllBindingTableWithJoinQueryWithDatabaseTableJoinCondition() when(sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftTableJoin, rightTableJoin), schema)).thenReturn(createColumnTableNameMap()); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getDatabase().getName()).thenReturn(DefaultDatabase.LOGIC_NAME); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); assertTrue(createMaximumShardingRule().isAllBindingTables(databaseMetaData, sqlStatementContext, Arrays.asList("logic_Table", "sub_Logic_Table"))); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java index f1ecb02505b21..8eeed568dbd9b 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java @@ -103,7 +103,7 @@ private ShardingSphereSchema getSchema(final Map databaseMetaData.getSchema(defaultSchema)); + return tablesContext.getSchemaName().map(optional -> databaseMetaData.getDatabase().getSchema(optional)).orElseGet(() -> databaseMetaData.getDatabase().getSchema(defaultSchema)); } private Collection getAllSimpleTableSegments() { diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/impl/InsertStatementContextTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/impl/InsertStatementContextTest.java index 083b67b149155..43995628ed1ed 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/impl/InsertStatementContextTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/impl/InsertStatementContextTest.java @@ -60,6 +60,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -102,10 +103,10 @@ private void assertInsertStatementContextWithColumnNames(final InsertStatement i } private InsertStatementContext createInsertStatementContext(final List parameters, final InsertStatement insertStatement) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); ShardingSphereSchema schema = mock(ShardingSphereSchema.class); String defaultSchemaName = insertStatement instanceof PostgreSQLStatement || insertStatement instanceof OpenGaussStatement ? "public" : DefaultDatabase.LOGIC_NAME; - when(databaseMetaData.getSchema(defaultSchemaName)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(defaultSchemaName)).thenReturn(schema); when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); return new InsertStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), parameters, insertStatement, DefaultDatabase.LOGIC_NAME); } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereDatabaseMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereDatabaseMetaData.java index 513a6ca96c91f..3a07e31f9a2e2 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereDatabaseMetaData.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereDatabaseMetaData.java @@ -30,7 +30,6 @@ import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.rule.builder.schema.DatabaseRulesBuilder; @@ -130,14 +129,4 @@ public boolean isComplete() { public boolean hasDataSource() { return !resource.getDataSources().isEmpty(); } - - /** - * Get schema. - * - * @param schemaName schema name - * @return ShardingSphere schema - */ - public ShardingSphereSchema getSchema(final String schemaName) { - return database.getSchemas().get(schemaName); - } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java index cfe35adc369d3..5a1fba5cddf4e 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java @@ -38,4 +38,14 @@ public ShardingSphereDatabase(final String name, final Map(schemas.size(), 1); schemas.forEach((key, value) -> this.schemas.put(key.toLowerCase(), value)); } + + /** + * Get schema. + * + * @param schemaName schema name + * @return ShardingSphere schema + */ + public ShardingSphereSchema getSchema(final String schemaName) { + return schemas.get(schemaName); + } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/util/IndexMetaDataUtil.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/util/IndexMetaDataUtil.java index 08bdf0c37740f..b10fb39c4d2d4 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/util/IndexMetaDataUtil.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/util/IndexMetaDataUtil.java @@ -92,7 +92,7 @@ public static Collection getTableNamesFromMetaData(final Shardin String schemaName = databaseType.getDefaultSchema(databaseMetaData.getDatabase().getName()); for (IndexSegment each : indexes) { String actualSchemaName = each.getOwner().map(optional -> optional.getIdentifier().getValue()).orElse(schemaName); - findLogicTableNameFromMetaData(databaseMetaData.getSchema(actualSchemaName), + findLogicTableNameFromMetaData(databaseMetaData.getDatabase().getSchema(actualSchemaName), each.getIndexName().getIdentifier().getValue()).ifPresent(optional -> result.add(new QualifiedTable(actualSchemaName, optional))); } return result; diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java index c8780240d1ff1..05382661988cb 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java @@ -53,9 +53,9 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final } String actualSchemaName = sqlStatement.getIndex().get().getOwner().map(optional -> optional.getIdentifier().getValue()).orElse(schemaName); String indexName = sqlStatement.getIndex().get().getIndexName().getIdentifier().getValue(); - Optional logicTableName = findLogicTableName(databaseMetaData.getSchema(actualSchemaName), indexName); + Optional logicTableName = findLogicTableName(databaseMetaData.getDatabase().getSchema(actualSchemaName), indexName); if (logicTableName.isPresent()) { - TableMetaData tableMetaData = databaseMetaData.getSchema(actualSchemaName).get(logicTableName.get()); + TableMetaData tableMetaData = databaseMetaData.getDatabase().getSchema(actualSchemaName).get(logicTableName.get()); Preconditions.checkNotNull(tableMetaData, "Can not get the table '%s' metadata!", logicTableName.get()); tableMetaData.getIndexes().remove(indexName); String renameIndexName = renameIndex.get().getIndexName().getIdentifier().getValue(); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java index 748739f239789..98d675160b9cb 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java @@ -55,7 +55,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final putSchemaMetaData(databaseMetaData, database, optimizerPlanners, actualSchemaName, renameSchemaName.get().getValue(), logicDataSourceNames); removeSchemaMetaData(databaseMetaData, database, optimizerPlanners, actualSchemaName); AlterSchemaEvent event = new AlterSchemaEvent(databaseMetaData.getDatabase().getName(), - actualSchemaName, renameSchemaName.get().getValue(), databaseMetaData.getSchema(renameSchemaName.get().getValue())); + actualSchemaName, renameSchemaName.get().getValue(), databaseMetaData.getDatabase().getSchema(renameSchemaName.get().getValue())); ShardingSphereEventBus.getInstance().post(event); } @@ -78,7 +78,7 @@ private void removeDataNode(final Collection rules, final S private void putSchemaMetaData(final ShardingSphereDatabaseMetaData databaseMetaData, final FederationDatabaseMetaData database, final Map optimizerPlanners, final String schemaName, final String renameSchemaName, final Collection logicDataSourceNames) { - ShardingSphereSchema schema = databaseMetaData.getSchema(schemaName); + ShardingSphereSchema schema = databaseMetaData.getDatabase().getSchema(schemaName); databaseMetaData.getDatabase().getSchemas().put(renameSchemaName, schema); database.getSchemaMetadata(schemaName).ifPresent(optional -> database.putSchemaMetadata(renameSchemaName, optional)); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterTableStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterTableStatementSchemaRefresher.java index 6dbc1075066ff..4fa323f4901fa 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterTableStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterTableStatementSchemaRefresher.java @@ -55,18 +55,18 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final String renameTable = sqlStatement.getRenameTable().get().getTableName().getIdentifier().getValue(); putTableMetaData(databaseMetaData, database, optimizerPlanners, logicDataSourceNames, schemaName, renameTable, props); removeTableMetaData(databaseMetaData, database, optimizerPlanners, schemaName, tableName); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(renameTable)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(renameTable)); event.getDroppedTables().add(tableName); } else { putTableMetaData(databaseMetaData, database, optimizerPlanners, logicDataSourceNames, schemaName, tableName, props); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(tableName)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(tableName)); } ShardingSphereEventBus.getInstance().post(event); } private void removeTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaData, final FederationDatabaseMetaData database, final Map optimizerPlanners, final String schemaName, final String tableName) { - databaseMetaData.getSchema(schemaName).remove(tableName); + databaseMetaData.getDatabase().getSchema(schemaName).remove(tableName); databaseMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each -> each.remove(schemaName, tableName)); database.removeTableMetadata(schemaName, tableName); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); @@ -82,7 +82,7 @@ private void putTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaD Map metaDataMap = TableMetaDataBuilder.load(Collections.singletonList(tableName), materials); Optional actualTableMetaData = Optional.ofNullable(metaDataMap.get(schemaName)).map(optional -> optional.getTables().get(tableName)); actualTableMetaData.ifPresent(optional -> { - databaseMetaData.getSchema(schemaName).put(tableName, optional); + databaseMetaData.getDatabase().getSchema(schemaName).put(tableName, optional); database.putTableMetadata(schemaName, optional); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); }); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterViewStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterViewStatementSchemaRefresher.java index 3663140b44aa3..db4cb2bb0d972 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterViewStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterViewStatementSchemaRefresher.java @@ -58,18 +58,18 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final String renameViewName = renameView.get().getTableName().getIdentifier().getValue(); putTableMetaData(databaseMetaData, database, optimizerPlanners, logicDataSourceNames, schemaName, renameViewName, props); removeTableMetaData(databaseMetaData, database, optimizerPlanners, schemaName, viewName); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(renameViewName)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(renameViewName)); event.getDroppedTables().add(viewName); } else { putTableMetaData(databaseMetaData, database, optimizerPlanners, logicDataSourceNames, schemaName, viewName, props); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(viewName)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(viewName)); } ShardingSphereEventBus.getInstance().post(event); } private void removeTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaData, final FederationDatabaseMetaData database, final Map optimizerPlanners, final String schemaName, final String viewName) { - databaseMetaData.getSchema(schemaName).remove(viewName); + databaseMetaData.getDatabase().getSchema(schemaName).remove(viewName); databaseMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each -> each.remove(schemaName, viewName)); database.removeTableMetadata(schemaName, viewName); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); @@ -85,7 +85,7 @@ private void putTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaD Map metaDataMap = TableMetaDataBuilder.load(Collections.singletonList(viewName), materials); Optional actualViewMetaData = Optional.ofNullable(metaDataMap.get(schemaName)).map(optional -> optional.getTables().get(viewName)); actualViewMetaData.ifPresent(optional -> { - databaseMetaData.getSchema(schemaName).put(viewName, optional); + databaseMetaData.getDatabase().getSchema(schemaName).put(viewName, optional); database.putTableMetadata(schemaName, optional); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); }); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateIndexStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateIndexStatementSchemaRefresher.java index 13a6e272ba234..b5cd8b8d3c777 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateIndexStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateIndexStatementSchemaRefresher.java @@ -49,9 +49,9 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final return; } String tableName = sqlStatement.getTable().getTableName().getIdentifier().getValue(); - databaseMetaData.getSchema(schemaName).get(tableName).getIndexes().put(indexName, new IndexMetaData(indexName)); + databaseMetaData.getDatabase().getSchema(schemaName).get(tableName).getIndexes().put(indexName, new IndexMetaData(indexName)); SchemaAlteredEvent event = new SchemaAlteredEvent(databaseMetaData.getDatabase().getName(), schemaName); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(tableName)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(tableName)); ShardingSphereEventBus.getInstance().post(event); } diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateTableStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateTableStatementSchemaRefresher.java index 61e12575a9645..2fcd4e697d750 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateTableStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateTableStatementSchemaRefresher.java @@ -58,7 +58,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final Map metaDataMap = TableMetaDataBuilder.load(Collections.singletonList(tableName), materials); Optional actualTableMetaData = Optional.ofNullable(metaDataMap.get(schemaName)).map(optional -> optional.getTables().get(tableName)); actualTableMetaData.ifPresent(optional -> { - databaseMetaData.getSchema(schemaName).put(tableName, optional); + databaseMetaData.getDatabase().getSchema(schemaName).put(tableName, optional); database.putTableMetadata(schemaName, optional); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); SchemaAlteredEvent event = new SchemaAlteredEvent(databaseMetaData.getDatabase().getName(), schemaName); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateViewStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateViewStatementSchemaRefresher.java index 5abbf0238e002..8b80b566dd57b 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateViewStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateViewStatementSchemaRefresher.java @@ -58,7 +58,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final Map metaDataMap = TableMetaDataBuilder.load(Collections.singletonList(viewName), materials); Optional actualViewMetaData = Optional.ofNullable(metaDataMap.get(schemaName)).map(optional -> optional.getTables().get(viewName)); actualViewMetaData.ifPresent(optional -> { - databaseMetaData.getSchema(schemaName).put(viewName, optional); + databaseMetaData.getDatabase().getSchema(schemaName).put(viewName, optional); database.putTableMetadata(schemaName, optional); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); SchemaAlteredEvent event = new SchemaAlteredEvent(databaseMetaData.getDatabase().getName(), schemaName); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java index 3ced69ee05927..a01c8391b2634 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java @@ -54,7 +54,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final if (!logicTableName.isPresent()) { continue; } - TableMetaData tableMetaData = databaseMetaData.getSchema(actualSchemaName).get(logicTableName.get()); + TableMetaData tableMetaData = databaseMetaData.getDatabase().getSchema(actualSchemaName).get(logicTableName.get()); tableMetaData.getIndexes().remove(each.getIndexName().getIdentifier().getValue()); post(databaseMetaData.getDatabase().getName(), actualSchemaName, tableMetaData); } diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropTableStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropTableStatementSchemaRefresher.java index 7b6101529eb98..62107d2c40deb 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropTableStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropTableStatementSchemaRefresher.java @@ -45,7 +45,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final final Collection logicDataSourceNames, final String schemaName, final DropTableStatement sqlStatement, final ConfigurationProperties props) throws SQLException { SchemaAlteredEvent event = new SchemaAlteredEvent(databaseMetaData.getDatabase().getName(), schemaName); sqlStatement.getTables().forEach(each -> { - databaseMetaData.getSchema(schemaName).remove(each.getTableName().getIdentifier().getValue()); + databaseMetaData.getDatabase().getSchema(schemaName).remove(each.getTableName().getIdentifier().getValue()); database.removeTableMetadata(schemaName, each.getTableName().getIdentifier().getValue()); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); event.getDroppedTables().add(each.getTableName().getIdentifier().getValue()); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropViewStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropViewStatementSchemaRefresher.java index 629f15810af3f..7ecdf2b4ac7c9 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropViewStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropViewStatementSchemaRefresher.java @@ -44,7 +44,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final final Collection logicDataSourceNames, final String schemaName, final DropViewStatement sqlStatement, final ConfigurationProperties props) throws SQLException { SchemaAlteredEvent event = new SchemaAlteredEvent(databaseMetaData.getDatabase().getName(), schemaName); sqlStatement.getViews().forEach(each -> { - databaseMetaData.getSchema(schemaName).remove(each.getTableName().getIdentifier().getValue()); + databaseMetaData.getDatabase().getSchema(schemaName).remove(each.getTableName().getIdentifier().getValue()); event.getDroppedTables().add(each.getTableName().getIdentifier().getValue()); }); Collection rules = databaseMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class); diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/RenameTableStatementSchemaRefresher.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/RenameTableStatementSchemaRefresher.java index 1fc3199354346..e2158775f9c7a 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/RenameTableStatementSchemaRefresher.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/RenameTableStatementSchemaRefresher.java @@ -56,7 +56,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final String renameTable = each.getRenameTable().getTableName().getIdentifier().getValue(); putTableMetaData(databaseMetaData, database, optimizerPlanners, logicDataSourceNames, schemaName, renameTable, props); removeTableMetaData(databaseMetaData, database, optimizerPlanners, schemaName, tableName); - event.getAlteredTables().add(databaseMetaData.getSchema(schemaName).get(renameTable)); + event.getAlteredTables().add(databaseMetaData.getDatabase().getSchema(schemaName).get(renameTable)); event.getDroppedTables().add(tableName); } ShardingSphereEventBus.getInstance().post(event); @@ -64,7 +64,7 @@ public void refresh(final ShardingSphereDatabaseMetaData databaseMetaData, final private void removeTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaData, final FederationDatabaseMetaData database, final Map optimizerPlanners, final String schemaName, final String tableName) { - databaseMetaData.getSchema(schemaName).remove(tableName); + databaseMetaData.getDatabase().getSchema(schemaName).remove(tableName); databaseMetaData.getRuleMetaData().findRules(MutableDataNodeRule.class).forEach(each -> each.remove(schemaName, tableName)); database.removeTableMetadata(schemaName, tableName); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); @@ -80,7 +80,7 @@ private void putTableMetaData(final ShardingSphereDatabaseMetaData databaseMetaD Map metaDataMap = TableMetaDataBuilder.load(Collections.singletonList(tableName), materials); Optional actualTableMetaData = Optional.ofNullable(metaDataMap.get(schemaName)).map(optional -> optional.getTables().get(tableName)); actualTableMetaData.ifPresent(optional -> { - databaseMetaData.getSchema(schemaName).put(tableName, optional); + databaseMetaData.getDatabase().getSchema(schemaName).put(tableName, optional); database.putTableMetadata(schemaName, optional); optimizerPlanners.put(database.getName(), OptimizerPlannerContextFactory.create(database)); }); diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java index c82bbafb9eda6..df50886da0f52 100644 --- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java +++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java @@ -230,7 +230,7 @@ private TableMetaData getTableMetaData(final String databaseName, final String l throw new RuntimeException("Can not get meta data by database name " + databaseName); } String schemaName = tableNameSchemaNameMapping.getSchemaName(logicTableName); - ShardingSphereSchema schema = databaseMetaData.getSchema(schemaName); + ShardingSphereSchema schema = databaseMetaData.getDatabase().getSchema(schemaName); if (null == schema) { throw new RuntimeException("Can not get schema by schema name " + schemaName + ", logicTableName=" + logicTableName); } diff --git a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/route/validator/ddl/SingleTableDropSchemaMetadataValidator.java b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/route/validator/ddl/SingleTableDropSchemaMetadataValidator.java index 7e0ef303e2883..93ba31b8b3cbd 100644 --- a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/route/validator/ddl/SingleTableDropSchemaMetadataValidator.java +++ b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/route/validator/ddl/SingleTableDropSchemaMetadataValidator.java @@ -37,7 +37,7 @@ public void validate(final SingleTableRule rule, final SQLStatementContext optional.getSchemaMetaDataService().persistTables(databaseName, schemaName, metaDataContexts.getDatabaseMetaData(databaseName).getSchema(schemaName))); + metaDataContexts.getDatabaseMetaData(databaseName).getDatabase().getSchema(schemaName).put(tableName, schemaMetaData.getTables().get(tableName)); + metaDataContexts.getPersistService().ifPresent(optional -> optional.getSchemaMetaDataService() + .persistTables(databaseName, schemaName, metaDataContexts.getDatabaseMetaData(databaseName).getDatabase().getSchema(schemaName))); } } diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java index b919ca5de0329..4c45418547a50 100644 --- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java +++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java @@ -126,7 +126,7 @@ public void assertAddDatabase() throws SQLException { public void assertAlterSchemas() { contextManager.alterSchemas("foo_db", Collections.singletonMap("foo_db", new ShardingSphereSchema(Collections.singletonMap("foo_table", new TableMetaData("foo_table", Collections.emptyList(), Collections.emptyList(), Collections.emptyList()))))); - assertTrue(contextManager.getMetaDataContexts().getDatabaseMetaDataMap().get("foo_db").getSchema("foo_db").containsTable("foo_table")); + assertTrue(contextManager.getMetaDataContexts().getDatabaseMetaDataMap().get("foo_db").getDatabase().getSchema("foo_db").containsTable("foo_table")); assertTrue(contextManager.getMetaDataContexts().getOptimizerContext().getFederationMetaData().getDatabases().containsKey("foo_db")); Map schemas = contextManager.getMetaDataContexts().getOptimizerContext().getFederationMetaData().getDatabases().get("foo_db").getSchemas(); assertTrue(schemas.get("foo_db").getTables().containsKey("foo_table")); @@ -264,7 +264,7 @@ public void assertReloadMetaData() { contextManager.reloadMetaData("foo_db", "foo_schema"); verify(schemaMetaDataPersistService, times(1)).persistTables(eq("foo_db"), eq("foo_schema"), any(ShardingSphereSchema.class)); contextManager.reloadMetaData("foo_db", "foo_schema", "foo_table"); - assertNotNull(contextManager.getMetaDataContexts().getDatabaseMetaData("foo_db").getSchema("foo_schema")); + assertNotNull(contextManager.getMetaDataContexts().getDatabaseMetaData("foo_db").getDatabase().getSchema("foo_schema")); assertTrue(contextManager.getMetaDataContexts().getDatabaseMetaData("foo_db").getResource().getDataSources().containsKey("foo_ds")); } diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java index f12884de8d3cf..d7ee8741981eb 100644 --- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java +++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java @@ -151,7 +151,7 @@ private Map createDatabaseMetaDataMap() when(resource.getDatabaseType()).thenReturn(new MySQLDatabaseType()); when(databaseMetaData.getResource()).thenReturn(resource); when(databaseMetaData.getProtocolType()).thenReturn(new MySQLDatabaseType()); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); when(databaseMetaData.getRuleMetaData().getRules()).thenReturn(new LinkedList<>()); when(databaseMetaData.getRuleMetaData().getConfigurations()).thenReturn(Collections.emptyList()); return new HashMap<>(Collections.singletonMap("db", databaseMetaData)); @@ -200,7 +200,7 @@ public void assertSchemaChanged() { SchemaChangedEvent event = new SchemaChangedEvent("db", "db", changedTableMetaData, null); coordinator.renew(event); assertTrue(contextManager.getMetaDataContexts().getAllDatabaseNames().contains("db")); - verify(contextManager.getMetaDataContexts().getDatabaseMetaData("db").getSchema("db")).put("t_order", event.getChangedTableMetaData()); + verify(contextManager.getMetaDataContexts().getDatabaseMetaData("db").getDatabase().getSchema("db")).put("t_order", event.getChangedTableMetaData()); } @Test diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java index c3cfb76a2ef23..8058d8d190ccf 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java @@ -46,7 +46,7 @@ public QueryHeader build(final QueryResultMetaData queryResultMetaData, final Sh boolean primaryKey; if (null != actualTableName && null != dataNodeContainedRule.get()) { tableName = dataNodeContainedRule.get().findLogicTableByActualTable(actualTableName).orElse(""); - TableMetaData tableMetaData = databaseMetaData.getSchema(schemaName).get(tableName); + TableMetaData tableMetaData = databaseMetaData.getDatabase().getSchema(schemaName).get(tableName); primaryKey = null != tableMetaData && Optional.ofNullable(tableMetaData.getColumns().get(columnName.toLowerCase())).map(ColumnMetaData::isPrimaryKey).orElse(false); } else { tableName = actualTableName; diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutor.java index 85a3140423b86..bccc817e25b6b 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutor.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutor.java @@ -81,7 +81,7 @@ private QueryResult getQueryResult(final String databaseName) { } private Collection getAllTableNames(final String databaseName) { - Collection result = ProxyContext.getInstance().getMetaData(databaseName) + Collection result = ProxyContext.getInstance().getMetaData(databaseName).getDatabase() .getSchema(databaseName).getTables().values().stream().map(TableMetaData::getName).collect(Collectors.toList()); if (showTablesStatement.getFilter().isPresent()) { Optional pattern = showTablesStatement.getFilter().get().getLike().map(optional -> SQLUtil.convertLikePatternToRegex(optional.getPattern())); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutor.java index 597440a2cc17e..84e0ef4a4264d 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutor.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutor.java @@ -55,7 +55,7 @@ public SelectTableExecutor(final String sql) { protected void initDatabaseData(final String databaseName) { ShardingSphereDatabaseMetaData databaseMetaData = ProxyContext.getInstance().getMetaData(databaseName); String schema = databaseMetaData.getResource().getDatabaseType().getDefaultSchema(databaseName); - tableNames = new ArrayList<>(databaseMetaData.getSchema(schema).getAllTableNames()); + tableNames = new ArrayList<>(databaseMetaData.getDatabase().getSchema(schema).getAllTableNames()); } @Override diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java index 7d84d2ab50502..9c4c49d542c74 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java @@ -64,7 +64,7 @@ protected MergedResult createMergedResult() { throw new RuleNotExistedException(); } String schemaName = connectionSession.getDatabaseType().getDefaultSchema(connectionSession.getDatabaseName()); - Collection tableNames = databaseMetaData.getSchema(schemaName).getAllTableNames(); + Collection tableNames = databaseMetaData.getDatabase().getSchema(schemaName).getAllTableNames(); for (String each : tableNames) { if (HintManager.isDatabaseShardingOnly()) { fillShardingValues(results, each, HintManager.getDatabaseShardingValues(), Collections.emptyList()); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java index 762d89947c0ec..e18b951fe73e8 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java @@ -65,7 +65,7 @@ protected Collection getColumnNames() { protected Collection> getRows(final ContextManager contextManager) { String databaseName = getDatabaseName(); String defaultSchema = connectionSession.getDatabaseType().getDefaultSchema(connectionSession.getDatabaseName()); - ShardingSphereSchema schema = ProxyContext.getInstance().getMetaData(databaseName).getSchema(defaultSchema); + ShardingSphereSchema schema = ProxyContext.getInstance().getMetaData(databaseName).getDatabase().getSchema(defaultSchema); return schema.getAllTableNames().stream().filter(each -> sqlStatement.getTableNames().contains(each)) .map(each -> buildTableRows(databaseName, schema, each)).flatMap(Collection::stream).collect(Collectors.toList()); } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutorTest.java index b1ba99204d3dc..055666fa5bee5 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutorTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutorTest.java @@ -47,6 +47,7 @@ import java.util.Collections; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -139,8 +140,8 @@ private CreateTableStatementContext createMySQLCreateTableStatementContext() { private InsertStatementContext createMySQLInsertStatementContext() { MySQLInsertStatement sqlStatement = new MySQLInsertStatement(); sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); return new InsertStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), Collections.emptyList(), sqlStatement, DefaultDatabase.LOGIC_NAME); } @@ -153,8 +154,8 @@ private CreateTableStatementContext createPostgreSQLCreateTableStatementContext( private InsertStatementContext createPostgreSQLInsertStatementContext() { PostgreSQLInsertStatement sqlStatement = new PostgreSQLInsertStatement(); sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order")))); - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); - when(databaseMetaData.getSchema("public")).thenReturn(mock(ShardingSphereSchema.class)); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); + when(databaseMetaData.getDatabase().getSchema("public")).thenReturn(mock(ShardingSphereSchema.class)); return new InsertStatementContext(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, databaseMetaData), Collections.emptyList(), sqlStatement, DefaultDatabase.LOGIC_NAME); } } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java index 6ece09cbbbb4a..4594bb6eb7af9 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java @@ -143,7 +143,7 @@ protected List init(final ShardingSphereRule rule, final S private ShardingSphereDatabaseMetaData createDatabaseMetaData() { ShardingSphereDatabaseMetaData result = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); ColumnMetaData columnMetaData = new ColumnMetaData("order_id", Types.INTEGER, true, false, false); - when(result.getSchema(DefaultDatabase.LOGIC_NAME).get("t_logic_order")).thenReturn( + when(result.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).get("t_logic_order")).thenReturn( new TableMetaData("t_logic_order", Collections.singletonList(columnMetaData), Collections.singletonList(new IndexMetaData("order_id")), Collections.emptyList())); ShardingRule shardingRule = mock(ShardingRule.class); when(shardingRule.findLogicTableByActualTable("t_order")).thenReturn(Optional.of("t_logic_order")); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java index f6fb12981c62d..0f817d52807e0 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java @@ -104,7 +104,7 @@ private ShardingSphereDatabaseMetaData createDatabaseMetaData() { DataSourcesMetaData dataSourcesMetaData = mock(DataSourcesMetaData.class); when(dataSourcesMetaData.getDataSourceMetaData("ds_0")).thenReturn(mock(DataSourceMetaData.class)); when(result.getResource().getDataSourcesMetaData()).thenReturn(dataSourcesMetaData); - when(result.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(result.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); ShardingRule shardingRule = mock(ShardingRule.class); when(shardingRule.findLogicTableByActualTable("t_order")).thenReturn(Optional.of("t_logic_order")); when(result.getRuleMetaData().getRules()).thenReturn(Collections.singletonList(shardingRule)); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java index c9a33d1bc82fe..cc06fbc0cfb04 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java @@ -100,7 +100,7 @@ public void setUp() { private ShardingSphereDatabaseMetaData mockDatabaseMetaData() { ShardingSphereDatabaseMetaData result = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList()); - when(result.getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("t_order")).thenReturn(Collections.singletonList("order_id")); + when(result.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).getAllColumnNames("t_order")).thenReturn(Collections.singletonList("order_id")); return result; } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java index 1c5508d9660b7..6714fcfc2586c 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java @@ -76,7 +76,7 @@ private Map getDatabaseMetaDataMap() { tables.put("t_test", new TableMetaData("T_TEST", Collections.emptyList(), Collections.emptyList(), Collections.emptyList())); ShardingSphereSchema schema = new ShardingSphereSchema(tables); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(String.format(DATABASE_PATTERN, 0))).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(String.format(DATABASE_PATTERN, 0))).thenReturn(schema); when(databaseMetaData.isComplete()).thenReturn(true); when(databaseMetaData.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType()); return Collections.singletonMap(String.format(DATABASE_PATTERN, 0), databaseMetaData); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java index 4073d79fe5890..57449dc4230d2 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java @@ -62,7 +62,7 @@ public void init() { ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS); when(contextManager.getMetaDataContexts().getAllDatabaseNames()).thenReturn(Collections.singletonList("sharding_db")); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema("sharding_db")).thenReturn(new ShardingSphereSchema(createTableMap())); + when(databaseMetaData.getDatabase().getSchema("sharding_db")).thenReturn(new ShardingSphereSchema(createTableMap())); when(databaseMetaData.getResource().getDataSources()).thenReturn(createDataSourceMap()); when(databaseMetaData.getRuleMetaData().getConfigurations()).thenReturn(Collections.singletonList(createShardingRuleConfiguration())); when(contextManager.getMetaDataContexts().getDatabaseMetaData("sharding_db")).thenReturn(databaseMetaData); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java index f47170631133a..72320a6cd5bf2 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java @@ -52,7 +52,7 @@ public void assertExecutor() throws SQLException { ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS); when(contextManager.getMetaDataContexts().getAllDatabaseNames()).thenReturn(Collections.singletonList("db_name")); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema("db_name")).thenReturn(new ShardingSphereSchema(createTableMap())); + when(databaseMetaData.getDatabase().getSchema("db_name")).thenReturn(new ShardingSphereSchema(createTableMap())); when(contextManager.getMetaDataContexts().getDatabaseMetaData("db_name")).thenReturn(databaseMetaData); ProxyContext.init(contextManager); ConnectionSession connectionSession = mock(ConnectionSession.class, RETURNS_DEEP_STUBS); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java index 97521aa081245..57c1c35e7fcc8 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java @@ -136,7 +136,7 @@ private void init(final String feature) throws Exception { ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS); when(contextManager.getMetaDataContexts().getAllDatabaseNames()).thenReturn(Collections.singletonList(feature)); ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(new ShardingSphereSchema(createTableMap())); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(new ShardingSphereSchema(createTableMap())); when(databaseMetaData.getResource().getDataSources()).thenReturn(createDataSourceMap()); when(contextManager.getMetaDataContexts().getDatabaseMetaData(feature)).thenReturn(databaseMetaData); ProxyContext.init(contextManager); diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java index d9e5e3b34836b..d819464042c4f 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableBackendHandlerTest.java @@ -79,10 +79,10 @@ public void setUp() { private Map createDatabaseMetaDataMap() { Map result = new HashMap<>(10, 1); for (int i = 0; i < 10; i++) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); when(databaseMetaData.getResource()).thenReturn(new ShardingSphereResource(Collections.emptyMap(), null, null, new MySQLDatabaseType())); when(databaseMetaData.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList())); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereSchema.class)); result.put(String.format(DATABASE_PATTERN, i), databaseMetaData); } return result; diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandlerTest.java index cb47144823bc8..df8504720ae88 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandlerTest.java @@ -138,11 +138,11 @@ private ByteBuf createByteBuf(final int initialCapacity, final int maxCapacity) private Map getDatabaseMetaDataMap() { Map result = new HashMap<>(10, 1); for (int i = 0; i < 10; i++) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(databaseMetaData.getResource()).thenReturn(new ShardingSphereResource(Collections.emptyMap(), null, null, new MySQLDatabaseType())); when(databaseMetaData.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList())); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); when(schema.getTables()).thenReturn(Collections.emptyMap()); result.put(String.format(SCHEMA_PATTERN, i), databaseMetaData); } diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java index 15b4ec7d19d3f..1b025ab946975 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java +++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutor.java @@ -131,7 +131,7 @@ private void describeInsertStatementByDatabaseMetaData(final PostgreSQLPreparedS ShardingSphereDatabaseMetaData databaseMetaData = ProxyContext.getInstance().getMetaData(databaseName); String schemaName = insertStatement.getTable().getOwner().map(optional -> optional.getIdentifier() .getValue()).orElseGet(() -> databaseMetaData.getResource().getDatabaseType().getDefaultSchema(databaseName)); - TableMetaData tableMetaData = databaseMetaData.getSchema(schemaName).get(logicTableName); + TableMetaData tableMetaData = databaseMetaData.getDatabase().getSchema(schemaName).get(logicTableName); Map columnMetaData = tableMetaData.getColumns(); Map caseInsensitiveColumnMetaData = null; List columnNames; diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java index c8ded3989c6e0..9fc80562cceb9 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java @@ -154,11 +154,11 @@ private ByteBuf createByteBuf(final int initialCapacity, final int maxCapacity) private Map getDatabaseMetaDataMap() { Map result = new HashMap<>(10, 1); for (int i = 0; i < 10; i++) { - ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class); + ShardingSphereDatabaseMetaData databaseMetaData = mock(ShardingSphereDatabaseMetaData.class, RETURNS_DEEP_STUBS); ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(databaseMetaData.getResource()).thenReturn(new ShardingSphereResource(Collections.emptyMap(), null, null, new MySQLDatabaseType())); when(databaseMetaData.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList())); - when(databaseMetaData.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); + when(databaseMetaData.getDatabase().getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema); when(schema.getTables()).thenReturn(Collections.emptyMap()); result.put(String.format(SCHEMA_PATTERN, i), databaseMetaData); } diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java index 3cad360c0e678..3f93d2f844713 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java @@ -126,7 +126,7 @@ private void prepareTableMetaData() { new ColumnMetaData("c", Types.CHAR, true, false, false), new ColumnMetaData("pad", Types.CHAR, true, false, false)); TableMetaData tableMetaData = new TableMetaData(TABLE_NAME, columnMetaData, Collections.emptyList(), Collections.emptyList()); - when(mockContextManager.getMetaDataContexts().getDatabaseMetaData(DATABASE_NAME).getSchema("public").get(TABLE_NAME)).thenReturn(tableMetaData); + when(mockContextManager.getMetaDataContexts().getDatabaseMetaData(DATABASE_NAME).getDatabase().getSchema("public").get(TABLE_NAME)).thenReturn(tableMetaData); when(mockContextManager.getMetaDataContexts().getDatabaseMetaData(DATABASE_NAME).getResource().getDatabaseType()).thenReturn(new PostgreSQLDatabaseType()); } diff --git a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java index 9e7b363652dbf..f3ac62e8e9ef5 100644 --- a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java +++ b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java @@ -109,7 +109,7 @@ private static MetaDataContexts renewMetaDataContexts(final MetaDataContexts old Map tableMetaDataMap = new HashMap<>(3, 1); tableMetaDataMap.put("t_order", new TableMetaData("t_order", Arrays.asList(new ColumnMetaData("order_id", Types.INTEGER, true, false, false), new ColumnMetaData("user_id", Types.VARCHAR, false, false, false)), Collections.emptyList(), Collections.emptyList())); - old.getDatabaseMetaDataMap().get(DefaultDatabase.LOGIC_NAME).getSchema(DefaultDatabase.LOGIC_NAME).putAll(tableMetaDataMap); + old.getDatabaseMetaDataMap().get(DefaultDatabase.LOGIC_NAME).getDatabase().getSchema(DefaultDatabase.LOGIC_NAME).putAll(tableMetaDataMap); return new MetaDataContexts(metaDataPersistService, old.getDatabaseMetaDataMap(), old.getGlobalRuleMetaData(), old.getOptimizerContext(), old.getProps()); }