From 09281f69a6dd01c12dd73dcc6675397062498f90 Mon Sep 17 00:00:00 2001 From: Liang Zhang Date: Mon, 9 Nov 2020 17:01:30 +0800 Subject: [PATCH] Rename PhysicalSchemaMetaData to ShardingSphereSchema (#8094) * Rename PhysicalSchemaMetaData to ShardingSphereSchema * Fix checkstyle --- .../merge/EncryptResultDecoratorEngine.java | 6 +- .../merge/dal/EncryptDALResultDecorator.java | 10 +- .../DecoratedEncryptColumnsMergedResult.java | 6 +- .../dal/impl/EncryptColumnsMergedResult.java | 12 +-- .../MergedEncryptColumnsMergedResult.java | 6 +- .../merge/dql/EncryptAlgorithmMetaData.java | 6 +- .../merge/dql/EncryptDQLResultDecorator.java | 6 +- .../EncryptResultDecoratorEngineTest.java | 10 +- .../dal/EncryptDALResultDecoratorTest.java | 22 ++--- .../MergedEncryptColumnsMergedResultTest.java | 20 ++-- ...coratedEncryptColumnsMergedResultTest.java | 4 +- .../dql/EncryptAlgorithmMetaDataTest.java | 29 +++--- .../dql/EncryptDQLResultDecoratorTest.java | 6 +- .../EncryptColumnsMergedResultFixture.java | 6 +- .../impl/EncryptColumnsMergedResultTest.java | 20 ++-- .../condition/EncryptConditionEngine.java | 6 +- .../EncryptSQLRewriteContextDecorator.java | 2 +- .../EncryptParameterRewriterBuilder.java | 10 +- .../EncryptPredicateParameterRewriter.java | 6 +- .../EncryptPredicateColumnTokenGenerator.java | 6 +- ...ryptPredicateRightValueTokenGenerator.java | 6 +- .../EncryptSQLRewriterParameterizedTest.java | 8 +- .../ha/route/engine/HASQLRouterTest.java | 16 +-- .../engine/ReplicaQuerySQLRouterTest.java | 16 +-- .../ShadowSQLRewriteContextDecorator.java | 2 +- .../ShadowParameterRewriterBuilder.java | 4 +- .../route/engine/ShadowSQLRouterTest.java | 16 +-- .../PreparedShadowDataSourceRouterTest.java | 22 ++--- .../SimpleShadowDataSourceRouterTest.java | 14 +-- .../merge/dal/ShardingDALResultMerger.java | 8 +- .../dal/show/LogicTablesMergedResult.java | 8 +- .../dal/show/ShowCreateTableMergedResult.java | 6 +- .../merge/dql/ShardingDQLResultMerger.java | 20 ++-- .../groupby/GroupByMemoryMergedResult.java | 20 ++-- .../groupby/GroupByStreamMergedResult.java | 6 +- .../orderby/OrderByStreamMergedResult.java | 10 +- .../merge/dql/orderby/OrderByValue.java | 14 +-- .../merge/ShardingResultMergerEngineTest.java | 4 +- .../show/ShowCreateTableMergedResultTest.java | 18 ++-- .../dal/show/ShowTablesMergedResultTest.java | 20 ++-- .../dql/ShardingDQLResultMergerTest.java | 92 ++++++++--------- .../GroupByStreamMergedResultTest.java | 26 ++--- .../OrderByStreamMergedResultTest.java | 16 +-- .../merge/dql/orderby/OrderByValueTest.java | 20 ++-- .../ShardingSQLRewriteContextDecorator.java | 2 +- .../ShardingParameterRewriterBuilder.java | 10 +- .../MixSQLRewriterParameterizedTest.java | 8 +- .../ShardingSQLRewriterParameterizedTest.java | 8 +- .../InsertClauseShardingConditionEngine.java | 6 +- .../WhereClauseShardingConditionEngine.java | 6 +- .../ShardingTableBroadcastRoutingEngine.java | 8 +- .../type/single/SingleTableRoutingEngine.java | 4 +- .../validator/ShardingStatementValidator.java | 4 +- .../ddl/ShardingDDLStatementValidator.java | 8 +- .../ShardingAlterViewStatementValidator.java | 4 +- ...rdingCreateFunctionStatementValidator.java | 4 +- ...dingCreateProcedureStatementValidator.java | 4 +- ...ShardingCreateTableStatementValidator.java | 4 +- .../ShardingCreateViewStatementValidator.java | 4 +- .../ShardingDeleteStatementValidator.java | 4 +- .../ShardingInsertStatementValidator.java | 4 +- .../ShardingUpdateStatementValidator.java | 4 +- .../ShardingConditionEngineFactoryTest.java | 4 +- .../type/ShardingRouteEngineFactoryTest.java | 4 +- ...ardingTableBroadcastRoutingEngineTest.java | 10 +- .../single/SingleTableRoutingEngineTest.java | 16 +-- .../type/standard/AbstractSQLRouteTest.java | 8 +- ...ardingAlterViewStatementValidatorTest.java | 6 +- ...gCreateFunctionStatementValidatorTest.java | 10 +- ...CreateProcedureStatementValidatorTest.java | 10 +- ...dingCreateTableStatementValidatorTest.java | 6 +- ...rdingCreateViewStatementValidatorTest.java | 6 +- .../ShardingDeleteStatementValidatorTest.java | 4 +- .../ShardingInsertStatementValidatorTest.java | 30 +++--- .../ShardingUpdateStatementValidatorTest.java | 14 +-- .../model/metadata/MetaDataChangedEvent.java | 4 +- .../model/persist/MetaDataPersistEvent.java | 4 +- .../LogicSchemaMetaDataYamlSwapper.java | 18 ++-- .../LogicSchemaMetaDataYamlSwapperTest.java | 16 +-- .../governance/core/config/ConfigCenter.java | 38 ++++--- .../listener/SchemaChangedListener.java | 4 +- .../core/config/ConfigCenterTest.java | 26 ++--- .../listener/SchemaChangedListenerTest.java | 2 +- .../schema/GovernanceSchemaContexts.java | 14 +-- .../schema/GovernanceSchemaContextsTest.java | 8 +- .../binder/SQLStatementContextFactory.java | 14 +-- .../engine/GeneratedKeyContextEngine.java | 16 +-- .../projection/engine/ProjectionEngine.java | 8 +- .../engine/ProjectionsContextEngine.java | 12 +-- .../binder/segment/table/TablesContext.java | 18 ++-- .../statement/dml/InsertStatementContext.java | 14 +-- .../statement/dml/SelectStatementContext.java | 6 +- .../engine/GeneratedKeyContextEngineTest.java | 15 ++- .../engine/ProjectionEngineTest.java | 18 ++-- .../engine/ProjectionsContextEngineTest.java | 98 +++++++++---------- .../segment/table/TablesContextTest.java | 14 +-- .../SQLStatementContextFactoryTest.java | 8 +- .../impl/InsertStatementContextTest.java | 42 ++++---- .../metadata/ShardingSphereMetaData.java | 4 +- ...etaData.java => ShardingSphereSchema.java} | 12 ++- .../schema/loader/SchemaMetaDataLoader.java | 22 ++--- .../schema/model/ShardingSphereSchema.java | 32 ------ .../refresh/MetaDataRefreshStrategy.java | 4 +- ...TableStatementMetaDataRefreshStrategy.java | 4 +- ...IndexStatementMetaDataRefreshStrategy.java | 4 +- ...TableStatementMetaDataRefreshStrategy.java | 4 +- ...eViewStatementMetaDataRefreshStrategy.java | 4 +- ...IndexStatementMetaDataRefreshStrategy.java | 8 +- ...TableStatementMetaDataRefreshStrategy.java | 4 +- ...pViewStatementMetaDataRefreshStrategy.java | 4 +- .../refresh/spi/SchemaMetaDataNotifier.java | 8 +- .../metadata/ShardingSphereMetaDataTest.java | 8 +- ...est.java => ShardingSphereSchemaTest.java} | 22 +++-- .../loader/SchemaMetaDataLoaderTest.java | 8 +- .../AbstractMetaDataRefreshStrategyTest.java | 8 +- .../context/schema/SchemaContextsBuilder.java | 6 +- .../sql/context/ExecutionContextBuilder.java | 14 +-- .../context/ExecutionContextBuilderTest.java | 16 +-- .../infra/merge/MergeEngine.java | 18 ++-- .../engine/decorator/ResultDecorator.java | 10 +- .../decorator/ResultDecoratorEngine.java | 6 +- .../impl/TransparentResultDecorator.java | 6 +- .../merge/engine/merger/ResultMerger.java | 6 +- .../merger/impl/TransparentResultMerger.java | 4 +- .../impl/memory/MemoryMergedResult.java | 8 +- .../infra/merge/MergeEngineTest.java | 12 +-- .../impl/TransparentResultDecoratorTest.java | 6 +- .../impl/TransparentResultMergerTest.java | 4 +- .../ResultDecoratorEngineFixture.java | 4 +- .../decorator/ResultDecoratorFixture.java | 6 +- .../fixture/merger/ResultMergerFixture.java | 4 +- .../fixture/TestMemoryMergedResult.java | 4 +- .../infra/rewrite/SQLRewriteEntry.java | 10 +- .../rewrite/context/SQLRewriteContext.java | 10 +- .../rewriter/ParameterRewriterBuilder.java | 6 +- .../token/generator/SQLTokenGenerators.java | 12 +-- .../generator/aware/SchemaMetaDataAware.java | 6 +- .../infra/rewrite/SQLRewriteEntryTest.java | 8 +- .../context/SQLRewriteContextTest.java | 12 +-- .../engine/GenericSQLRewriteEngineTest.java | 4 +- .../engine/RouteSQLRewriteEngineTest.java | 12 +-- .../infra/route/hook/RoutingHook.java | 6 +- .../infra/route/hook/SPIRoutingHook.java | 6 +- .../route/engine/SQLRouteEngineTest.java | 4 +- .../infra/route/hook/SPIRoutingHookTest.java | 8 +- .../hook/fixture/RoutingHookFixture.java | 8 +- .../executor/AbstractStatementExecutor.java | 6 +- .../ShardingSpherePreparedStatement.java | 6 +- .../statement/ShardingSphereStatement.java | 6 +- .../driver/common/base/AbstractSQLTest.java | 4 +- .../GovernanceSchemaMetaDataNotifier.java | 10 +- .../DatabaseCommunicationEngineFactory.java | 10 +- .../ShardingCTLExplainBackendHandler.java | 6 +- .../query/QueryHeaderBuilderTest.java | 8 +- .../ShardingCTLExplainBackendHandlerTest.java | 4 +- .../ShardingCTLHintBackendHandlerTest.java | 4 +- 156 files changed, 829 insertions(+), 873 deletions(-) rename shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/{model/physical/PhysicalSchemaMetaData.java => ShardingSphereSchema.java} (90%) delete mode 100644 shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/ShardingSphereSchema.java rename shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/{model/physical/SchemaMetaDataTest.java => ShardingSphereSchemaTest.java} (66%) diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java index 6924fed888..2468efa737 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngine.java @@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecoratorEngine; import org.apache.shardingsphere.infra.merge.engine.decorator.impl.TransparentResultDecorator; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatement; @@ -39,10 +39,10 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatemen public final class EncryptResultDecoratorEngine implements ResultDecoratorEngine { @Override - public ResultDecorator newInstance(final DatabaseType databaseType, final PhysicalSchemaMetaData schemaMetaData, + public ResultDecorator newInstance(final DatabaseType databaseType, final ShardingSphereSchema schema, final EncryptRule encryptRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) { if (sqlStatementContext instanceof SelectStatementContext) { - return new EncryptDQLResultDecorator(new EncryptAlgorithmMetaData(schemaMetaData, + return new EncryptDQLResultDecorator(new EncryptAlgorithmMetaData(schema, encryptRule, (SelectStatementContext) sqlStatementContext), props.getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN)); } if (sqlStatementContext.getSqlStatement() instanceof DALStatement) { diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java index 80c338a4f4..780bb047ea 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLDescribeStatement; @@ -35,14 +35,14 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ public final class EncryptDALResultDecorator implements ResultDecorator { @Override - public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return isNeedMergeEncryptColumns(sqlStatementContext.getSqlStatement()) - ? new MergedEncryptColumnsMergedResult(queryResult, sqlStatementContext, schemaMetaData) : new TransparentMergedResult(queryResult); + ? new MergedEncryptColumnsMergedResult(queryResult, sqlStatementContext, schema) : new TransparentMergedResult(queryResult); } @Override - public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { - return isNeedMergeEncryptColumns(sqlStatementContext.getSqlStatement()) ? new DecoratedEncryptColumnsMergedResult(mergedResult, sqlStatementContext, schemaMetaData) : mergedResult; + public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { + return isNeedMergeEncryptColumns(sqlStatementContext.getSqlStatement()) ? new DecoratedEncryptColumnsMergedResult(mergedResult, sqlStatementContext, schema) : mergedResult; } private boolean isNeedMergeEncryptColumns(final SQLStatement sqlStatement) { diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResult.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResult.java index b18c9e6214..0f4b51dc89 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResult.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResult.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.encrypt.merge.dal.impl; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.merge.result.MergedResult; @@ -30,8 +30,8 @@ public final class DecoratedEncryptColumnsMergedResult extends EncryptColumnsMer private final MergedResult mergedResult; - public DecoratedEncryptColumnsMergedResult(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { - super(sqlStatementContext, schemaMetaData); + public DecoratedEncryptColumnsMergedResult(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { + super(sqlStatementContext, schema); this.mergedResult = mergedResult; } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/EncryptColumnsMergedResult.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/EncryptColumnsMergedResult.java index 74cbe54cad..7908a1ebd8 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/EncryptColumnsMergedResult.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/EncryptColumnsMergedResult.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.encrypt.merge.dal.impl; import com.google.common.base.Preconditions; import org.apache.shardingsphere.encrypt.metadata.EncryptColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.type.TableAvailable; import org.apache.shardingsphere.infra.merge.result.MergedResult; @@ -40,12 +40,12 @@ import java.util.stream.Collectors; */ public abstract class EncryptColumnsMergedResult implements MergedResult { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final String tableName; - protected EncryptColumnsMergedResult(final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { - this.schemaMetaData = schemaMetaData; + protected EncryptColumnsMergedResult(final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { + this.schema = schema; Preconditions.checkState(sqlStatementContext instanceof TableAvailable && 1 == ((TableAvailable) sqlStatementContext).getAllTables().size()); tableName = ((TableAvailable) sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue(); } @@ -82,7 +82,7 @@ public abstract class EncryptColumnsMergedResult implements MergedResult { private Collection getTableEncryptColumnMetaDataList() { Collection result = new LinkedList<>(); - for (Entry entry : schemaMetaData.get(tableName).getColumns().entrySet()) { + for (Entry entry : schema.get(tableName).getColumns().entrySet()) { if (entry.getValue() instanceof EncryptColumnMetaData) { result.add((EncryptColumnMetaData) entry.getValue()); } @@ -101,7 +101,7 @@ public abstract class EncryptColumnsMergedResult implements MergedResult { } private Optional getLogicColumnOfCipher(final String cipherColumn) { - for (Entry entry : schemaMetaData.get(tableName).getColumns().entrySet()) { + for (Entry entry : schema.get(tableName).getColumns().entrySet()) { if (entry.getValue() instanceof EncryptColumnMetaData) { EncryptColumnMetaData encryptColumnMetaData = (EncryptColumnMetaData) entry.getValue(); if (encryptColumnMetaData.getCipherColumnName().equalsIgnoreCase(cipherColumn)) { diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/MergedEncryptColumnsMergedResult.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/MergedEncryptColumnsMergedResult.java index f52764ecf4..5d81088c3c 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/MergedEncryptColumnsMergedResult.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/impl/MergedEncryptColumnsMergedResult.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.encrypt.merge.dal.impl; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; @@ -30,8 +30,8 @@ public final class MergedEncryptColumnsMergedResult extends EncryptColumnsMerged private final QueryResult queryResult; - public MergedEncryptColumnsMergedResult(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { - super(sqlStatementContext, schemaMetaData); + public MergedEncryptColumnsMergedResult(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { + super(sqlStatementContext, schema); this.queryResult = queryResult; } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java index 516d3f5ed1..dfe0f5ad28 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.encrypt.merge.dql; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; @@ -34,7 +34,7 @@ import java.util.Optional; @RequiredArgsConstructor public final class EncryptAlgorithmMetaData { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final EncryptRule encryptRule; @@ -58,7 +58,7 @@ public final class EncryptAlgorithmMetaData { Projection projection = expandProjections.get(columnIndex - 1); if (projection instanceof ColumnProjection) { String columnName = ((ColumnProjection) projection).getName(); - Optional tableName = selectStatementContext.getTablesContext().findTableName((ColumnProjection) projection, schemaMetaData); + Optional tableName = selectStatementContext.getTablesContext().findTableName((ColumnProjection) projection, schema); return tableName.isPresent() ? findEncryptor(tableName.get(), columnName) : findEncryptor(columnName); } return Optional.empty(); diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java index 80c21b1add..4309f856f2 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.encrypt.merge.dql; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; @@ -36,12 +36,12 @@ public final class EncryptDQLResultDecorator implements ResultDecorator { private final boolean queryWithCipherColumn; @Override - public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return new EncryptMergedResult(metaData, new TransparentMergedResult(queryResult), queryWithCipherColumn); } @Override - public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return new EncryptMergedResult(metaData, mergedResult, queryWithCipherColumn); } } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java index ad29b25bef..dcfad0bc88 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/EncryptResultDecoratorEngineTest.java @@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.engine.decorator.impl.TransparentResultDecorator; import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader; import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dal.DescribeStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; @@ -61,7 +61,7 @@ public final class EncryptResultDecoratorEngineTest { private DatabaseType databaseType; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private ConfigurationProperties props; @@ -74,7 +74,7 @@ public final class EncryptResultDecoratorEngineTest { @Test public void assertNewInstanceWithSelectStatement() { EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule); - ResultDecorator actual = engine.newInstance(databaseType, schemaMetaData, rule, props, mock(SelectStatementContext.class)); + ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, mock(SelectStatementContext.class)); assertThat(actual, instanceOf(EncryptDQLResultDecorator.class)); } @@ -83,14 +83,14 @@ public final class EncryptResultDecoratorEngineTest { SQLStatementContext sqlStatementContext = mock(DescribeStatementContext.class); when(sqlStatementContext.getSqlStatement()).thenReturn(mock(MySQLDescribeStatement.class)); EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule); - ResultDecorator actual = engine.newInstance(databaseType, schemaMetaData, rule, props, sqlStatementContext); + ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, sqlStatementContext); assertThat(actual, instanceOf(EncryptDALResultDecorator.class)); } @Test public void assertNewInstanceWithOtherStatement() { EncryptResultDecoratorEngine engine = (EncryptResultDecoratorEngine) OrderedSPIRegistry.getRegisteredServices(Collections.singleton(rule), ResultProcessEngine.class).get(rule); - ResultDecorator actual = engine.newInstance(databaseType, schemaMetaData, rule, props, mock(InsertStatementContext.class)); + ResultDecorator actual = engine.newInstance(databaseType, schema, rule, props, mock(InsertStatementContext.class)); assertThat(actual, instanceOf(TransparentResultDecorator.class)); } } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java index bdfe8058d0..433b5d7e00 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.merge.dal.impl.MergedEncryptColumnsMerg import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dal.DescribeStatementContext; import org.apache.shardingsphere.infra.binder.statement.dal.ShowColumnsStatementContext; @@ -47,36 +47,36 @@ import static org.mockito.Mockito.when; public final class EncryptDALResultDecoratorTest { @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private SQLStatementContext sqlStatementContext; @Test public void assertMergedResultWithDescribeStatement() { - schemaMetaData = mock(PhysicalSchemaMetaData.class); + schema = mock(ShardingSphereSchema.class); sqlStatementContext = getDescribeStatementContext(); EncryptDALResultDecorator encryptDALResultDecorator = new EncryptDALResultDecorator(); - assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schemaMetaData), instanceOf(MergedEncryptColumnsMergedResult.class)); - assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schemaMetaData), instanceOf(DecoratedEncryptColumnsMergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schema), instanceOf(MergedEncryptColumnsMergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schema), instanceOf(DecoratedEncryptColumnsMergedResult.class)); } @Test public void assertMergedResultWithShowColumnsStatement() { - schemaMetaData = mock(PhysicalSchemaMetaData.class); + schema = mock(ShardingSphereSchema.class); sqlStatementContext = getShowColumnsStatementContext(); EncryptDALResultDecorator encryptDALResultDecorator = new EncryptDALResultDecorator(); - assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schemaMetaData), instanceOf(MergedEncryptColumnsMergedResult.class)); - assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schemaMetaData), instanceOf(DecoratedEncryptColumnsMergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schema), instanceOf(MergedEncryptColumnsMergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schema), instanceOf(DecoratedEncryptColumnsMergedResult.class)); } @Test public void assertMergedResultWithOtherStatement() { - schemaMetaData = mock(PhysicalSchemaMetaData.class); + schema = mock(ShardingSphereSchema.class); sqlStatementContext = mock(SQLStatementContext.class); EncryptDALResultDecorator encryptDALResultDecorator = new EncryptDALResultDecorator(); - assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schemaMetaData), instanceOf(TransparentMergedResult.class)); - assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schemaMetaData), instanceOf(MergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(QueryResult.class), sqlStatementContext, schema), instanceOf(TransparentMergedResult.class)); + assertThat(encryptDALResultDecorator.decorate(mock(MergedResult.class), sqlStatementContext, schema), instanceOf(MergedResult.class)); } private SQLStatementContext getDescribeStatementContext() { diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/MergedEncryptColumnsMergedResultTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/MergedEncryptColumnsMergedResultTest.java index 105d594d34..40dd0ced4d 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/MergedEncryptColumnsMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/MergedEncryptColumnsMergedResultTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.encrypt.merge.dal; import org.apache.shardingsphere.encrypt.merge.dal.impl.MergedEncryptColumnsMergedResult; import org.apache.shardingsphere.encrypt.metadata.EncryptColumnMetaData; import org.apache.shardingsphere.infra.executor.sql.QueryResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; @@ -56,12 +56,12 @@ public final class MergedEncryptColumnsMergedResultTest { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.emptyList(), Collections.emptyList()); Map tables = new HashMap<>(1, 1); tables.put("test", tableMetaData); - assertTrue(createMergedEncryptColumnsMergedResult(queryResult, new PhysicalSchemaMetaData(tables)).next()); + assertTrue(createMergedEncryptColumnsMergedResult(queryResult, new ShardingSphereSchema(tables)).next()); } @Test public void assertNextWithHasNext() throws SQLException { - assertFalse(createMergedEncryptColumnsMergedResult(queryResult, mock(PhysicalSchemaMetaData.class)).next()); + assertFalse(createMergedEncryptColumnsMergedResult(queryResult, mock(ShardingSphereSchema.class)).next()); } @Test @@ -72,7 +72,7 @@ public final class MergedEncryptColumnsMergedResultTest { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(encryptColumnMetaData), Collections.emptyList()); Map tables = new HashMap<>(1, 1); tables.put("test", tableMetaData); - assertFalse(createMergedEncryptColumnsMergedResult(queryResult, new PhysicalSchemaMetaData(tables)).next()); + assertFalse(createMergedEncryptColumnsMergedResult(queryResult, new ShardingSphereSchema(tables)).next()); } @Test @@ -82,7 +82,7 @@ public final class MergedEncryptColumnsMergedResultTest { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(encryptColumnMetaData), Collections.emptyList()); Map tables = new HashMap<>(1); tables.put("test", tableMetaData); - assertThat(createMergedEncryptColumnsMergedResult(queryResult, new PhysicalSchemaMetaData(tables)).getValue(1, String.class), is("id")); + assertThat(createMergedEncryptColumnsMergedResult(queryResult, new ShardingSphereSchema(tables)).getValue(1, String.class), is("id")); } @Test @@ -92,7 +92,7 @@ public final class MergedEncryptColumnsMergedResultTest { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(encryptColumnMetaData), Collections.emptyList()); Map tables = new HashMap<>(1, 1); tables.put("test", tableMetaData); - assertThat(createMergedEncryptColumnsMergedResult(queryResult, new PhysicalSchemaMetaData(tables)).getValue(1, String.class), is("assistedQuery")); + assertThat(createMergedEncryptColumnsMergedResult(queryResult, new ShardingSphereSchema(tables)).getValue(1, String.class), is("assistedQuery")); } @Test @@ -102,20 +102,20 @@ public final class MergedEncryptColumnsMergedResultTest { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(encryptColumnMetaData), Collections.emptyList()); Map tables = new HashMap<>(1, 1); tables.put("test", tableMetaData); - assertThat(createMergedEncryptColumnsMergedResult(queryResult, new PhysicalSchemaMetaData(tables)).getValue(2, String.class), is("id")); + assertThat(createMergedEncryptColumnsMergedResult(queryResult, new ShardingSphereSchema(tables)).getValue(2, String.class), is("id")); } @Test public void assertWasNull() throws SQLException { - assertFalse(createMergedEncryptColumnsMergedResult(queryResult, mock(PhysicalSchemaMetaData.class)).wasNull()); + assertFalse(createMergedEncryptColumnsMergedResult(queryResult, mock(ShardingSphereSchema.class)).wasNull()); } - private MergedEncryptColumnsMergedResult createMergedEncryptColumnsMergedResult(final QueryResult queryResult, final PhysicalSchemaMetaData schemaMetaData) { + private MergedEncryptColumnsMergedResult createMergedEncryptColumnsMergedResult(final QueryResult queryResult, final ShardingSphereSchema schema) { SelectStatementContext sqlStatementContext = mock(SelectStatementContext.class); IdentifierValue identifierValue = new IdentifierValue("test"); TableNameSegment tableNameSegment = new TableNameSegment(1, 4, identifierValue); SimpleTableSegment simpleTableSegment = new SimpleTableSegment(tableNameSegment); when(sqlStatementContext.getAllTables()).thenReturn(Collections.singletonList(simpleTableSegment)); - return new MergedEncryptColumnsMergedResult(queryResult, sqlStatementContext, schemaMetaData); + return new MergedEncryptColumnsMergedResult(queryResult, sqlStatementContext, schema); } } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResultTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResultTest.java index 405370050b..150cc8dcf1 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/impl/DecoratedEncryptColumnsMergedResultTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.encrypt.merge.dal.impl; import org.apache.shardingsphere.encrypt.merge.dal.impl.fixture.TestStatementContext; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment; import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue; @@ -52,7 +52,7 @@ public final class DecoratedEncryptColumnsMergedResultTest { when(mergedResult.next()).thenReturn(true); when(mergedResult.wasNull()).thenReturn(false); when(mergedResult.getValue(eq(new Integer(1)), eq(getClass()))).thenReturn("test"); - DecoratedEncryptColumnsMergedResult actual = new DecoratedEncryptColumnsMergedResult(mergedResult, testStatementContext, mock(PhysicalSchemaMetaData.class)); + DecoratedEncryptColumnsMergedResult actual = new DecoratedEncryptColumnsMergedResult(mergedResult, testStatementContext, mock(ShardingSphereSchema.class)); assertNotNull(actual); assertTrue(actual.nextValue()); assertFalse(actual.wasNull()); diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java index b6da11e85a..385fb1fb00 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java @@ -17,28 +17,29 @@ package org.apache.shardingsphere.encrypt.merge.dql; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Properties; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm; -import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration; -import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmFactory; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection; import org.apache.shardingsphere.infra.binder.segment.select.projection.ProjectionsContext; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.DerivedProjection; import org.apache.shardingsphere.infra.binder.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; +import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration; +import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmFactory; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.Properties; + import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; @@ -50,7 +51,7 @@ import static org.mockito.Mockito.when; public final class EncryptAlgorithmMetaDataTest { @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private EncryptRule encryptRule; @@ -81,9 +82,9 @@ public final class EncryptAlgorithmMetaDataTest { @Test public void assertFindEncryptorByTableNameAndColumnName() { - when(tablesContext.findTableName(columnProjection, schemaMetaData)).thenReturn(Optional.of("t_order")); + when(tablesContext.findTableName(columnProjection, schema)).thenReturn(Optional.of("t_order")); when(encryptRule.findEncryptor("t_order", "id")).thenReturn(Optional.of(encryptAlgorithm)); - EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schemaMetaData, encryptRule, selectStatementContext); + EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schema, encryptRule, selectStatementContext); Optional actualEncryptor = encryptAlgorithmMetaData.findEncryptor(1); assertTrue(actualEncryptor.isPresent()); assertThat(actualEncryptor.get().getType(), is("MD5")); @@ -91,10 +92,10 @@ public final class EncryptAlgorithmMetaDataTest { @Test public void assertFindEncryptorByColumnName() { - when(tablesContext.findTableName(columnProjection, schemaMetaData)).thenReturn(Optional.empty()); + when(tablesContext.findTableName(columnProjection, schema)).thenReturn(Optional.empty()); when(tablesContext.getTableNames()).thenReturn(Arrays.asList("t_user", "t_user_item", "t_order_item")); when(encryptRule.findEncryptor("t_order_item", "id")).thenReturn(Optional.of(encryptAlgorithm)); - EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schemaMetaData, encryptRule, selectStatementContext); + EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schema, encryptRule, selectStatementContext); Optional actualEncryptor = encryptAlgorithmMetaData.findEncryptor(1); assertTrue(actualEncryptor.isPresent()); assertThat(actualEncryptor.get().getType(), is("MD5")); @@ -103,7 +104,7 @@ public final class EncryptAlgorithmMetaDataTest { @Test public void assertFindEncryptorWhenColumnProjectionIsNotExist() { when(projectionsContext.getExpandProjections()).thenReturn(Collections.singletonList(mock(DerivedProjection.class))); - EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schemaMetaData, encryptRule, selectStatementContext); + EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(schema, encryptRule, selectStatementContext); Optional actualEncryptor = encryptAlgorithmMetaData.findEncryptor(1); assertFalse(actualEncryptor.isPresent()); } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecoratorTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecoratorTest.java index 99cfb9febc..1be02d3ef7 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecoratorTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecoratorTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.encrypt.merge.dql; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; @@ -40,7 +40,7 @@ public final class EncryptDQLResultDecoratorTest { QueryResult queryResult = mock(QueryResult.class); when(queryResult.next()).thenReturn(true); EncryptDQLResultDecorator decorator = new EncryptDQLResultDecorator(metaData, queryWithCipherColumn); - MergedResult actual = decorator.decorate(queryResult, mock(SQLStatementContext.class), mock(PhysicalSchemaMetaData.class)); + MergedResult actual = decorator.decorate(queryResult, mock(SQLStatementContext.class), mock(ShardingSphereSchema.class)); assertTrue(actual.next()); } @@ -49,7 +49,7 @@ public final class EncryptDQLResultDecoratorTest { MergedResult mergedResult = mock(MergedResult.class); when(mergedResult.next()).thenReturn(true); EncryptDQLResultDecorator decorator = new EncryptDQLResultDecorator(metaData, queryWithCipherColumn); - MergedResult actual = decorator.decorate(mergedResult, mock(SQLStatementContext.class), mock(PhysicalSchemaMetaData.class)); + MergedResult actual = decorator.decorate(mergedResult, mock(SQLStatementContext.class), mock(ShardingSphereSchema.class)); assertTrue(actual.next()); } } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/fixture/EncryptColumnsMergedResultFixture.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/fixture/EncryptColumnsMergedResultFixture.java index 4a86c2e890..feb4ff73af 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/fixture/EncryptColumnsMergedResultFixture.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/fixture/EncryptColumnsMergedResultFixture.java @@ -18,13 +18,13 @@ package org.apache.shardingsphere.encrypt.merge.dql.fixture; import org.apache.shardingsphere.encrypt.merge.dal.impl.EncryptColumnsMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; public final class EncryptColumnsMergedResultFixture extends EncryptColumnsMergedResult { - public EncryptColumnsMergedResultFixture(final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { - super(sqlStatementContext, schemaMetaData); + public EncryptColumnsMergedResultFixture(final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { + super(sqlStatementContext, schema); } @Override diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/impl/EncryptColumnsMergedResultTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/impl/EncryptColumnsMergedResultTest.java index de502b3c35..da9c2f2a80 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/impl/EncryptColumnsMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/impl/EncryptColumnsMergedResultTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.merge.dql.fixture.EncryptColumnsMergedR import org.apache.shardingsphere.encrypt.merge.dql.fixture.TableAvailableAndSqlStatementContextFixture; import org.apache.shardingsphere.encrypt.metadata.EncryptColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment; @@ -54,7 +54,7 @@ public final class EncryptColumnsMergedResultTest { private TableAvailableAndSqlStatementContextFixture tableAvailableAndSqlStatementContextFixture; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private PhysicalTableMetaData tableMetaData; @@ -74,23 +74,23 @@ public final class EncryptColumnsMergedResultTest { when(tableNameSegment.getIdentifier()).thenReturn(identifierValue); String tableName = "t_order"; when(identifierValue.getValue()).thenReturn(tableName); - when(schemaMetaData.get(anyString())).thenReturn(tableMetaData); + when(schema.get(anyString())).thenReturn(tableMetaData); when(tableMetaData.getColumns()).thenReturn(columns); - encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schemaMetaData)); + encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schema)); } @Test public void assertHasNextWithEmptyColumnMetaData() throws SQLException { - when(schemaMetaData.get(anyString())).thenReturn(tableMetaData); + when(schema.get(anyString())).thenReturn(tableMetaData); when(tableMetaData.getColumns()).thenReturn(Collections.emptyMap()); - EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schemaMetaData)); + EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schema)); when(encryptColumnsMergedResultFixture.nextValue()).thenReturn(true).thenReturn(false); assertThat(encryptColumnsMergedResultFixture.next(), is(true)); } @Test public void assertWithoutHasNext() throws SQLException { - EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schemaMetaData)); + EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schema)); when(encryptColumnsMergedResultFixture.nextValue()).thenReturn(false); assertThat(encryptColumnsMergedResultFixture.next(), is(false)); } @@ -100,9 +100,9 @@ public final class EncryptColumnsMergedResultTest { Map columns = new HashMap<>(1, 1); EncryptColumnMetaData encryptColumnMetaData = new EncryptColumnMetaData("order", 1, "Integer", false, "status", "status", "status"); columns.put("", encryptColumnMetaData); - when(schemaMetaData.get(anyString())).thenReturn(tableMetaData); + when(schema.get(anyString())).thenReturn(tableMetaData); when(tableMetaData.getColumns()).thenReturn(columns); - EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schemaMetaData)); + EncryptColumnsMergedResultFixture encryptColumnsMergedResultFixture = spy(new EncryptColumnsMergedResultFixture(tableAvailableAndSqlStatementContextFixture, schema)); when(encryptColumnsMergedResultFixture.nextValue()).thenReturn(true).thenReturn(true); when(encryptColumnsMergedResultFixture.getOriginalValue(1, String.class)).thenReturn("status").thenReturn("noInThatCollection"); assertThat(encryptColumnsMergedResultFixture.next(), is(true)); @@ -113,7 +113,7 @@ public final class EncryptColumnsMergedResultTest { Map columns = new HashMap<>(1, 1); EncryptColumnMetaData encryptColumnMetaData = new EncryptColumnMetaData("order", 1, "Integer", false, "status", "status", "status"); columns.put("key", encryptColumnMetaData); - when(schemaMetaData.get(anyString())).thenReturn(tableMetaData); + when(schema.get(anyString())).thenReturn(tableMetaData); when(tableMetaData.getColumns()).thenReturn(columns); when(encryptColumnsMergedResultFixture.getOriginalValue(1, String.class)).thenReturn("status"); assertThat(encryptColumnsMergedResultFixture.getValue(1, String.class), is("key")); diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java index d68c043683..3f986ce08d 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptEqualCond import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInCondition; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.type.WhereAvailable; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -51,7 +51,7 @@ public final class EncryptConditionEngine { private final EncryptRule encryptRule; - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; /** * Create encrypt conditions. @@ -100,7 +100,7 @@ public final class EncryptConditionEngine { if (!column.isPresent()) { return Optional.empty(); } - Optional tableName = sqlStatementContext.getTablesContext().findTableName(column.get(), schemaMetaData); + Optional tableName = sqlStatementContext.getTablesContext().findTableName(column.get(), schema); return tableName.isPresent() && encryptRule.findEncryptor(tableName.get(), column.get().getIdentifier().getValue()).isPresent() ? createEncryptCondition(expression, tableName.get()) : Optional.empty(); } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java index 985c92c25a..9926812cea 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/context/EncryptSQLRewriteContextDecorator.java @@ -37,7 +37,7 @@ public final class EncryptSQLRewriteContextDecorator implements SQLRewriteContex @Override public void decorate(final EncryptRule encryptRule, final ConfigurationProperties props, final SQLRewriteContext sqlRewriteContext, final RouteContext routeContext) { boolean isQueryWithCipherColumn = props.getValue(ConfigurationPropertyKey.QUERY_WITH_CIPHER_COLUMN); - for (ParameterRewriter each : new EncryptParameterRewriterBuilder(encryptRule, isQueryWithCipherColumn).getParameterRewriters(sqlRewriteContext.getSchemaMetaData())) { + for (ParameterRewriter each : new EncryptParameterRewriterBuilder(encryptRule, isQueryWithCipherColumn).getParameterRewriters(sqlRewriteContext.getSchema())) { if (!sqlRewriteContext.getParameters().isEmpty() && each.isNeedRewrite(sqlRewriteContext.getSqlStatementContext())) { each.rewrite(sqlRewriteContext.getParameterBuilder(), sqlRewriteContext.getSqlStatementContext(), sqlRewriteContext.getParameters()); } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/EncryptParameterRewriterBuilder.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/EncryptParameterRewriterBuilder.java index 6e79f68e6c..7058ab6bf7 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/EncryptParameterRewriterBuilder.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/EncryptParameterRewriterBuilder.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.encrypt.rewrite.parameter.impl.EncryptInsertVal import org.apache.shardingsphere.encrypt.rewrite.parameter.impl.EncryptPredicateParameterRewriter; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.rule.aware.EncryptRuleAware; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriterBuilder; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware; @@ -44,10 +44,10 @@ public final class EncryptParameterRewriterBuilder implements ParameterRewriterB private final boolean queryWithCipherColumn; @Override - public Collection getParameterRewriters(final PhysicalSchemaMetaData schemaMetaData) { + public Collection getParameterRewriters(final ShardingSphereSchema schema) { Collection result = getParameterRewriters(); for (ParameterRewriter each : result) { - setUpParameterRewriters(each, schemaMetaData); + setUpParameterRewriters(each, schema); } return result; } @@ -61,9 +61,9 @@ public final class EncryptParameterRewriterBuilder implements ParameterRewriterB return result; } - private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final PhysicalSchemaMetaData schemaMetaData) { + private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final ShardingSphereSchema schema) { if (parameterRewriter instanceof SchemaMetaDataAware) { - ((SchemaMetaDataAware) parameterRewriter).setSchemaMetaData(schemaMetaData); + ((SchemaMetaDataAware) parameterRewriter).setSchema(schema); } if (parameterRewriter instanceof EncryptRuleAware) { ((EncryptRuleAware) parameterRewriter).setEncryptRule(encryptRule); diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptPredicateParameterRewriter.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptPredicateParameterRewriter.java index 442f30d957..81d3e3bdad 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptPredicateParameterRewriter.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptPredicateParameterRewriter.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.rewrite.aware.QueryWithCipherColumnAwar import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition; import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptConditionEngine; import org.apache.shardingsphere.encrypt.rewrite.parameter.EncryptParameterRewriter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder; import org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder; @@ -38,7 +38,7 @@ import java.util.Map.Entry; @Setter public final class EncryptPredicateParameterRewriter extends EncryptParameterRewriter implements SchemaMetaDataAware, QueryWithCipherColumnAware { - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; private boolean queryWithCipherColumn; @@ -49,7 +49,7 @@ public final class EncryptPredicateParameterRewriter extends EncryptParameterRew @Override public void rewrite(final ParameterBuilder parameterBuilder, final SQLStatementContext sqlStatementContext, final List parameters) { - List encryptConditions = new EncryptConditionEngine(getEncryptRule(), schemaMetaData).createEncryptConditions(sqlStatementContext); + List encryptConditions = new EncryptConditionEngine(getEncryptRule(), schema).createEncryptConditions(sqlStatementContext); if (encryptConditions.isEmpty()) { return; } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java index 08b4061879..69f0971123 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.encrypt.rule.EncryptTable; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware; import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.type.WhereAvailable; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -45,7 +45,7 @@ import java.util.Optional; @Setter public final class EncryptPredicateColumnTokenGenerator extends BaseEncryptSQLTokenGenerator implements CollectionSQLTokenGenerator, SchemaMetaDataAware, QueryWithCipherColumnAware { - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; private boolean queryWithCipherColumn; @@ -96,6 +96,6 @@ public final class EncryptPredicateColumnTokenGenerator extends BaseEncryptSQLTo } private Optional findEncryptTable(final SQLStatementContext sqlStatementContext, final ColumnSegment column) { - return sqlStatementContext.getTablesContext().findTableName(column, schemaMetaData).flatMap(tableName -> getEncryptRule().findEncryptTable(tableName)); + return sqlStatementContext.getTablesContext().findTableName(column, schema).flatMap(tableName -> getEncryptRule().findEncryptTable(tableName)); } } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateRightValueTokenGenerator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateRightValueTokenGenerator.java index 55f51e9c13..9d98c502f7 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateRightValueTokenGenerator.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateRightValueTokenGenerator.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInConditi import org.apache.shardingsphere.encrypt.rewrite.token.generator.BaseEncryptSQLTokenGenerator; import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptPredicateEqualRightValueToken; import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptPredicateInRightValueToken; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.type.WhereAvailable; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator; @@ -48,7 +48,7 @@ import java.util.Optional; public final class EncryptPredicateRightValueTokenGenerator extends BaseEncryptSQLTokenGenerator implements CollectionSQLTokenGenerator, SchemaMetaDataAware, ParametersAware, QueryWithCipherColumnAware { - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; private List parameters; @@ -61,7 +61,7 @@ public final class EncryptPredicateRightValueTokenGenerator extends BaseEncryptS @Override public Collection generateSQLTokens(final SQLStatementContext sqlStatementContext) { - List encryptConditions = new EncryptConditionEngine(getEncryptRule(), schemaMetaData).createEncryptConditions(sqlStatementContext); + List encryptConditions = new EncryptConditionEngine(getEncryptRule(), schema).createEncryptConditions(sqlStatementContext); return encryptConditions.isEmpty() ? Collections.emptyList() : generateSQLTokens(encryptConditions); } diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java index 22a1f1bdfe..533d3659e2 100644 --- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java +++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine; import org.apache.shardingsphere.infra.rewrite.SQLRewriteEntry; import org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteResult; @@ -73,7 +73,7 @@ public final class EncryptSQLRewriterParameterizedTest extends AbstractSQLRewrit Collection rules = ShardingSphereRulesBuilder.build( new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(ruleConfigurations.getRules()), ruleConfigurations.getDataSources().keySet()); SQLStatementParserEngine sqlStatementParserEngine = new SQLStatementParserEngine(null == getTestParameters().getDatabaseType() ? "SQL92" : getTestParameters().getDatabaseType()); - PhysicalSchemaMetaData schema = mockSchema(); + ShardingSphereSchema schema = mockSchema(); ConfigurationProperties props = new ConfigurationProperties(ruleConfigurations.getProps()); SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance( schema, getTestParameters().getInputParameters(), sqlStatementParserEngine.parse(getTestParameters().getInputSQL(), false)); @@ -92,8 +92,8 @@ public final class EncryptSQLRewriterParameterizedTest extends AbstractSQLRewrit return YamlEngine.unmarshal(new File(url.getFile()), YamlRootRuleConfigurations.class); } - private PhysicalSchemaMetaData mockSchema() { - PhysicalSchemaMetaData result = mock(PhysicalSchemaMetaData.class); + private ShardingSphereSchema mockSchema() { + ShardingSphereSchema result = mock(ShardingSphereSchema.class); when(result.getAllColumnNames("t_account")).thenReturn(Arrays.asList("account_id", "certificate_number", "password", "amount", "status")); when(result.getAllColumnNames("t_account_bak")).thenReturn(Arrays.asList("account_id", "certificate_number", "password", "amount", "status")); return result; diff --git a/shardingsphere-features/shardingsphere-ha/shardingsphere-ha-route/src/test/java/org/apache/shardingsphere/ha/route/engine/HASQLRouterTest.java b/shardingsphere-features/shardingsphere-ha/shardingsphere-ha-route/src/test/java/org/apache/shardingsphere/ha/route/engine/HASQLRouterTest.java index 774d15545a..ca6c7fb73b 100644 --- a/shardingsphere-features/shardingsphere-ha/shardingsphere-ha-route/src/test/java/org/apache/shardingsphere/ha/route/engine/HASQLRouterTest.java +++ b/shardingsphere-features/shardingsphere-ha/shardingsphere-ha-route/src/test/java/org/apache/shardingsphere/ha/route/engine/HASQLRouterTest.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.SQLRouter; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; @@ -94,7 +94,7 @@ public final class HASQLRouterTest { public void assertCreateRouteContextToPrimaryWithoutRouteUnits() { LogicSQL logicSQL = new LogicSQL(mock(SQLStatementContext.class), "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); @@ -105,7 +105,7 @@ public final class HASQLRouterTest { RouteContext actual = mockRouteContext(); LogicSQL logicSQL = new LogicSQL(mock(SQLStatementContext.class), "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_HA_DATASOURCE_NAME)); @@ -119,7 +119,7 @@ public final class HASQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.empty()); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(REPLICA_DATASOURCE)); @@ -133,7 +133,7 @@ public final class HASQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.empty()); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_HA_DATASOURCE_NAME)); @@ -147,7 +147,7 @@ public final class HASQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.of(mock(LockSegment.class))); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); @@ -161,7 +161,7 @@ public final class HASQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.of(mock(LockSegment.class))); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_HA_DATASOURCE_NAME)); @@ -173,7 +173,7 @@ public final class HASQLRouterTest { when(sqlStatementContext.getSqlStatement()).thenReturn(mock(InsertStatement.class)); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", - mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(PhysicalSchemaMetaData.class)); + mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)), mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); diff --git a/shardingsphere-features/shardingsphere-replica-query/shardingsphere-replica-query-route/src/test/java/org/apache/shardingsphere/replicaquery/route/engine/ReplicaQuerySQLRouterTest.java b/shardingsphere-features/shardingsphere-replica-query/shardingsphere-replica-query-route/src/test/java/org/apache/shardingsphere/replicaquery/route/engine/ReplicaQuerySQLRouterTest.java index 388abd9ca9..b0308b73be 100644 --- a/shardingsphere-features/shardingsphere-replica-query/shardingsphere-replica-query-route/src/test/java/org/apache/shardingsphere/replicaquery/route/engine/ReplicaQuerySQLRouterTest.java +++ b/shardingsphere-features/shardingsphere-replica-query/shardingsphere-replica-query-route/src/test/java/org/apache/shardingsphere/replicaquery/route/engine/ReplicaQuerySQLRouterTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.SQLRouter; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; @@ -94,7 +94,7 @@ public final class ReplicaQuerySQLRouterTest { public void assertCreateRouteContextToPrimaryWithoutRouteUnits() { LogicSQL logicSQL = new LogicSQL(mock(SQLStatementContext.class), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); @@ -105,7 +105,7 @@ public final class ReplicaQuerySQLRouterTest { RouteContext actual = mockRouteContext(); LogicSQL logicSQL = new LogicSQL(mock(SQLStatementContext.class), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_REPLICA_QUERY_DATASOURCE_NAME)); @@ -119,7 +119,7 @@ public final class ReplicaQuerySQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.empty()); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(REPLICA_DATASOURCE)); @@ -133,7 +133,7 @@ public final class ReplicaQuerySQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.empty()); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_REPLICA_QUERY_DATASOURCE_NAME)); @@ -147,7 +147,7 @@ public final class ReplicaQuerySQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.of(mock(LockSegment.class))); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); @@ -161,7 +161,7 @@ public final class ReplicaQuerySQLRouterTest { when(selectStatement.getLock()).thenReturn(Optional.of(mock(LockSegment.class))); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(NONE_REPLICA_QUERY_DATASOURCE_NAME)); @@ -173,7 +173,7 @@ public final class ReplicaQuerySQLRouterTest { when(sqlStatementContext.getSqlStatement()).thenReturn(mock(InsertStatement.class)); LogicSQL logicSQL = new LogicSQL(sqlStatementContext, "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(PRIMARY_DATASOURCE)); diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/context/ShadowSQLRewriteContextDecorator.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/context/ShadowSQLRewriteContextDecorator.java index d30f38147a..4ea7f3f373 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/context/ShadowSQLRewriteContextDecorator.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/context/ShadowSQLRewriteContextDecorator.java @@ -35,7 +35,7 @@ public final class ShadowSQLRewriteContextDecorator implements SQLRewriteContext @SuppressWarnings("unchecked") @Override public void decorate(final ShadowRule shadowRule, final ConfigurationProperties props, final SQLRewriteContext sqlRewriteContext, final RouteContext routeContext) { - for (ParameterRewriter each : new ShadowParameterRewriterBuilder(shadowRule).getParameterRewriters(sqlRewriteContext.getSchemaMetaData())) { + for (ParameterRewriter each : new ShadowParameterRewriterBuilder(shadowRule).getParameterRewriters(sqlRewriteContext.getSchema())) { if (!sqlRewriteContext.getParameters().isEmpty() && each.isNeedRewrite(sqlRewriteContext.getSqlStatementContext())) { each.rewrite(sqlRewriteContext.getParameterBuilder(), sqlRewriteContext.getSqlStatementContext(), sqlRewriteContext.getParameters()); } diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/parameter/ShadowParameterRewriterBuilder.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/parameter/ShadowParameterRewriterBuilder.java index a76adb8e35..8ccdd4d79a 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/parameter/ShadowParameterRewriterBuilder.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-rewrite/src/main/java/org/apache/shardingsphere/shadow/rewrite/parameter/ShadowParameterRewriterBuilder.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.shadow.rule.ShadowRule; import org.apache.shardingsphere.shadow.rewrite.aware.ShadowRuleAware; import org.apache.shardingsphere.shadow.rewrite.parameter.impl.ShadowInsertValueParameterRewriter; import org.apache.shardingsphere.shadow.rewrite.parameter.impl.ShadowPredicateParameterRewriter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriterBuilder; @@ -38,7 +38,7 @@ public final class ShadowParameterRewriterBuilder implements ParameterRewriterBu private final ShadowRule shadowRule; @Override - public Collection getParameterRewriters(final PhysicalSchemaMetaData schemaMetaData) { + public Collection getParameterRewriters(final ShardingSphereSchema schema) { Collection result = getParameterRewriters(); for (ParameterRewriter each : result) { ((ShadowRuleAware) each).setShadowRule(shadowRule); diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowSQLRouterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowSQLRouterTest.java index 840ce1d00b..c9ae4e27fe 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowSQLRouterTest.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/ShadowSQLRouterTest.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.SQLRouter; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; @@ -81,7 +81,7 @@ public final class ShadowSQLRouterTest { public void assertCreateRouteContextToShadowDataSource() { LogicSQL logicSQL = new LogicSQL(mockSQLStatementContextForShadow(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(SHADOW_DATASOURCE)); @@ -91,7 +91,7 @@ public final class ShadowSQLRouterTest { public void assertCreateRouteContextToActualDataSource() { LogicSQL logicSQL = new LogicSQL(mockSQLStatementContext(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(ACTUAL_DATASOURCE)); @@ -101,7 +101,7 @@ public final class ShadowSQLRouterTest { public void assertCreateRouteContextForNonDMLStatement() { LogicSQL logicSQL = new LogicSQL(mockNonDMLSQLStatementContext(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); RouteContext actual = sqlRouter.createRouteContext(logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); assertThat(actual.getRouteUnits().size(), is(2)); assertTrue(actual.getActualDataSourceNames().contains(SHADOW_DATASOURCE)); @@ -115,7 +115,7 @@ public final class ShadowSQLRouterTest { LogicSQL logicSQL = new LogicSQL(mockSQLStatementContextForShadow(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); ShardingSphereMetaData metaData = new ShardingSphereMetaData( - "logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + "logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); assertThat(actual.getRouteUnits().size(), is(1)); assertTrue(actual.getActualDataSourceNames().contains(SHADOW_DATASOURCE)); @@ -127,7 +127,7 @@ public final class ShadowSQLRouterTest { actual.getRouteUnits().add(mockRouteUnit()); LogicSQL logicSQL = new LogicSQL(mockSQLStatementContext(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); Iterator routedDataSourceNames = actual.getActualDataSourceNames().iterator(); assertThat(routedDataSourceNames.next(), is(ACTUAL_DATASOURCE)); @@ -139,7 +139,7 @@ public final class ShadowSQLRouterTest { actual.getRouteUnits().add(mockRouteUnit()); LogicSQL logicSQL = new LogicSQL(mockNonDMLSQLStatementContext(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); assertThat(actual.getRouteUnits().size(), is(2)); assertTrue(actual.getActualDataSourceNames().contains(SHADOW_DATASOURCE)); @@ -152,7 +152,7 @@ public final class ShadowSQLRouterTest { actual.getRouteUnits().add(mockRouteUnit()); LogicSQL logicSQL = new LogicSQL(mockSQLStatementContextForShadow(), "", Collections.emptyList()); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(rule)); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("logic_schema", mock(ShardingSphereResource.class, RETURNS_DEEP_STUBS), ruleMetaData, mock(ShardingSphereSchema.class)); sqlRouter.decorateRouteContext(actual, logicSQL, metaData, rule, new ConfigurationProperties(new Properties())); assertThat(actual.getRouteUnits().size(), is(1)); assertTrue(actual.getActualDataSourceNames().contains(SHADOW_DATASOURCE)); diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/PreparedShadowDataSourceRouterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/PreparedShadowDataSourceRouterTest.java index f7af853db5..a2ef4ddc42 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/PreparedShadowDataSourceRouterTest.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/PreparedShadowDataSourceRouterTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.route.engine.judge.impl; import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration; import org.apache.shardingsphere.shadow.rule.ShadowRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -51,8 +51,8 @@ public final class PreparedShadowDataSourceRouterTest { @Test public void isShadowSQL() { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); ShadowRuleConfiguration shadowRuleConfig = new ShadowRuleConfiguration("shadow", Collections.singletonList("ds"), Collections.singletonList("shadow_ds")); ShadowRule shadowRule = new ShadowRule(shadowRuleConfig); InsertStatement insertStatement = new MySQLInsertStatement(); @@ -60,7 +60,7 @@ public final class PreparedShadowDataSourceRouterTest { InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Arrays.asList(new ColumnSegment(0, 0, new IdentifierValue("id")), new ColumnSegment(0, 0, new IdentifierValue("name")), new ColumnSegment(0, 0, new IdentifierValue("shadow")))); insertStatement.setInsertColumns(insertColumnsSegment); - InsertStatementContext insertStatementContext = new InsertStatementContext(schemaMetaData, Arrays.asList(1, "Tom", 2, "Jerry", 3, true), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(schema, Arrays.asList(1, "Tom", 2, "Jerry", 3, true), insertStatement); PreparedShadowDataSourceJudgeEngine preparedShadowDataSourceRouter = new PreparedShadowDataSourceJudgeEngine(shadowRule, insertStatementContext, Arrays.asList(1, "Tom", true)); assertTrue("should be shadow", preparedShadowDataSourceRouter.isShadow()); } @@ -69,30 +69,30 @@ public final class PreparedShadowDataSourceRouterTest { public void isShadowSQLInLiteralExpressionForMySQL() { isShadowSQLInLiteralExpression(new MySQLSelectStatement()); } - + @Test public void isShadowSQLInLiteralExpressionForOracle() { isShadowSQLInLiteralExpression(new OracleSelectStatement()); } - + @Test public void isShadowSQLInLiteralExpressionForPostgreSQL() { isShadowSQLInLiteralExpression(new PostgreSQLSelectStatement()); } - + @Test public void isShadowSQLInLiteralExpressionForSQL92() { isShadowSQLInLiteralExpression(new SQL92SelectStatement()); } - + @Test public void isShadowSQLInLiteralExpressionForSQLServer() { isShadowSQLInLiteralExpression(new SQLServerSelectStatement()); } - + private void isShadowSQLInLiteralExpression(final SelectStatement selectStatement) { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); ShadowRuleConfiguration shadowRuleConfig = new ShadowRuleConfiguration("shadow", Collections.singletonList("ds"), Collections.singletonList("shadow_ds")); ShadowRule shadowRule = new ShadowRule(shadowRuleConfig); PreparedShadowDataSourceJudgeEngine preparedShadowDataSourceRouter = new PreparedShadowDataSourceJudgeEngine(shadowRule, diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/SimpleShadowDataSourceRouterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/SimpleShadowDataSourceRouterTest.java index 83a805952d..641872f1e1 100644 --- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/SimpleShadowDataSourceRouterTest.java +++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-route/src/test/java/org/apache/shardingsphere/shadow/route/engine/judge/impl/SimpleShadowDataSourceRouterTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.route.engine.judge.impl; import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration; import org.apache.shardingsphere.shadow.rule.ShadowRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment; @@ -57,14 +57,14 @@ import static org.mockito.Mockito.when; public final class SimpleShadowDataSourceRouterTest { - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; private ShadowRule shadowRule; @Before public void setUp() { - schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); + schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "shadow")); shadowRule = new ShadowRule(new ShadowRuleConfiguration("shadow", Collections.singletonList("ds"), Collections.singletonList("shadow_ds"))); } @@ -100,13 +100,13 @@ public final class SimpleShadowDataSourceRouterTest { insertStatement.setInsertColumns(insertColumnsSegment); insertStatement.getValues().addAll(Collections.singletonList(new InsertValuesSegment( 0, 0, Arrays.asList(new LiteralExpressionSegment(0, 0, 1), new LiteralExpressionSegment(0, 0, "name"), new LiteralExpressionSegment(0, 0, true))))); - InsertStatementContext insertStatementContext = new InsertStatementContext(schemaMetaData, Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(schema, Collections.emptyList(), insertStatement); SimpleShadowDataSourceJudgeEngine simpleShadowDataSourceRouter = new SimpleShadowDataSourceJudgeEngine(shadowRule, insertStatementContext); assertTrue("should be shadow", simpleShadowDataSourceRouter.isShadow()); insertStatement.getValues().clear(); insertStatement.getValues().addAll(Collections.singletonList( new InsertValuesSegment(0, 0, Arrays.asList(new LiteralExpressionSegment(0, 0, 1), new LiteralExpressionSegment(0, 0, "name"), new LiteralExpressionSegment(0, 0, false))))); - insertStatementContext = new InsertStatementContext(schemaMetaData, Collections.emptyList(), insertStatement); + insertStatementContext = new InsertStatementContext(schema, Collections.emptyList(), insertStatement); simpleShadowDataSourceRouter = new SimpleShadowDataSourceJudgeEngine(shadowRule, insertStatementContext); assertFalse("should not be shadow", simpleShadowDataSourceRouter.isShadow()); } @@ -146,7 +146,7 @@ public final class SimpleShadowDataSourceRouterTest { projectionsSegment.setDistinctRow(true); projectionsSegment.getProjections().addAll(Collections.singletonList(new ExpressionProjectionSegment(0, 0, "true"))); selectStatement.setProjections(projectionsSegment); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, Collections.emptyList(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, Collections.emptyList(), selectStatement); SimpleShadowDataSourceJudgeEngine simpleShadowDataSourceRouter = new SimpleShadowDataSourceJudgeEngine(shadowRule, selectStatementContext); assertTrue("should be shadow", simpleShadowDataSourceRouter.isShadow()); expression = new BinaryOperationExpression(0, 0, new ColumnSegment(0, 0, new IdentifierValue("shadow")), new LiteralExpressionSegment(0, 0, false), "=", null); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java index 0720bb40ce..10f86d70ae 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMerged import org.apache.shardingsphere.sharding.merge.dal.show.LogicTablesMergedResult; import org.apache.shardingsphere.sharding.merge.dal.show.ShowCreateTableMergedResult; import org.apache.shardingsphere.sharding.rule.ShardingRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowCreateTableStatement; @@ -49,16 +49,16 @@ public final class ShardingDALResultMerger implements ResultMerger { private final ShardingRule shardingRule; @Override - public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) throws SQLException { SQLStatement dalStatement = sqlStatementContext.getSqlStatement(); if (dalStatement instanceof MySQLShowDatabasesStatement) { return new SingleLocalDataMergedResult(Collections.singletonList(DefaultSchema.LOGIC_NAME)); } if (dalStatement instanceof MySQLShowTablesStatement || dalStatement instanceof MySQLShowTableStatusStatement || dalStatement instanceof MySQLShowIndexStatement) { - return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schemaMetaData, queryResults); + return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schema, queryResults); } if (dalStatement instanceof MySQLShowCreateTableStatement) { - return new ShowCreateTableMergedResult(shardingRule, sqlStatementContext, schemaMetaData, queryResults); + return new ShowCreateTableMergedResult(shardingRule, sqlStatementContext, schema, queryResults); } return new TransparentMergedResult(queryResults.get(0)); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java index 95eee861cf..d38be49c26 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dal.show; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sharding.rule.TableRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.impl.memory.MemoryMergedResult; @@ -38,12 +38,12 @@ import java.util.Set; public class LogicTablesMergedResult extends MemoryMergedResult { public LogicTablesMergedResult(final ShardingRule shardingRule, - final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData, final List queryResults) throws SQLException { - super(shardingRule, schemaMetaData, sqlStatementContext, queryResults); + final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema, final List queryResults) throws SQLException { + super(shardingRule, schema, sqlStatementContext, queryResults); } @Override - protected final List init(final ShardingRule shardingRule, final PhysicalSchemaMetaData schemaMetaData, + protected final List init(final ShardingRule shardingRule, final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext, final List queryResults) throws SQLException { List result = new LinkedList<>(); Set tableNames = new HashSet<>(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResult.java index 8fb0bb6fbe..9744e6e06b 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResult.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResult.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.merge.dal.show; import org.apache.shardingsphere.sharding.rule.ShardingRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.impl.memory.MemoryQueryResultRow; @@ -32,8 +32,8 @@ import java.util.List; public final class ShowCreateTableMergedResult extends LogicTablesMergedResult { public ShowCreateTableMergedResult(final ShardingRule shardingRule, - final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData, final List queryResults) throws SQLException { - super(shardingRule, sqlStatementContext, schemaMetaData, queryResults); + final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema, final List queryResults) throws SQLException { + super(shardingRule, sqlStatementContext, schema, queryResults); } @Override diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java index 81d8e3495d..22ef187fb0 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java @@ -26,7 +26,7 @@ import org.apache.shardingsphere.sharding.merge.dql.pagination.LimitDecoratorMer import org.apache.shardingsphere.sharding.merge.dql.pagination.RowNumberDecoratorMergedResult; import org.apache.shardingsphere.sharding.merge.dql.pagination.TopAndRowNumberDecoratorMergedResult; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem; import org.apache.shardingsphere.infra.binder.segment.select.pagination.PaginationContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; @@ -53,14 +53,14 @@ public final class ShardingDQLResultMerger implements ResultMerger { private final DatabaseType databaseType; @Override - public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) throws SQLException { if (1 == queryResults.size()) { return new IteratorStreamMergedResult(queryResults); } Map columnLabelIndexMap = getColumnLabelIndexMap(queryResults.get(0)); SelectStatementContext selectStatementContext = (SelectStatementContext) sqlStatementContext; selectStatementContext.setIndexes(columnLabelIndexMap); - MergedResult mergedResult = build(queryResults, selectStatementContext, columnLabelIndexMap, schemaMetaData); + MergedResult mergedResult = build(queryResults, selectStatementContext, columnLabelIndexMap, schema); return decorate(queryResults, selectStatementContext, mergedResult); } @@ -73,16 +73,16 @@ public final class ShardingDQLResultMerger implements ResultMerger { } private MergedResult build(final List queryResults, final SelectStatementContext selectStatementContext, - final Map columnLabelIndexMap, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + final Map columnLabelIndexMap, final ShardingSphereSchema schema) throws SQLException { if (isNeedProcessGroupBy(selectStatementContext)) { - return getGroupByMergedResult(queryResults, selectStatementContext, columnLabelIndexMap, schemaMetaData); + return getGroupByMergedResult(queryResults, selectStatementContext, columnLabelIndexMap, schema); } if (isNeedProcessDistinctRow(selectStatementContext)) { setGroupByForDistinctRow(selectStatementContext); - return getGroupByMergedResult(queryResults, selectStatementContext, columnLabelIndexMap, schemaMetaData); + return getGroupByMergedResult(queryResults, selectStatementContext, columnLabelIndexMap, schema); } if (isNeedProcessOrderBy(selectStatementContext)) { - return new OrderByStreamMergedResult(queryResults, selectStatementContext, schemaMetaData); + return new OrderByStreamMergedResult(queryResults, selectStatementContext, schema); } return new IteratorStreamMergedResult(queryResults); } @@ -104,10 +104,10 @@ public final class ShardingDQLResultMerger implements ResultMerger { } private MergedResult getGroupByMergedResult(final List queryResults, final SelectStatementContext selectStatementContext, - final Map columnLabelIndexMap, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + final Map columnLabelIndexMap, final ShardingSphereSchema schema) throws SQLException { return selectStatementContext.isSameGroupByAndOrderByItems() - ? new GroupByStreamMergedResult(columnLabelIndexMap, queryResults, selectStatementContext, schemaMetaData) - : new GroupByMemoryMergedResult(queryResults, selectStatementContext, schemaMetaData); + ? new GroupByStreamMergedResult(columnLabelIndexMap, queryResults, selectStatementContext, schema) + : new GroupByMemoryMergedResult(queryResults, selectStatementContext, schema); } private boolean isNeedProcessOrderBy(final SelectStatementContext selectStatementContext) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java index c1ccfaec67..e9106df744 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResult.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sharding.merge.dql.groupby.aggregation.Aggregat import org.apache.shardingsphere.sharding.merge.dql.groupby.aggregation.AggregationUnitFactory; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationDistinctProjection; @@ -51,13 +51,13 @@ import java.util.Map.Entry; */ public final class GroupByMemoryMergedResult extends MemoryMergedResult { - public GroupByMemoryMergedResult(final List queryResults, final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { - super(null, schemaMetaData, selectStatementContext, queryResults); + public GroupByMemoryMergedResult(final List queryResults, final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { + super(null, schema, selectStatementContext, queryResults); } @Override protected List init(final ShardingRule shardingRule, - final PhysicalSchemaMetaData schemaMetaData, final SQLStatementContext sqlStatementContext, final List queryResults) throws SQLException { + final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext, final List queryResults) throws SQLException { SelectStatementContext selectStatementContext = (SelectStatementContext) sqlStatementContext; Map dataMap = new HashMap<>(1024); Map> aggregationMap = new HashMap<>(1024); @@ -69,7 +69,7 @@ public final class GroupByMemoryMergedResult extends MemoryMergedResult valueCaseSensitive = queryResults.isEmpty() ? Collections.emptyList() : getValueCaseSensitive(queryResults.iterator().next(), selectStatementContext, schemaMetaData); + List valueCaseSensitive = queryResults.isEmpty() ? Collections.emptyList() : getValueCaseSensitive(queryResults.iterator().next(), selectStatementContext, schema); return getMemoryResultSetRows(selectStatementContext, dataMap, valueCaseSensitive); } @@ -116,19 +116,19 @@ public final class GroupByMemoryMergedResult extends MemoryMergedResult getValueCaseSensitive(final QueryResult queryResult, final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + private List getValueCaseSensitive(final QueryResult queryResult, final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { List result = Lists.newArrayList(false); for (int columnIndex = 1; columnIndex <= queryResult.getColumnCount(); columnIndex++) { - result.add(getValueCaseSensitiveFromTables(queryResult, selectStatementContext, schemaMetaData, columnIndex)); + result.add(getValueCaseSensitiveFromTables(queryResult, selectStatementContext, schema, columnIndex)); } return result; } - private boolean getValueCaseSensitiveFromTables(final QueryResult queryResult, final SelectStatementContext selectStatementContext, - final PhysicalSchemaMetaData schemaMetaData, final int columnIndex) throws SQLException { + private boolean getValueCaseSensitiveFromTables(final QueryResult queryResult, + final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema, final int columnIndex) throws SQLException { for (SimpleTableSegment each : selectStatementContext.getSimpleTableSegments()) { String tableName = each.getTableName().getIdentifier().getValue(); - PhysicalTableMetaData tableMetaData = schemaMetaData.get(tableName); + PhysicalTableMetaData tableMetaData = schema.get(tableName); Map columns = tableMetaData.getColumns(); String columnName = queryResult.getColumnName(columnIndex); if (columns.containsKey(columnName)) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResult.java index 7d2127daf9..0a41527f96 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResult.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResult.java @@ -22,7 +22,7 @@ import com.google.common.collect.Maps; import org.apache.shardingsphere.sharding.merge.dql.groupby.aggregation.AggregationUnit; import org.apache.shardingsphere.sharding.merge.dql.groupby.aggregation.AggregationUnitFactory; import org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByStreamMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationDistinctProjection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationProjection; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; @@ -48,8 +48,8 @@ public final class GroupByStreamMergedResult extends OrderByStreamMergedResult { private List currentGroupByValues; public GroupByStreamMergedResult(final Map labelAndIndexMap, final List queryResults, - final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { - super(queryResults, selectStatementContext, schemaMetaData); + final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { + super(queryResults, selectStatementContext, schema); this.selectStatementContext = selectStatementContext; currentRow = new ArrayList<>(labelAndIndexMap.size()); currentGroupByValues = getOrderByValuesQueue().isEmpty() diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResult.java index 5b6d04fa76..52eca3edc1 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResult.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResult.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dql.orderby; import lombok.AccessLevel; import lombok.Getter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.impl.stream.StreamMergedResult; @@ -44,16 +44,16 @@ public class OrderByStreamMergedResult extends StreamMergedResult { @Getter(AccessLevel.PROTECTED) private boolean isFirstNext; - public OrderByStreamMergedResult(final List queryResults, final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public OrderByStreamMergedResult(final List queryResults, final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { orderByItems = selectStatementContext.getOrderByContext().getItems(); orderByValuesQueue = new PriorityQueue<>(queryResults.size()); - orderResultSetsToQueue(queryResults, selectStatementContext, schemaMetaData); + orderResultSetsToQueue(queryResults, selectStatementContext, schema); isFirstNext = true; } - private void orderResultSetsToQueue(final List queryResults, final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + private void orderResultSetsToQueue(final List queryResults, final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { for (QueryResult each : queryResults) { - OrderByValue orderByValue = new OrderByValue(each, orderByItems, selectStatementContext, schemaMetaData); + OrderByValue orderByValue = new OrderByValue(each, orderByItems, selectStatementContext, schema); if (orderByValue.next()) { orderByValuesQueue.offer(orderByValue); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java index 882f4cb6f9..0a9bc39b02 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.merge.dql.orderby; import com.google.common.base.Preconditions; import lombok.Getter; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; @@ -52,25 +52,25 @@ public final class OrderByValue implements Comparable { private List> orderValues; public OrderByValue(final QueryResult queryResult, final Collection orderByItems, - final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { this.queryResult = queryResult; this.orderByItems = orderByItems; - orderValuesCaseSensitive = getOrderValuesCaseSensitive(selectStatementContext, schemaMetaData); + orderValuesCaseSensitive = getOrderValuesCaseSensitive(selectStatementContext, schema); } - private List getOrderValuesCaseSensitive(final SelectStatementContext selectStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + private List getOrderValuesCaseSensitive(final SelectStatementContext selectStatementContext, final ShardingSphereSchema schema) throws SQLException { List result = new ArrayList<>(orderByItems.size()); for (OrderByItem eachOrderByItem : orderByItems) { - result.add(getOrderValuesCaseSensitiveFromTables(selectStatementContext, schemaMetaData, eachOrderByItem)); + result.add(getOrderValuesCaseSensitiveFromTables(selectStatementContext, schema, eachOrderByItem)); } return result; } private boolean getOrderValuesCaseSensitiveFromTables(final SelectStatementContext selectStatementContext, - final PhysicalSchemaMetaData schemaMetaData, final OrderByItem eachOrderByItem) throws SQLException { + final ShardingSphereSchema schema, final OrderByItem eachOrderByItem) throws SQLException { for (SimpleTableSegment eachSimpleTableSegment : selectStatementContext.getAllTables()) { String tableName = eachSimpleTableSegment.getTableName().getIdentifier().getValue(); - PhysicalTableMetaData tableMetaData = schemaMetaData.get(tableName); + PhysicalTableMetaData tableMetaData = schema.get(tableName); Map columns = tableMetaData.getColumns(); OrderByItemSegment orderByItemSegment = eachOrderByItem.getSegment(); if (orderByItemSegment instanceof ColumnOrderByItemSegment) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java index 27a9c68e0a..bdc1c91bbf 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry; import org.apache.shardingsphere.infra.merge.engine.merger.impl.TransparentResultMerger; import org.apache.shardingsphere.sharding.merge.dal.ShardingDALResultMerger; import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; import org.apache.shardingsphere.infra.binder.segment.select.pagination.PaginationContext; @@ -100,7 +100,7 @@ public final class ShardingResultMergerEngineTest { InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col")))); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); insertStatement.setInsertColumns(insertColumnsSegment); - InsertStatementContext sqlStatementContext = new InsertStatementContext(mock(PhysicalSchemaMetaData.class), Collections.emptyList(), insertStatement); + InsertStatementContext sqlStatementContext = new InsertStatementContext(mock(ShardingSphereSchema.class), Collections.emptyList(), insertStatement); ConfigurationProperties props = new ConfigurationProperties(new Properties()); assertThat(new ShardingResultMergerEngine().newInstance(DatabaseTypeRegistry.getActualDatabaseType("MySQL"), null, props, sqlStatementContext), instanceOf(TransparentResultMerger.class)); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java index fb97867990..432c4de6b4 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration; import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.junit.Before; @@ -41,36 +41,36 @@ public final class ShowCreateTableMergedResultTest { private ShardingRule shardingRule; - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Before public void setUp() { - shardingRule = createShardingRule(); - schemaMetaData = createSchemaMetaData(); + shardingRule = buildShardingRule(); + schema = buildSchema(); } - private ShardingRule createShardingRule() { + private ShardingRule buildShardingRule() { ShardingTableRuleConfiguration tableRuleConfig = new ShardingTableRuleConfiguration("table", "ds.table_${0..2}"); ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTables().add(tableRuleConfig); return new ShardingRule(shardingRuleConfig, Collections.singletonList("ds")); } - private PhysicalSchemaMetaData createSchemaMetaData() { + private ShardingSphereSchema buildSchema() { Map tableMetaDataMap = new HashMap<>(1, 1); tableMetaDataMap.put("table", new PhysicalTableMetaData(Collections.emptyList(), Collections.emptyList())); - return new PhysicalSchemaMetaData(tableMetaDataMap); + return new ShardingSphereSchema(tableMetaDataMap); } @Test public void assertNextForEmptyQueryResult() throws SQLException { - ShowCreateTableMergedResult actual = new ShowCreateTableMergedResult(shardingRule, mock(SQLStatementContext.class), schemaMetaData, Collections.emptyList()); + ShowCreateTableMergedResult actual = new ShowCreateTableMergedResult(shardingRule, mock(SQLStatementContext.class), schema, Collections.emptyList()); assertFalse(actual.next()); } @Test public void assertNextForTableRuleIsPresent() throws SQLException { - ShowCreateTableMergedResult actual = new ShowCreateTableMergedResult(shardingRule, mock(SQLStatementContext.class), schemaMetaData, Collections.singletonList(createQueryResult())); + ShowCreateTableMergedResult actual = new ShowCreateTableMergedResult(shardingRule, mock(SQLStatementContext.class), schema, Collections.singletonList(createQueryResult())); assertTrue(actual.next()); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java index 8648219717..d5dedb854f 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration; import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.junit.Before; @@ -42,28 +42,28 @@ public final class ShowTablesMergedResultTest { private ShardingRule shardingRule; - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Before public void setUp() { - shardingRule = createShardingRule(); - schemaMetaData = createSchemaMetaData(); + shardingRule = buildShardingRule(); + schema = buildSchema(); } - private ShardingRule createShardingRule() { + private ShardingRule buildShardingRule() { ShardingTableRuleConfiguration tableRuleConfig = new ShardingTableRuleConfiguration("table", "ds.table_${0..2}"); ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTables().add(tableRuleConfig); return new ShardingRule(shardingRuleConfig, Lists.newArrayList("ds")); } - private PhysicalSchemaMetaData createSchemaMetaData() { + private ShardingSphereSchema buildSchema() { Map tableMetaDataMap = new HashMap<>(1, 1); tableMetaDataMap.put("table", new PhysicalTableMetaData(Collections.emptyList(), Collections.emptyList())); - return new PhysicalSchemaMetaData(tableMetaDataMap); + return new ShardingSphereSchema(tableMetaDataMap); } - private QueryResult createQueryResult(final String value) throws SQLException { + private QueryResult mockQueryResult(final String value) throws SQLException { QueryResult result = mock(QueryResult.class); when(result.next()).thenReturn(true, false); when(result.getValue(1, Object.class)).thenReturn(value); @@ -73,13 +73,13 @@ public final class ShowTablesMergedResultTest { @Test public void assertNextForEmptyQueryResult() throws SQLException { - LogicTablesMergedResult actual = new LogicTablesMergedResult(shardingRule, mock(SQLStatementContext.class), schemaMetaData, Collections.emptyList()); + LogicTablesMergedResult actual = new LogicTablesMergedResult(shardingRule, mock(SQLStatementContext.class), schema, Collections.emptyList()); assertFalse(actual.next()); } @Test public void assertNextForActualTableNameInTableRule() throws SQLException { - LogicTablesMergedResult actual = new LogicTablesMergedResult(shardingRule, mock(SQLStatementContext.class), schemaMetaData, Collections.singletonList(createQueryResult("table_0"))); + LogicTablesMergedResult actual = new LogicTablesMergedResult(shardingRule, mock(SQLStatementContext.class), schema, Collections.singletonList(mockQueryResult("table_0"))); assertTrue(actual.next()); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java index 6cf1e78917..2cfc3481c6 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java @@ -29,7 +29,7 @@ import org.apache.shardingsphere.sharding.merge.dql.pagination.LimitDecoratorMer import org.apache.shardingsphere.sharding.merge.dql.pagination.RowNumberDecoratorMergedResult; import org.apache.shardingsphere.sharding.merge.dql.pagination.TopAndRowNumberDecoratorMergedResult; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; @@ -68,30 +68,30 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildIteratorStreamMergedResult() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(null, null, Collections.emptyList())); - assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()), instanceOf(IteratorStreamMergedResult.class)); + assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()), instanceOf(IteratorStreamMergedResult.class)); } @Test public void assertBuildIteratorStreamMergedResultWithLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - assertThat(resultMerger.merge(Collections.singletonList(createQueryResult()), selectStatementContext, createSchemaMetaData()), instanceOf(IteratorStreamMergedResult.class)); + assertThat(resultMerger.merge(Collections.singletonList(createQueryResult()), selectStatementContext, buildSchema()), instanceOf(IteratorStreamMergedResult.class)); } @Test public void assertBuildIteratorStreamMergedResultWithMySQLLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(LimitDecoratorMergedResult.class)); assertThat(((LimitDecoratorMergedResult) actual).getMergedResult(), instanceOf(IteratorStreamMergedResult.class)); } @@ -99,11 +99,11 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildIteratorStreamMergedResultWithOracleLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("Oracle")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new OracleSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(RowNumberDecoratorMergedResult.class)); assertThat(((RowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(IteratorStreamMergedResult.class)); } @@ -111,11 +111,11 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildIteratorStreamMergedResultWithSQLServerLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("SQLServer")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new SQLServerSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(TopAndRowNumberDecoratorMergedResult.class)); assertThat(((TopAndRowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(IteratorStreamMergedResult.class)); } @@ -124,21 +124,21 @@ public final class ShardingDQLResultMergerTest { public void assertBuildOrderByStreamMergedResult() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), + buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(null, null, Collections.emptyList())); - assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()), instanceOf(OrderByStreamMergedResult.class)); + assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()), instanceOf(OrderByStreamMergedResult.class)); } @Test public void assertBuildOrderByStreamMergedResultWithMySQLLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), + buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(LimitDecoratorMergedResult.class)); assertThat(((LimitDecoratorMergedResult) actual).getMergedResult(), instanceOf(OrderByStreamMergedResult.class)); } @@ -147,11 +147,11 @@ public final class ShardingDQLResultMergerTest { public void assertBuildOrderByStreamMergedResultWithOracleLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("Oracle")); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.emptyList(), 0), + buildSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(RowNumberDecoratorMergedResult.class)); assertThat(((RowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(OrderByStreamMergedResult.class)); } @@ -160,11 +160,11 @@ public final class ShardingDQLResultMergerTest { public void assertBuildOrderByStreamMergedResultWithSQLServerLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("SQLServer")); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.emptyList(), 0), + buildSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(TopAndRowNumberDecoratorMergedResult.class)); assertThat(((TopAndRowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(OrderByStreamMergedResult.class)); } @@ -172,22 +172,22 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByStreamMergedResult() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(null, null, Collections.emptyList())); - assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()), instanceOf(GroupByStreamMergedResult.class)); + assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()), instanceOf(GroupByStreamMergedResult.class)); } @Test public void assertBuildGroupByStreamMergedResultWithMySQLLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(LimitDecoratorMergedResult.class)); assertThat(((LimitDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByStreamMergedResult.class)); } @@ -195,12 +195,12 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByStreamMergedResultWithOracleLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("Oracle")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new OracleSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(RowNumberDecoratorMergedResult.class)); assertThat(((RowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByStreamMergedResult.class)); } @@ -208,12 +208,12 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByStreamMergedResultWithSQLServerLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("SQLServer")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new SQLServerSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(TopAndRowNumberDecoratorMergedResult.class)); assertThat(((TopAndRowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByStreamMergedResult.class)); } @@ -221,21 +221,21 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByMemoryMergedResult() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(null, null, Collections.emptyList())); - assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()), instanceOf(GroupByMemoryMergedResult.class)); + assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()), instanceOf(GroupByMemoryMergedResult.class)); } @Test public void assertBuildGroupByMemoryMergedResultWithMySQLLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new MySQLSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(LimitDecoratorMergedResult.class)); assertThat(((LimitDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -243,12 +243,12 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByMemoryMergedResultWithOracleLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("Oracle")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new OracleSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC))), 0), new OrderByContext(Collections.singletonList(new OrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC))), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(RowNumberDecoratorMergedResult.class)); assertThat(((RowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -256,13 +256,13 @@ public final class ShardingDQLResultMergerTest { @Test public void assertBuildGroupByMemoryMergedResultWithSQLServerLimit() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("SQLServer")); - SelectStatementContext selectStatementContext = new SelectStatementContext(createSelectStatement(new SQLServerSelectStatement()), + SelectStatementContext selectStatementContext = new SelectStatementContext(buildSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Arrays.asList( new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)), new OrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC))), 0), new OrderByContext(Collections.emptyList(), false), new ProjectionsContext(0, 0, false, Collections.emptyList()), new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(TopAndRowNumberDecoratorMergedResult.class)); assertThat(((TopAndRowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -273,9 +273,9 @@ public final class ShardingDQLResultMergerTest { ProjectionsContext projectionsContext = new ProjectionsContext( 0, 0, false, Collections.singletonList(new AggregationProjection(AggregationType.COUNT, "(*)", null))); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), + buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), projectionsContext, new PaginationContext(null, null, Collections.emptyList())); - assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()), instanceOf(GroupByMemoryMergedResult.class)); + assertThat(resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()), instanceOf(GroupByMemoryMergedResult.class)); } @Test @@ -284,9 +284,9 @@ public final class ShardingDQLResultMergerTest { ProjectionsContext projectionsContext = new ProjectionsContext( 0, 0, false, Collections.singletonList(new AggregationProjection(AggregationType.COUNT, "(*)", null))); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), + buildSelectStatement(new MySQLSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), projectionsContext, new PaginationContext(new NumberLiteralLimitValueSegment(0, 0, 1), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(LimitDecoratorMergedResult.class)); assertThat(((LimitDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -297,9 +297,9 @@ public final class ShardingDQLResultMergerTest { ProjectionsContext projectionsContext = new ProjectionsContext( 0, 0, false, Collections.singletonList(new AggregationProjection(AggregationType.COUNT, "(*)", null))); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), + buildSelectStatement(new OracleSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), projectionsContext, new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(RowNumberDecoratorMergedResult.class)); assertThat(((RowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -310,9 +310,9 @@ public final class ShardingDQLResultMergerTest { ProjectionsContext projectionsContext = new ProjectionsContext( 0, 0, false, Collections.singletonList(new AggregationProjection(AggregationType.COUNT, "(*)", null))); SelectStatementContext selectStatementContext = new SelectStatementContext( - createSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), + buildSelectStatement(new SQLServerSelectStatement()), new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false), projectionsContext, new PaginationContext(new NumberLiteralRowNumberValueSegment(0, 0, 1, true), null, Collections.emptyList())); - MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(createQueryResults(), selectStatementContext, buildSchema()); assertThat(actual, instanceOf(TopAndRowNumberDecoratorMergedResult.class)); assertThat(((TopAndRowNumberDecoratorMergedResult) actual).getMergedResult(), instanceOf(GroupByMemoryMergedResult.class)); } @@ -335,15 +335,15 @@ public final class ShardingDQLResultMergerTest { return result; } - private PhysicalSchemaMetaData createSchemaMetaData() { + private ShardingSphereSchema buildSchema() { PhysicalColumnMetaData columnMetaData1 = new PhysicalColumnMetaData("col1", 0, "dataType", false, false, false); PhysicalColumnMetaData columnMetaData2 = new PhysicalColumnMetaData("col2", 0, "dataType", false, false, false); PhysicalColumnMetaData columnMetaData3 = new PhysicalColumnMetaData("col3", 0, "dataType", false, false, false); PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Arrays.asList(columnMetaData1, columnMetaData2, columnMetaData3), Collections.emptyList()); - return new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)); + return new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)); } - private SelectStatement createSelectStatement(final SelectStatement result) { + private SelectStatement buildSelectStatement(final SelectStatement result) { SimpleTableSegment tableSegment = new SimpleTableSegment(10, 13, new IdentifierValue("tbl")); result.setFrom(tableSegment); ProjectionsSegment projectionsSegment = new ProjectionsSegment(0, 0); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java index 4947d97926..b39b435eef 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; @@ -60,13 +60,13 @@ public final class GroupByStreamMergedResultTest { @Test public void assertNextForResultSetsAllEmpty() throws SQLException { ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(Arrays.asList(createQueryResult(), createQueryResult(), createQueryResult()), createSelectStatementContext(), createSchemaMetaData()); + MergedResult actual = resultMerger.merge(Arrays.asList(mockQueryResult(), mockQueryResult(), mockQueryResult()), createSelectStatementContext(), buildSchema()); assertFalse(actual.next()); } @Test public void assertNextForSomeResultSetsEmpty() throws SQLException { - QueryResult queryResult1 = createQueryResult(); + QueryResult queryResult1 = mockQueryResult(); when(queryResult1.next()).thenReturn(true, false); when(queryResult1.getValue(1, Object.class)).thenReturn(20); when(queryResult1.getValue(2, Object.class)).thenReturn(0); @@ -74,8 +74,8 @@ public final class GroupByStreamMergedResultTest { when(queryResult1.getValue(4, Object.class)).thenReturn(new Date(0L)); when(queryResult1.getValue(5, Object.class)).thenReturn(2); when(queryResult1.getValue(6, Object.class)).thenReturn(20); - QueryResult queryResult2 = createQueryResult(); - QueryResult queryResult3 = createQueryResult(); + QueryResult queryResult2 = mockQueryResult(); + QueryResult queryResult3 = mockQueryResult(); when(queryResult3.next()).thenReturn(true, true, false); when(queryResult3.getValue(1, Object.class)).thenReturn(20, 30); when(queryResult3.getValue(2, Object.class)).thenReturn(0); @@ -84,7 +84,7 @@ public final class GroupByStreamMergedResultTest { when(queryResult3.getValue(5, Object.class)).thenReturn(2, 2, 3); when(queryResult3.getValue(6, Object.class)).thenReturn(20, 20, 30); ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), createSchemaMetaData()); + MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(1, Object.class), is(new BigDecimal(40))); assertThat(((BigDecimal) actual.getValue(2, Object.class)).intValue(), is(10)); @@ -104,21 +104,21 @@ public final class GroupByStreamMergedResultTest { @Test public void assertNextForMix() throws SQLException { - QueryResult queryResult1 = createQueryResult(); + QueryResult queryResult1 = mockQueryResult(); when(queryResult1.next()).thenReturn(true, false); when(queryResult1.getValue(1, Object.class)).thenReturn(20); when(queryResult1.getValue(2, Object.class)).thenReturn(0); when(queryResult1.getValue(3, Object.class)).thenReturn(2); when(queryResult1.getValue(5, Object.class)).thenReturn(2); when(queryResult1.getValue(6, Object.class)).thenReturn(20); - QueryResult queryResult2 = createQueryResult(); + QueryResult queryResult2 = mockQueryResult(); when(queryResult2.next()).thenReturn(true, true, true, false); when(queryResult2.getValue(1, Object.class)).thenReturn(20, 30, 30, 40); when(queryResult2.getValue(2, Object.class)).thenReturn(0); when(queryResult2.getValue(3, Object.class)).thenReturn(2, 2, 3, 3, 3, 4); when(queryResult2.getValue(5, Object.class)).thenReturn(2, 2, 3, 3, 3, 4); when(queryResult2.getValue(6, Object.class)).thenReturn(20, 20, 30, 30, 30, 40); - QueryResult queryResult3 = createQueryResult(); + QueryResult queryResult3 = mockQueryResult(); when(queryResult3.next()).thenReturn(true, true, false); when(queryResult3.getValue(1, Object.class)).thenReturn(10, 30); when(queryResult3.getValue(2, Object.class)).thenReturn(10); @@ -126,7 +126,7 @@ public final class GroupByStreamMergedResultTest { when(queryResult3.getValue(5, Object.class)).thenReturn(1, 1, 3); when(queryResult3.getValue(6, Object.class)).thenReturn(10, 10, 30); ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), createSchemaMetaData()); + MergedResult actual = resultMerger.merge(Arrays.asList(queryResult1, queryResult2, queryResult3), createSelectStatementContext(), buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(1, Object.class), is(new BigDecimal(10))); assertThat(((BigDecimal) actual.getValue(2, Object.class)).intValue(), is(10)); @@ -177,15 +177,15 @@ public final class GroupByStreamMergedResultTest { projectionsContext, new PaginationContext(null, null, Collections.emptyList())); } - private PhysicalSchemaMetaData createSchemaMetaData() { + private ShardingSphereSchema buildSchema() { PhysicalColumnMetaData columnMetaData1 = new PhysicalColumnMetaData("col1", 0, "dataType", false, false, false); PhysicalColumnMetaData columnMetaData2 = new PhysicalColumnMetaData("col2", 0, "dataType", false, false, false); PhysicalColumnMetaData columnMetaData3 = new PhysicalColumnMetaData("col3", 0, "dataType", false, false, false); PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Arrays.asList(columnMetaData1, columnMetaData2, columnMetaData3), Collections.emptyList()); - return new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)); + return new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)); } - private QueryResult createQueryResult() throws SQLException { + private QueryResult mockQueryResult() throws SQLException { QueryResult result = mock(QueryResult.class); when(result.getColumnCount()).thenReturn(6); when(result.getColumnLabel(1)).thenReturn("COUNT(*)"); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java index 933cecf0b0..2080b797d1 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; @@ -74,7 +74,7 @@ public final class OrderByStreamMergedResultTest { public void assertNextForResultSetsAllEmpty() throws SQLException { List queryResults = Arrays.asList(mock(QueryResult.class), mock(QueryResult.class), mock(QueryResult.class)); ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, buildSchema()); assertFalse(actual.next()); } @@ -90,7 +90,7 @@ public final class OrderByStreamMergedResultTest { when(queryResults.get(0).getValue(1, Object.class)).thenReturn("2"); when(queryResults.get(2).next()).thenReturn(true, true, false); when(queryResults.get(2).getValue(1, Object.class)).thenReturn("1", "1", "3", "3"); - MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(1, Object.class).toString(), is("1")); assertTrue(actual.next()); @@ -114,7 +114,7 @@ public final class OrderByStreamMergedResultTest { when(queryResults.get(1).getValue(1, Object.class)).thenReturn("2", "2", "3", "3", "4", "4"); when(queryResults.get(2).next()).thenReturn(true, true, false); when(queryResults.get(2).getValue(1, Object.class)).thenReturn("1", "1", "3", "3"); - MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(1, Object.class).toString(), is("1")); assertTrue(actual.next()); @@ -144,7 +144,7 @@ public final class OrderByStreamMergedResultTest { when(queryResults.get(2).next()).thenReturn(true, false); when(queryResults.get(2).getValue(1, Object.class)).thenReturn("A"); ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(1, Object.class).toString(), is("A")); assertTrue(actual.next()); @@ -170,7 +170,7 @@ public final class OrderByStreamMergedResultTest { when(queryResults.get(2).next()).thenReturn(true, false); when(queryResults.get(2).getValue(2, Object.class)).thenReturn("A"); ShardingDQLResultMerger resultMerger = new ShardingDQLResultMerger(DatabaseTypeRegistry.getActualDatabaseType("MySQL")); - MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, createSchemaMetaData()); + MergedResult actual = resultMerger.merge(queryResults, selectStatementContext, buildSchema()); assertTrue(actual.next()); assertThat(actual.getValue(2, Object.class).toString(), is("a")); assertTrue(actual.next()); @@ -182,10 +182,10 @@ public final class OrderByStreamMergedResultTest { assertFalse(actual.next()); } - private PhysicalSchemaMetaData createSchemaMetaData() { + private ShardingSphereSchema buildSchema() { PhysicalColumnMetaData columnMetaData1 = new PhysicalColumnMetaData("col1", 0, "dataType", false, false, true); PhysicalColumnMetaData columnMetaData2 = new PhysicalColumnMetaData("col2", 0, "dataType", false, false, false); PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Arrays.asList(columnMetaData1, columnMetaData2), Collections.emptyList()); - return new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)); + return new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java index 3a47bf09ae..a5b17c278e 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dql.orderby; import com.google.common.collect.Lists; import org.apache.shardingsphere.infra.executor.sql.QueryResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem; @@ -86,19 +86,19 @@ public final class OrderByValueTest { selectStatement.setProjections(projectionsSegment); SelectStatementContext selectStatementContext = new SelectStatementContext( selectStatement, new GroupByContext(Collections.emptyList(), 0), createOrderBy(), createProjectionsContext(), null); - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); QueryResult queryResult1 = createQueryResult("1", "2"); OrderByValue orderByValue1 = new OrderByValue(queryResult1, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.ASC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue1, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue1.next()); QueryResult queryResult2 = createQueryResult("3", "4"); OrderByValue orderByValue2 = new OrderByValue(queryResult2, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.ASC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue2, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue2.next()); assertTrue(orderByValue1.compareTo(orderByValue2) < 0); @@ -136,19 +136,19 @@ public final class OrderByValueTest { selectStatement.setProjections(projectionsSegment); SelectStatementContext selectStatementContext = new SelectStatementContext( selectStatement, new GroupByContext(Collections.emptyList(), 0), createOrderBy(), createProjectionsContext(), null); - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); QueryResult queryResult1 = createQueryResult("1", "2"); OrderByValue orderByValue1 = new OrderByValue(queryResult1, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue1, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue1.next()); QueryResult queryResult2 = createQueryResult("3", "4"); OrderByValue orderByValue2 = new OrderByValue(queryResult2, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.DESC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue2, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue2.next()); assertTrue(orderByValue1.compareTo(orderByValue2) > 0); @@ -186,19 +186,19 @@ public final class OrderByValueTest { selectStatement.setProjections(projectionsSegment); SelectStatementContext selectStatementContext = new SelectStatementContext( selectStatement, new GroupByContext(Collections.emptyList(), 0), createOrderBy(), createProjectionsContext(), null); - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); QueryResult queryResult1 = createQueryResult("1", "2"); OrderByValue orderByValue1 = new OrderByValue(queryResult1, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue1, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue1.next()); QueryResult queryResult2 = createQueryResult("1", "2"); OrderByValue orderByValue2 = new OrderByValue(queryResult2, Arrays.asList( createOrderByItem(new IndexOrderByItemSegment(0, 0, 1, OrderDirection.ASC, OrderDirection.ASC)), createOrderByItem(new IndexOrderByItemSegment(0, 0, 2, OrderDirection.DESC, OrderDirection.ASC))), - selectStatementContext, schemaMetaData); + selectStatementContext, schema); FieldSetter.setField(orderByValue2, OrderByValue.class.getDeclaredField("orderValuesCaseSensitive"), Arrays.asList(false, false)); assertTrue(orderByValue2.next()); assertThat(orderByValue1.compareTo(orderByValue2), is(0)); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java index 372165d921..6b043dc2e0 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java @@ -37,7 +37,7 @@ public final class ShardingSQLRewriteContextDecorator implements SQLRewriteConte @SuppressWarnings("unchecked") @Override public void decorate(final ShardingRule shardingRule, final ConfigurationProperties props, final SQLRewriteContext sqlRewriteContext, final RouteContext routeContext) { - for (ParameterRewriter each : new ShardingParameterRewriterBuilder(shardingRule, routeContext).getParameterRewriters(sqlRewriteContext.getSchemaMetaData())) { + for (ParameterRewriter each : new ShardingParameterRewriterBuilder(shardingRule, routeContext).getParameterRewriters(sqlRewriteContext.getSchema())) { if (!sqlRewriteContext.getParameters().isEmpty() && each.isNeedRewrite(sqlRewriteContext.getSqlStatementContext())) { each.rewrite(sqlRewriteContext.getParameterBuilder(), sqlRewriteContext.getSqlStatementContext(), sqlRewriteContext.getParameters()); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java index 3bf029368b..690b8f04e9 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/parameter/ShardingParameterRewriterBuilder.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.sharding.rule.aware.ShardingRuleAware; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.RouteContextAware; import org.apache.shardingsphere.sharding.rewrite.parameter.impl.ShardingGeneratedKeyInsertValueParameterRewriter; import org.apache.shardingsphere.sharding.rewrite.parameter.impl.ShardingPaginationParameterRewriter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter; import org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriterBuilder; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware; @@ -43,10 +43,10 @@ public final class ShardingParameterRewriterBuilder implements ParameterRewriter private final RouteContext routeContext; @Override - public Collection getParameterRewriters(final PhysicalSchemaMetaData schemaMetaData) { + public Collection getParameterRewriters(final ShardingSphereSchema schema) { Collection result = getParameterRewriters(); for (ParameterRewriter each : result) { - setUpParameterRewriters(each, schemaMetaData); + setUpParameterRewriters(each, schema); } return result; } @@ -58,9 +58,9 @@ public final class ShardingParameterRewriterBuilder implements ParameterRewriter return result; } - private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final PhysicalSchemaMetaData schemaMetaData) { + private void setUpParameterRewriters(final ParameterRewriter parameterRewriter, final ShardingSphereSchema schema) { if (parameterRewriter instanceof SchemaMetaDataAware) { - ((SchemaMetaDataAware) parameterRewriter).setSchemaMetaData(schemaMetaData); + ((SchemaMetaDataAware) parameterRewriter).setSchema(schema); } if (parameterRewriter instanceof ShardingRuleAware) { ((ShardingRuleAware) parameterRewriter).setShardingRule(shardingRule); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java index 522bf6e490..415d6d550c 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine; import org.apache.shardingsphere.infra.rewrite.SQLRewriteEntry; @@ -80,7 +80,7 @@ public final class MixSQLRewriterParameterizedTest extends AbstractSQLRewriterPa Collection rules = ShardingSphereRulesBuilder.build( new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(ruleConfigurations.getRules()), ruleConfigurations.getDataSources().keySet()); SQLStatementParserEngine sqlStatementParserEngine = new SQLStatementParserEngine(null == getTestParameters().getDatabaseType() ? "SQL92" : getTestParameters().getDatabaseType()); - PhysicalSchemaMetaData schema = mockSchema(); + ShardingSphereSchema schema = mockSchema(); ConfigurationProperties props = new ConfigurationProperties(ruleConfigurations.getProps()); SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance( schema, getTestParameters().getInputParameters(), sqlStatementParserEngine.parse(getTestParameters().getInputSQL(), false)); @@ -99,8 +99,8 @@ public final class MixSQLRewriterParameterizedTest extends AbstractSQLRewriterPa return YamlEngine.unmarshal(new File(url.getFile()), YamlRootRuleConfigurations.class); } - private PhysicalSchemaMetaData mockSchema() { - PhysicalSchemaMetaData result = mock(PhysicalSchemaMetaData.class); + private ShardingSphereSchema mockSchema() { + ShardingSphereSchema result = mock(ShardingSphereSchema.class); when(result.getAllTableNames()).thenReturn(Arrays.asList("t_account", "t_account_bak", "t_account_detail")); PhysicalTableMetaData accountTableMetaData = mock(PhysicalTableMetaData.class); when(accountTableMetaData.getColumns()).thenReturn(createColumnMetaDataMap()); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java index d4efd62b88..a65099ba8e 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine; import org.apache.shardingsphere.infra.rewrite.SQLRewriteEntry; @@ -80,7 +80,7 @@ public final class ShardingSQLRewriterParameterizedTest extends AbstractSQLRewri Collection rules = ShardingSphereRulesBuilder.build( new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(yamlRootRuleConfigs.getRules()), yamlRootRuleConfigs.getDataSources().keySet()); SQLStatementParserEngine sqlStatementParserEngine = new SQLStatementParserEngine(null == getTestParameters().getDatabaseType() ? "SQL92" : getTestParameters().getDatabaseType()); - PhysicalSchemaMetaData schema = mockSchema(); + ShardingSphereSchema schema = mockSchema(); ConfigurationProperties props = new ConfigurationProperties(yamlRootRuleConfigs.getProps()); SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance( schema, getTestParameters().getInputParameters(), sqlStatementParserEngine.parse(getTestParameters().getInputSQL(), false)); @@ -99,8 +99,8 @@ public final class ShardingSQLRewriterParameterizedTest extends AbstractSQLRewri return YamlEngine.unmarshal(new File(url.getFile()), YamlRootRuleConfigurations.class); } - private PhysicalSchemaMetaData mockSchema() { - PhysicalSchemaMetaData result = mock(PhysicalSchemaMetaData.class); + private ShardingSphereSchema mockSchema() { + ShardingSphereSchema result = mock(ShardingSphereSchema.class); when(result.getAllTableNames()).thenReturn(Arrays.asList("t_account", "t_account_detail")); PhysicalTableMetaData accountTableMetaData = mock(PhysicalTableMetaData.class); when(accountTableMetaData.getColumns()).thenReturn(createColumnMetaDataMap()); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/InsertClauseShardingConditionEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/InsertClauseShardingConditionEngine.java index 71bc9180d8..4af96d24ad 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/InsertClauseShardingConditionEngine.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/InsertClauseShardingConditionEngine.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditi import org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine; import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; import org.apache.shardingsphere.sharding.rule.ShardingRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.insert.keygen.GeneratedKeyContext; import org.apache.shardingsphere.infra.binder.segment.insert.values.InsertValueContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; @@ -54,7 +54,7 @@ public final class InsertClauseShardingConditionEngine implements ShardingCondit private final ShardingRule shardingRule; - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; @Override public List createShardingConditions(final InsertStatementContext sqlStatementContext, final List parameters) { @@ -115,7 +115,7 @@ public final class InsertClauseShardingConditionEngine implements ShardingCondit private List createShardingConditionsWithInsertSelect(final InsertStatementContext sqlStatementContext, final List parameters) { SelectStatementContext selectStatementContext = sqlStatementContext.getInsertSelectContext().getSelectStatementContext(); - return new LinkedList<>(new WhereClauseShardingConditionEngine(shardingRule, schemaMetaData).createShardingConditions(selectStatementContext, parameters)); + return new LinkedList<>(new WhereClauseShardingConditionEngine(shardingRule, schema).createShardingConditions(selectStatementContext, parameters)); } private void appendGeneratedKeyConditions(final InsertStatementContext sqlStatementContext, final List shardingConditions) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java index d3a24891b0..e172067ced 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/impl/WhereClauseShardingConditionEngine.java @@ -30,7 +30,7 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sharding.route.engine.condition.value.ListShardingConditionValue; import org.apache.shardingsphere.sharding.route.engine.condition.value.RangeShardingConditionValue; import org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.type.WhereAvailable; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -61,7 +61,7 @@ public final class WhereClauseShardingConditionEngine implements ShardingConditi private final ShardingRule shardingRule; - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; @Override public List createShardingConditions(final SQLStatementContext sqlStatementContext, final List parameters) { @@ -101,7 +101,7 @@ public final class WhereClauseShardingConditionEngine implements ShardingConditi if (!columnSegment.isPresent()) { continue; } - Optional tableName = sqlStatementContext.getTablesContext().findTableName(columnSegment.get(), schemaMetaData); + Optional tableName = sqlStatementContext.getTablesContext().findTableName(columnSegment.get(), schema); if (!(tableName.isPresent() && shardingRule.isShardingColumn(columnSegment.get().getIdentifier().getValue(), tableName.get()))) { continue; } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngine.java index 6f6aa65146..53829bd74f 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngine.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngine.java @@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.route.context.RouteUnit; import org.apache.shardingsphere.sharding.route.engine.type.ShardingRouteEngine; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sharding.rule.TableRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropIndexStatement; @@ -42,7 +42,7 @@ import java.util.Optional; @RequiredArgsConstructor public final class ShardingTableBroadcastRoutingEngine implements ShardingRouteEngine { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final SQLStatementContext sqlStatementContext; @@ -69,8 +69,8 @@ public final class ShardingTableBroadcastRoutingEngine implements ShardingRouteE } private Optional findLogicTableNameFromMetaData(final String logicIndexName) { - for (String each : schemaMetaData.getAllTableNames()) { - if (schemaMetaData.get(each).getIndexes().containsKey(logicIndexName)) { + for (String each : schema.getAllTableNames()) { + if (schema.get(each).getIndexes().containsKey(logicIndexName)) { return Optional.of(each); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java index 8d6aabd875..aeb7a421c4 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.type.single; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; import org.apache.shardingsphere.infra.route.context.RouteUnit; @@ -43,7 +43,7 @@ public final class SingleTableRoutingEngine implements ShardingRouteEngine { private final Collection logicTables; - private final PhysicalSchemaMetaData schema; + private final ShardingSphereSchema schema; private final SQLStatement sqlStatement; diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ShardingStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ShardingStatementValidator.java index 30d0efb0f4..64307aea77 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ShardingStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ShardingStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; @@ -40,7 +40,7 @@ public interface ShardingStatementValidator { * @param parameters SQL parameters * @param schema ShardingSphere schema */ - void preValidate(ShardingRule shardingRule, SQLStatementContext sqlStatementContext, List parameters, PhysicalSchemaMetaData schema); + void preValidate(ShardingRule shardingRule, SQLStatementContext sqlStatementContext, List parameters, ShardingSphereSchema schema); /** * Validate whether sharding operation is supported after route. diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java index 9c28dd1e92..86fcdec4a9 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException; import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException; import org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidator; @@ -38,7 +38,7 @@ public abstract class ShardingDDLStatementValidator impl * @param schema ShardingSphere schema * @param tables tables */ - protected void validateShardingTable(final PhysicalSchemaMetaData schema, final Collection tables) { + protected void validateShardingTable(final ShardingSphereSchema schema, final Collection tables) { for (SimpleTableSegment each : tables) { String tableName = each.getTableName().getIdentifier().getValue(); if (schema.getAllTableNames().contains(tableName)) { @@ -53,7 +53,7 @@ public abstract class ShardingDDLStatementValidator impl * @param schema ShardingSphere schema * @param tables tables */ - protected void validateTableExist(final PhysicalSchemaMetaData schema, final Collection tables) { + protected void validateTableExist(final ShardingSphereSchema schema, final Collection tables) { for (SimpleTableSegment each : tables) { String tableName = each.getTableName().getIdentifier().getValue(); if (!schema.containsTable(tableName)) { @@ -69,7 +69,7 @@ public abstract class ShardingDDLStatementValidator impl * @param schema ShardingSphere schema * @param tables tables */ - protected void validateTableNotExist(final PhysicalSchemaMetaData schema, final Collection tables) { + protected void validateTableNotExist(final ShardingSphereSchema schema, final Collection tables) { for (SimpleTableSegment each : tables) { String tableName = each.getTableName().getIdentifier().getValue(); if (schema.containsTable(tableName)) { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterViewStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterViewStatementValidator.java index 0c6a3ba3e4..e9c7d5f424 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterViewStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingAlterViewStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -37,7 +37,7 @@ public final class ShardingAlterViewStatementValidator extends ShardingDDLStatem @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { Optional selectStatement = AlterViewStatementHandler.getSelectStatement(sqlStatementContext.getSqlStatement()); selectStatement.ifPresent(select -> { TableExtractor extractor = new TableExtractor(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java index e9a20660c5..466173cb1f 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateFunctionStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -39,7 +39,7 @@ public final class ShardingCreateFunctionStatementValidator extends ShardingDDLS @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { Optional routineBodySegment = CreateFunctionStatementHandler.getRoutineBodySegment(sqlStatementContext.getSqlStatement()); routineBodySegment.ifPresent(routineBody -> { TableExtractor extractor = new TableExtractor(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java index 0f1abe4479..f9121b636a 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateProcedureStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -39,7 +39,7 @@ public final class ShardingCreateProcedureStatementValidator extends ShardingDDL @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { Optional routineBodySegment = CreateProcedureStatementHandler.getRoutineBodySegment(sqlStatementContext.getSqlStatement()); routineBodySegment.ifPresent(routineBody -> { TableExtractor extractor = new TableExtractor(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java index 6bd28d6f50..e3029d1d44 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateTableStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -35,7 +35,7 @@ public final class ShardingCreateTableStatementValidator extends ShardingDDLStat @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { if (!CreateTableStatementHandler.containsIfNotExistClause(sqlStatementContext.getSqlStatement())) { validateTableNotExist(schema, Collections.singletonList(sqlStatementContext.getSqlStatement().getTable())); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateViewStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateViewStatementValidator.java index 1f74ccdd33..c924b8f3b1 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateViewStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingCreateViewStatementValidator.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.ShardingDDLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -37,7 +37,7 @@ public final class ShardingCreateViewStatementValidator extends ShardingDDLState @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { Optional selectStatement = CreateViewStatementHandler.getSelectStatement(sqlStatementContext.getSqlStatement()); selectStatement.ifPresent(select -> { TableExtractor extractor = new TableExtractor(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingDeleteStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingDeleteStatementValidator.java index 4153375c49..48e5ce752a 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingDeleteStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingDeleteStatementValidator.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.dml.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.dml.ShardingDMLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -35,7 +35,7 @@ public final class ShardingDeleteStatementValidator extends ShardingDMLStatement @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { validateShardingMultipleTable(shardingRule, sqlStatementContext); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java index 84a5e0a843..37306559df 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.binder.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.dml.ShardingDMLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -43,7 +43,7 @@ public final class ShardingInsertStatementValidator extends ShardingDMLStatement @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { if (null == ((InsertStatementContext) sqlStatementContext).getInsertSelectContext()) { validateShardingMultipleTable(shardingRule, sqlStatementContext); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingUpdateStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingUpdateStatementValidator.java index 6018211f6e..16bff8e1b6 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingUpdateStatementValidator.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingUpdateStatementValidator.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.dml.impl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.sharding.route.engine.validator.dml.ShardingDMLStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -45,7 +45,7 @@ public final class ShardingUpdateStatementValidator extends ShardingDMLStatement @Override public void preValidate(final ShardingRule shardingRule, final SQLStatementContext sqlStatementContext, - final List parameters, final PhysicalSchemaMetaData schema) { + final List parameters, final ShardingSphereSchema schema) { validateShardingMultipleTable(shardingRule, sqlStatementContext); UpdateStatement sqlStatement = sqlStatementContext.getSqlStatement(); String tableName = sqlStatementContext.getTablesContext().getTables().iterator().next().getTableName().getIdentifier().getValue(); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java index e0f1bd5c76..3b372e13bd 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngineFactoryTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.condition.engine; import org.apache.shardingsphere.infra.binder.LogicSQL; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.InsertClauseShardingConditionEngine; import org.apache.shardingsphere.sharding.route.engine.condition.engine.impl.WhereClauseShardingConditionEngine; @@ -50,7 +50,7 @@ public final class ShardingConditionEngineFactoryTest { @Before public void setUp() { - when(metaData.getSchema()).thenReturn(mock(PhysicalSchemaMetaData.class)); + when(metaData.getSchema()).thenReturn(mock(ShardingSphereSchema.class)); } @Test diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java index 20d1e14cd9..750958a982 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dcl.GrantStatementContext; import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions; import org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDataSourceGroupBroadcastRoutingEngine; import org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDatabaseBroadcastRoutingEngine; @@ -95,7 +95,7 @@ public final class ShardingRouteEngineFactoryTest { @Before public void setUp() { when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext); - when(metaData.getSchema()).thenReturn(mock(PhysicalSchemaMetaData.class)); + when(metaData.getSchema()).thenReturn(mock(ShardingSphereSchema.class)); tableNames = new ArrayList<>(); when(tablesContext.getTableNames()).thenReturn(tableNames); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java index c968404ba5..f3d7da2a98 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration; import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.binder.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; @@ -63,7 +63,7 @@ public final class ShardingTableBroadcastRoutingEngineTest { private TablesContext tablesContext; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private PhysicalTableMetaData tableMetaData; @@ -79,12 +79,12 @@ public final class ShardingTableBroadcastRoutingEngineTest { shardingRuleConfig.getTables().add(tableRuleConfig); when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext); when(tablesContext.getTableNames()).thenReturn(Lists.newArrayList("t_order")); - when(schemaMetaData.getAllTableNames()).thenReturn(Lists.newArrayList("t_order")); - when(schemaMetaData.get("t_order")).thenReturn(tableMetaData); + when(schema.getAllTableNames()).thenReturn(Lists.newArrayList("t_order")); + when(schema.get("t_order")).thenReturn(tableMetaData); Map indexMetaDataMap = new HashMap<>(1, 1); indexMetaDataMap.put("index_name", new PhysicalIndexMetaData("index_name")); when(tableMetaData.getIndexes()).thenReturn(indexMetaDataMap); - tableBroadcastRoutingEngine = new ShardingTableBroadcastRoutingEngine(schemaMetaData, sqlStatementContext); + tableBroadcastRoutingEngine = new ShardingTableBroadcastRoutingEngine(schema, sqlStatementContext); shardingRule = new ShardingRule(shardingRuleConfig, Arrays.asList("ds0", "ds1")); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java index a4f3ef3346..d6f304e020 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.sharding.route.engine.type.single; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; @@ -41,7 +41,7 @@ public final class SingleTableRoutingEngineTest { @Test public void assertRoute() { - SingleTableRoutingEngine singleTableRoutingEngine = new SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), createShardingSphereSchema(), null); + SingleTableRoutingEngine singleTableRoutingEngine = new SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), buildSchema(), null); ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, Arrays.asList("ds_0", "ds_1")); RouteContext routeContext = new RouteContext(); @@ -61,7 +61,7 @@ public final class SingleTableRoutingEngineTest { @Test public void assertRouteWithoutShardingRule() { - SingleTableRoutingEngine singleTableRoutingEngine = new SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), createShardingSphereSchema(), new MySQLCreateTableStatement()); + SingleTableRoutingEngine singleTableRoutingEngine = new SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), buildSchema(), new MySQLCreateTableStatement()); ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, Arrays.asList("ds_0", "ds_1")); RouteContext routeContext = new RouteContext(); @@ -78,14 +78,14 @@ public final class SingleTableRoutingEngineTest { assertThat(tableMapper1.getLogicName(), is("t_order_item")); } - private PhysicalSchemaMetaData createShardingSphereSchema() { + private ShardingSphereSchema buildSchema() { Map tables = new HashMap<>(2, 1); - tables.put("t_order", createTableMetaData()); - tables.put("t_order_item", createTableMetaData()); - return new PhysicalSchemaMetaData(tables); + tables.put("t_order", buildTableMetaData()); + tables.put("t_order_item", buildTableMetaData()); + return new ShardingSphereSchema(tables); } - private PhysicalTableMetaData createTableMetaData() { + private PhysicalTableMetaData buildTableMetaData() { PhysicalTableMetaData result = new PhysicalTableMetaData(); result.getAddressingDataSources().add("ds_0"); return result; diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java index 1509f17cf3..448eed375c 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java @@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine; import org.apache.shardingsphere.infra.route.context.RouteContext; @@ -50,7 +50,7 @@ public abstract class AbstractSQLRouteTest extends AbstractRoutingEngineTest { protected final RouteContext assertRoute(final String sql, final List parameters) { ShardingRule shardingRule = createAllShardingRule(); - PhysicalSchemaMetaData schema = buildPhysicalSchemaMetaData(); + ShardingSphereSchema schema = buildSchema(); ConfigurationProperties props = new ConfigurationProperties(new Properties()); SQLStatementParserEngine sqlStatementParserEngine = new SQLStatementParserEngine("MySQL"); SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schema, parameters, sqlStatementParserEngine.parse(sql, false)); @@ -62,7 +62,7 @@ public abstract class AbstractSQLRouteTest extends AbstractRoutingEngineTest { return result; } - private PhysicalSchemaMetaData buildPhysicalSchemaMetaData() { + private ShardingSphereSchema buildSchema() { Map tableMetaDataMap = new HashMap<>(3, 1); tableMetaDataMap.put("t_order", new PhysicalTableMetaData(Arrays.asList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false), new PhysicalColumnMetaData("user_id", Types.INTEGER, "int", false, false, false), @@ -75,6 +75,6 @@ public abstract class AbstractSQLRouteTest extends AbstractRoutingEngineTest { tableMetaDataMap.put("t_other", new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false)), Collections.emptySet())); tableMetaDataMap.put("t_category", new PhysicalTableMetaData()); tableMetaDataMap.get("t_category").getAddressingDataSources().add("single_db"); - return new PhysicalSchemaMetaData(tableMetaDataMap); + return new ShardingSphereSchema(tableMetaDataMap); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java index e07a6dc8c0..39c1018d01 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingAlterViewStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; @@ -48,7 +48,7 @@ public final class ShardingAlterViewStatementValidatorTest { MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement(); sqlStatement.setSelect(selectStatement); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.getAllTableNames()).thenReturn(Collections.singletonList("t_order")); new ShardingAlterViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } @@ -59,7 +59,7 @@ public final class ShardingAlterViewStatementValidatorTest { selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order"))); MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement(); sqlStatement.setSelect(selectStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.getAllTableNames()).thenReturn(Collections.singleton("t_order")); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); new ShardingAlterViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java index 3ffd6aa0bf..6392ecc0a9 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException; import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateFunctionStatementValidator; @@ -63,7 +63,7 @@ public final class ShardingCreateFunctionStatementValidatorTest { MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order_item")).thenReturn(true); new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } @@ -79,7 +79,7 @@ public final class ShardingCreateFunctionStatementValidatorTest { MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class, RETURNS_DEEP_STUBS)); + new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class, RETURNS_DEEP_STUBS)); } @Test(expected = NoSuchTableException.class) @@ -93,7 +93,7 @@ public final class ShardingCreateFunctionStatementValidatorTest { MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class, RETURNS_DEEP_STUBS)); + new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class, RETURNS_DEEP_STUBS)); } @Test(expected = TableExistsException.class) @@ -107,7 +107,7 @@ public final class ShardingCreateFunctionStatementValidatorTest { MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order")).thenReturn(true); new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java index 40faec0563..3342375029 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException; import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateProcedureStatementValidator; @@ -63,7 +63,7 @@ public final class ShardingCreateProcedureStatementValidatorTest { MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order_item")).thenReturn(true); new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } @@ -79,7 +79,7 @@ public final class ShardingCreateProcedureStatementValidatorTest { MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class, RETURNS_DEEP_STUBS)); + new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class, RETURNS_DEEP_STUBS)); } @Test(expected = NoSuchTableException.class) @@ -93,7 +93,7 @@ public final class ShardingCreateProcedureStatementValidatorTest { MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class, RETURNS_DEEP_STUBS)); + new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class, RETURNS_DEEP_STUBS)); } @Test(expected = TableExistsException.class) @@ -107,7 +107,7 @@ public final class ShardingCreateProcedureStatementValidatorTest { MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement(); sqlStatement.setRoutineBody(routineBody); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order")).thenReturn(true); new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java index a501246621..5acd2f35c9 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.ddl.CreateTableStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateTableStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; @@ -83,7 +83,7 @@ public final class ShardingCreateTableStatementValidatorTest { private void assertValidateCreateTable(final CreateTableStatement sqlStatement) { SQLStatementContext sqlStatementContext = new CreateTableStatementContext(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order")).thenReturn(true); new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } @@ -106,7 +106,7 @@ public final class ShardingCreateTableStatementValidatorTest { private void assertValidateCreateTableIfNotExists(final CreateTableStatement sqlStatement) { SQLStatementContext sqlStatementContext = new CreateTableStatementContext(sqlStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.containsTable("t_order")).thenReturn(true); new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java index 47da265366..89a91a80fe 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl; import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateViewStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; @@ -48,7 +48,7 @@ public final class ShardingCreateViewStatementValidatorTest { MySQLCreateViewStatement sqlStatement = new MySQLCreateViewStatement(); sqlStatement.setSelect(selectStatement); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); - new ShardingCreateViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingCreateViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) @@ -57,7 +57,7 @@ public final class ShardingCreateViewStatementValidatorTest { selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order"))); MySQLCreateViewStatement sqlStatement = new MySQLCreateViewStatement(); sqlStatement.setSelect(selectStatement); - PhysicalSchemaMetaData schema = mock(PhysicalSchemaMetaData.class); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); when(schema.getAllTableNames()).thenReturn(Collections.singleton("t_order")); SQLStatementContext sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement); new ShardingCreateViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), schema); diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDeleteStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDeleteStatementValidatorTest.java index 5c6e1f7954..4144bbb1f0 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDeleteStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDeleteStatementValidatorTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.sharding.route.engine.validator.dml; import com.google.common.collect.Lists; import org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingDeleteStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.DeleteMultiTableSegment; @@ -84,6 +84,6 @@ public final class ShardingDeleteStatementValidatorTest { Collection shardingTableNames = Lists.newArrayList("order", "order_item"); when(shardingRule.getShardingLogicTableNames(sqlStatementContext.getTablesContext().getTableNames())).thenReturn(shardingTableNames); when(shardingRule.isAllBindingTables(shardingTableNames)).thenReturn(true); - new ShardingDeleteStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingDeleteStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } } diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java index aeadd88137..2dfa071418 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.binder.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingInsertStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment; @@ -61,27 +61,27 @@ public final class ShardingInsertStatementValidatorTest { @Test(expected = ShardingSphereException.class) public void assertValidateInsertModifyMultiTables() { SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); Collection shardingTableNames = Lists.newArrayList("order", "order_item"); when(shardingRule.getShardingLogicTableNames(sqlStatementContext.getTablesContext().getTableNames())).thenReturn(shardingTableNames); when(shardingRule.isAllBindingTables(shardingTableNames)).thenReturn(true); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test public void assertValidateOnDuplicateKeyWithoutShardingKey() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(false); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) public void assertValidateOnDuplicateKeyWithShardingKey() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(true); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertStatement()); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) @@ -89,9 +89,9 @@ public final class ShardingInsertStatementValidatorTest { when(shardingRule.findGenerateKeyColumnName("user")).thenReturn(Optional.of("id")); when(shardingRule.isGenerateKeyColumn("id", "user")).thenReturn(false); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTables().addAll(createSingleTablesContext().getTables()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test @@ -99,9 +99,9 @@ public final class ShardingInsertStatementValidatorTest { when(shardingRule.findGenerateKeyColumnName("user")).thenReturn(Optional.of("id")); when(shardingRule.isGenerateKeyColumn("id", "user")).thenReturn(true); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTables().addAll(createSingleTablesContext().getTables()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) @@ -111,9 +111,9 @@ public final class ShardingInsertStatementValidatorTest { TablesContext multiTablesContext = createMultiTablesContext(); when(shardingRule.isAllBindingTables(multiTablesContext.getTableNames())).thenReturn(false); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTables().addAll(multiTablesContext.getTables()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test @@ -123,9 +123,9 @@ public final class ShardingInsertStatementValidatorTest { TablesContext multiTablesContext = createMultiTablesContext(); when(shardingRule.isAllBindingTables(multiTablesContext.getTableNames())).thenReturn(true); SQLStatementContext sqlStatementContext = new InsertStatementContext( - new PhysicalSchemaMetaData(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); + new ShardingSphereSchema(Collections.emptyMap()), Collections.singletonList(1), createInsertSelectStatement()); sqlStatementContext.getTablesContext().getTables().addAll(multiTablesContext.getTables()); - new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingInsertStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } private InsertStatement createInsertStatement() { diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java index b0ec841b5f..f79b6c8d03 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java @@ -21,7 +21,7 @@ import com.google.common.collect.Lists; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.UpdateStatementContext; import org.apache.shardingsphere.infra.exception.ShardingSphereException; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingUpdateStatementValidator; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment; @@ -66,40 +66,40 @@ public final class ShardingUpdateStatementValidatorTest { Collection tableNames = Lists.newArrayList("order", "order_item"); when(shardingRule.getShardingLogicTableNames(sqlStatementContext.getTablesContext().getTableNames())).thenReturn(tableNames); when(shardingRule.isAllBindingTables(tableNames)).thenReturn(true); - new ShardingUpdateStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test public void assertValidateUpdateWithoutShardingKey() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(false); - new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) public void assertValidateUpdateWithShardingKey() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(true); - new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), Collections.emptyList(), mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), Collections.emptyList(), mock(ShardingSphereSchema.class)); } @Test public void assertValidateUpdateWithoutShardingKeyAndParameters() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(false); List parameters = Arrays.asList(1, 1); - new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), parameters, mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatement()), parameters, mock(ShardingSphereSchema.class)); } @Test public void assertValidateUpdateWithShardingKeyAndShardingParameterEquals() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(true); List parameters = Arrays.asList(1, 1); - new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatementAndParameters(1)), parameters, mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatementAndParameters(1)), parameters, mock(ShardingSphereSchema.class)); } @Test(expected = ShardingSphereException.class) public void assertValidateUpdateWithShardingKeyAndShardingParameterNotEquals() { when(shardingRule.isShardingColumn("id", "user")).thenReturn(true); List parameters = Arrays.asList(1, 1); - new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatementAndParameters(2)), parameters, mock(PhysicalSchemaMetaData.class)); + new ShardingUpdateStatementValidator().preValidate(shardingRule, new UpdateStatementContext(createUpdateStatementAndParameters(2)), parameters, mock(ShardingSphereSchema.class)); } private UpdateStatement createUpdateStatement() { diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/metadata/MetaDataChangedEvent.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/metadata/MetaDataChangedEvent.java index c717435dd5..d352ae7f68 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/metadata/MetaDataChangedEvent.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/metadata/MetaDataChangedEvent.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.governance.core.event.model.metadata; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.governance.core.event.model.GovernanceEvent; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * Meta data changed event. @@ -31,5 +31,5 @@ public final class MetaDataChangedEvent implements GovernanceEvent { private final String schemaName; - private final PhysicalSchemaMetaData metaData; + private final ShardingSphereSchema schema; } diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/persist/MetaDataPersistEvent.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/persist/MetaDataPersistEvent.java index 54e17f465e..192ba48a17 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/persist/MetaDataPersistEvent.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/event/model/persist/MetaDataPersistEvent.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.governance.core.event.model.persist; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.governance.core.event.model.GovernanceEvent; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * Meta data event. @@ -31,5 +31,5 @@ public final class MetaDataPersistEvent implements GovernanceEvent { private final String schemaName; - private final PhysicalSchemaMetaData metaData; + private final ShardingSphereSchema schema; } diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapper.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapper.java index 00a502089a..e2fe76b6ca 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapper.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/main/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapper.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.governance.core.yaml.config.metadata.YamlSchema import org.apache.shardingsphere.governance.core.yaml.config.metadata.YamlTableMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.yaml.swapper.YamlSwapper; @@ -39,22 +39,22 @@ import java.util.stream.Collectors; /** * Logic schema meta data configuration YAML swapper. */ -public final class LogicSchemaMetaDataYamlSwapper implements YamlSwapper { +public final class LogicSchemaMetaDataYamlSwapper implements YamlSwapper { @Override - public YamlLogicSchemaMetaData swapToYamlConfiguration(final PhysicalSchemaMetaData metaData) { + public YamlLogicSchemaMetaData swapToYamlConfiguration(final ShardingSphereSchema schema) { YamlLogicSchemaMetaData result = new YamlLogicSchemaMetaData(); - result.setConfiguredSchemaMetaData(convertYamlSchema(metaData)); + result.setConfiguredSchemaMetaData(convertYamlSchema(schema)); return result; } @Override - public PhysicalSchemaMetaData swapToObject(final YamlLogicSchemaMetaData yamlConfig) { - return Optional.ofNullable(yamlConfig.getConfiguredSchemaMetaData()).map(this::convertSchema).orElse(new PhysicalSchemaMetaData()); + public ShardingSphereSchema swapToObject(final YamlLogicSchemaMetaData yamlConfig) { + return Optional.ofNullable(yamlConfig.getConfiguredSchemaMetaData()).map(this::convertSchema).orElse(new ShardingSphereSchema()); } - private PhysicalSchemaMetaData convertSchema(final YamlSchemaMetaData schema) { - return new PhysicalSchemaMetaData(schema.getTables().entrySet().stream() + private ShardingSphereSchema convertSchema(final YamlSchemaMetaData schema) { + return new ShardingSphereSchema(schema.getTables().entrySet().stream() .collect(Collectors.toMap(Entry::getKey, entry -> convertTable(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new))); } @@ -78,7 +78,7 @@ public final class LogicSchemaMetaDataYamlSwapper implements YamlSwapper tables = schema.getAllTableNames().stream() .collect(Collectors.toMap(each -> each, each -> convertYamlTable(schema.get(each)), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)); YamlSchemaMetaData result = new YamlSchemaMetaData(); diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/test/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapperTest.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/test/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapperTest.java index 8329f4b327..8739b7739c 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/test/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapperTest.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-common/src/test/java/org/apache/shardingsphere/governance/core/yaml/swapper/LogicSchemaMetaDataYamlSwapperTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.governance.core.yaml.swapper; import lombok.SneakyThrows; import org.apache.shardingsphere.governance.core.yaml.config.metadata.YamlLogicSchemaMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.yaml.engine.YamlEngine; import org.junit.Test; @@ -40,8 +40,8 @@ public final class LogicSchemaMetaDataYamlSwapperTest { @Test public void assertSwapToYamlLogicSchemaMetaData() { - PhysicalSchemaMetaData physicalSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(readYAML(META_DATA_YAM), YamlLogicSchemaMetaData.class)); - YamlLogicSchemaMetaData yamlLogicSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToYamlConfiguration(physicalSchemaMetaData); + ShardingSphereSchema schema = new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(readYAML(META_DATA_YAM), YamlLogicSchemaMetaData.class)); + YamlLogicSchemaMetaData yamlLogicSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToYamlConfiguration(schema); assertNotNull(yamlLogicSchemaMetaData); assertNotNull(yamlLogicSchemaMetaData.getConfiguredSchemaMetaData()); assertThat(yamlLogicSchemaMetaData.getConfiguredSchemaMetaData().getTables().keySet(), is(Collections.singleton("t_order"))); @@ -52,11 +52,11 @@ public final class LogicSchemaMetaDataYamlSwapperTest { @Test public void assertSwapToLogicSchemaMetaData() { YamlLogicSchemaMetaData yamlLogicSchemaMetaData = YamlEngine.unmarshal(readYAML(META_DATA_YAM), YamlLogicSchemaMetaData.class); - PhysicalSchemaMetaData physicalSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToObject(yamlLogicSchemaMetaData); - assertThat(physicalSchemaMetaData.getAllTableNames(), is(Collections.singleton("t_order"))); - assertThat(physicalSchemaMetaData.get("t_order").getIndexes().keySet(), is(Collections.singleton("primary"))); - assertThat(physicalSchemaMetaData.getAllColumnNames("t_order").size(), is(1)); - assertThat(physicalSchemaMetaData.get("t_order").getColumns().keySet(), is(Collections.singleton("id"))); + ShardingSphereSchema schema = new LogicSchemaMetaDataYamlSwapper().swapToObject(yamlLogicSchemaMetaData); + assertThat(schema.getAllTableNames(), is(Collections.singleton("t_order"))); + assertThat(schema.get("t_order").getIndexes().keySet(), is(Collections.singleton("primary"))); + assertThat(schema.getAllColumnNames("t_order").size(), is(1)); + assertThat(schema.get("t_order").getColumns().keySet(), is(Collections.singleton("id"))); } @SneakyThrows({URISyntaxException.class, IOException.class}) diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java index 099a48655a..b659d972c5 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java @@ -40,7 +40,7 @@ import org.apache.shardingsphere.infra.auth.yaml.config.YamlAuthenticationConfig import org.apache.shardingsphere.infra.auth.yaml.swapper.AuthenticationYamlSwapper; import org.apache.shardingsphere.infra.config.RuleConfiguration; import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations; import org.apache.shardingsphere.infra.yaml.engine.YamlEngine; import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine; @@ -132,7 +132,14 @@ public final class ConfigCenter { */ @Subscribe public synchronized void renew(final SchemaNamePersistEvent event) { - persistSchema(event.getSchemaName(), event.isDrop()); + String schemaNames = repository.get(node.getSchemasPath()); + Collection schemas = Strings.isNullOrEmpty(schemaNames) ? new LinkedHashSet<>() : new LinkedHashSet<>(Splitter.on(",").splitToList(schemaNames)); + if (event.isDrop()) { + schemas.remove(event.getSchemaName()); + } else if (!schemas.contains(event.getSchemaName())) { + schemas.add(event.getSchemaName()); + } + repository.persist(node.getSchemasPath(), Joiner.on(",").join(schemas)); } /** @@ -142,7 +149,7 @@ public final class ConfigCenter { */ @Subscribe public synchronized void renew(final MetaDataPersistEvent event) { - persistMetaData(event.getSchemaName(), event.getMetaData()); + persistSchema(event.getSchemaName(), event.getSchema()); } private void persistDataSourceConfigurations(final String schemaName, final Map dataSourceConfigurations, final boolean isOverwrite) { @@ -251,17 +258,6 @@ public final class ConfigCenter { repository.persist(node.getSchemasPath(), Joiner.on(",").join(newArrayList)); } - private void persistSchema(final String schemaName, final boolean isDrop) { - String schemaNames = repository.get(node.getSchemasPath()); - Collection schemas = Strings.isNullOrEmpty(schemaNames) ? new LinkedHashSet<>() : new LinkedHashSet<>(Splitter.on(",").splitToList(schemaNames)); - if (isDrop) { - schemas.remove(schemaName); - } else if (!schemas.contains(schemaName)) { - schemas.add(schemaName); - } - repository.persist(node.getSchemasPath(), Joiner.on(",").join(schemas)); - } - /** * Load data source configurations. * @@ -339,22 +335,22 @@ public final class ConfigCenter { } /** - * Persist rule schema meta data. + * Persist ShardingSphere schema. * * @param schemaName schema name - * @param physicalSchemaMetaData physical schema meta data + * @param schema ShardingSphere schema */ - public void persistMetaData(final String schemaName, final PhysicalSchemaMetaData physicalSchemaMetaData) { - repository.persist(node.getTablePath(schemaName), YamlEngine.marshal(new LogicSchemaMetaDataYamlSwapper().swapToYamlConfiguration(physicalSchemaMetaData))); + public void persistSchema(final String schemaName, final ShardingSphereSchema schema) { + repository.persist(node.getTablePath(schemaName), YamlEngine.marshal(new LogicSchemaMetaDataYamlSwapper().swapToYamlConfiguration(schema))); } /** - * Load rule schema meta data. + * Load ShardingSphere schema. * * @param schemaName schema name - * @return rule schema meta data of the schema + * @return ShardingSphere schema */ - public Optional loadMetaData(final String schemaName) { + public Optional loadSchema(final String schemaName) { String path = repository.get(node.getTablePath(schemaName)); if (Strings.isNullOrEmpty(path)) { return Optional.empty(); diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListener.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListener.java index 7ea724ae00..bb0ebf7085 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListener.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/main/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListener.java @@ -35,7 +35,6 @@ import org.apache.shardingsphere.governance.core.yaml.swapper.LogicSchemaMetaDat import org.apache.shardingsphere.governance.repository.api.ConfigurationRepository; import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent; import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations; import org.apache.shardingsphere.infra.yaml.engine.YamlEngine; import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine; @@ -142,7 +141,6 @@ public final class SchemaChangedListener extends PostGovernanceRepositoryEventLi } private GovernanceEvent createMetaDataChangedEvent(final String schemaName, final DataChangedEvent event) { - PhysicalSchemaMetaData physicalSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(), YamlLogicSchemaMetaData.class)); - return new MetaDataChangedEvent(schemaName, physicalSchemaMetaData); + return new MetaDataChangedEvent(schemaName, new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(), YamlLogicSchemaMetaData.class))); } } diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java index a9c0bacbbf..d3cf817ab6 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java @@ -33,7 +33,7 @@ import org.apache.shardingsphere.infra.config.RuleConfiguration; import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration; import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration; import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations; import org.apache.shardingsphere.infra.yaml.engine.YamlEngine; import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine; @@ -498,27 +498,27 @@ public final class ConfigCenterTest { } @Test - public void assertPersistMetaData() { - PhysicalSchemaMetaData physicalSchemaMetaData = new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(readYAML(META_DATA_YAML), YamlLogicSchemaMetaData.class)); + public void assertPersistSchema() { + ShardingSphereSchema schema = new LogicSchemaMetaDataYamlSwapper().swapToObject(YamlEngine.unmarshal(readYAML(META_DATA_YAML), YamlLogicSchemaMetaData.class)); ConfigCenter configCenter = new ConfigCenter(configurationRepository); - configCenter.persistMetaData("sharding_db", physicalSchemaMetaData); + configCenter.persistSchema("sharding_db", schema); verify(configurationRepository).persist(eq("/schemas/sharding_db/table"), anyString()); } @Test - public void assertLoadMetaData() { + public void assertLoadSchema() { when(configurationRepository.get("/schemas/sharding_db/table")).thenReturn(readYAML(META_DATA_YAML)); ConfigCenter configCenter = new ConfigCenter(configurationRepository); - Optional physicalSchemaMetaDataOptional = configCenter.loadMetaData("sharding_db"); - assertTrue(physicalSchemaMetaDataOptional.isPresent()); - Optional empty = configCenter.loadMetaData("test"); + Optional schemaOptional = configCenter.loadSchema("sharding_db"); + assertTrue(schemaOptional.isPresent()); + Optional empty = configCenter.loadSchema("test"); assertThat(empty, is(Optional.empty())); - PhysicalSchemaMetaData physicalSchemaMetaData = physicalSchemaMetaDataOptional.get(); + ShardingSphereSchema schema = schemaOptional.get(); verify(configurationRepository).get(eq("/schemas/sharding_db/table")); - assertThat(physicalSchemaMetaData.getAllTableNames(), is(Collections.singleton("t_order"))); - assertThat(physicalSchemaMetaData.get("t_order").getIndexes().keySet(), is(Collections.singleton("primary"))); - assertThat(physicalSchemaMetaData.getAllColumnNames("t_order").size(), is(1)); - assertThat(physicalSchemaMetaData.get("t_order").getColumns().keySet(), is(Collections.singleton("id"))); + assertThat(schema.getAllTableNames(), is(Collections.singleton("t_order"))); + assertThat(schema.get("t_order").getIndexes().keySet(), is(Collections.singleton("primary"))); + assertThat(schema.getAllColumnNames("t_order").size(), is(1)); + assertThat(schema.get("t_order").getColumns().keySet(), is(Collections.singleton("id"))); } @Test diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListenerTest.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListenerTest.java index 51e41a6d2d..09652bc419 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListenerTest.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-config/src/test/java/org/apache/shardingsphere/governance/core/config/listener/SchemaChangedListenerTest.java @@ -257,7 +257,7 @@ public final class SchemaChangedListenerTest { DataChangedEvent dataChangedEvent = new DataChangedEvent("/schemas/sharding_db/table", readYAML(META_DATA_FILE), Type.UPDATED); Optional actual = schemaChangedListener.createGovernanceEvent(dataChangedEvent); assertTrue(actual.isPresent()); - assertTrue(((MetaDataChangedEvent) actual.get()).getMetaData().getAllTableNames().contains("t_order")); + assertTrue(((MetaDataChangedEvent) actual.get()).getSchema().getAllTableNames().contains("t_order")); } @SneakyThrows({IOException.class, URISyntaxException.class}) diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java index 12489b6ec1..0f5af7de80 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java @@ -44,7 +44,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry; import org.apache.shardingsphere.infra.executor.kernel.ExecutorKernel; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.rule.event.impl.DataSourceNameDisabledEvent; import org.apache.shardingsphere.infra.rule.type.StatusContainedRule; @@ -94,7 +94,7 @@ public final class GovernanceSchemaContexts implements SchemaContexts { } private void persistMetaData() { - schemaContexts.getMetaDataMap().forEach((key, value) -> governanceFacade.getConfigCenter().persistMetaData(key, value.getSchema())); + schemaContexts.getMetaDataMap().forEach((key, value) -> governanceFacade.getConfigCenter().persistSchema(key, value.getSchema())); } @Override @@ -159,7 +159,7 @@ public final class GovernanceSchemaContexts implements SchemaContexts { Map metaDataMap = new HashMap<>(schemaContexts.getMetaDataMap()); metaDataMap.put(event.getSchemaName(), createAddedMetaData(event)); schemaContexts = new StandardSchemaContexts(metaDataMap, schemaContexts.getExecutorKernel(), schemaContexts.getAuthentication(), schemaContexts.getProps(), schemaContexts.getDatabaseType()); - governanceFacade.getConfigCenter().persistMetaData(event.getSchemaName(), schemaContexts.getMetaDataMap().get(event.getSchemaName()).getSchema()); + governanceFacade.getConfigCenter().persistSchema(event.getSchemaName(), schemaContexts.getMetaDataMap().get(event.getSchemaName()).getSchema()); GovernanceEventBus.getInstance().post( new DataSourceChangeCompletedEvent(event.getSchemaName(), schemaContexts.getDatabaseType(), metaDataMap.get(event.getSchemaName()).getResource().getDataSources())); } @@ -210,7 +210,7 @@ public final class GovernanceSchemaContexts implements SchemaContexts { for (Entry entry : schemaContexts.getMetaDataMap().entrySet()) { String schemaName = entry.getKey(); ShardingSphereMetaData oldMetaData = entry.getValue(); - ShardingSphereMetaData newMetaData = event.getSchemaName().equals(schemaName) ? getChangedMetaData(oldMetaData, event.getMetaData(), schemaName) : oldMetaData; + ShardingSphereMetaData newMetaData = event.getSchemaName().equals(schemaName) ? getChangedMetaData(oldMetaData, event.getSchema(), schemaName) : oldMetaData; newMetaDataMap.put(schemaName, newMetaData); } schemaContexts = new StandardSchemaContexts( @@ -231,7 +231,7 @@ public final class GovernanceSchemaContexts implements SchemaContexts { newMetaDataMap.put(schemaName, getChangedMetaData(schemaContexts.getMetaDataMap().get(schemaName), event.getRuleConfigurations())); schemaContexts = new StandardSchemaContexts( newMetaDataMap, schemaContexts.getExecutorKernel(), schemaContexts.getAuthentication(), schemaContexts.getProps(), schemaContexts.getDatabaseType()); - governanceFacade.getConfigCenter().persistMetaData(schemaName, newMetaDataMap.get(schemaName).getSchema()); + governanceFacade.getConfigCenter().persistSchema(schemaName, newMetaDataMap.get(schemaName).getSchema()); } /** @@ -297,9 +297,9 @@ public final class GovernanceSchemaContexts implements SchemaContexts { return result; } - private ShardingSphereMetaData getChangedMetaData(final ShardingSphereMetaData oldMetaData, final PhysicalSchemaMetaData newSchemaMetaData, final String schemaName) { + private ShardingSphereMetaData getChangedMetaData(final ShardingSphereMetaData oldMetaData, final ShardingSphereSchema schema, final String schemaName) { // TODO refresh tableAddressingMetaData - return new ShardingSphereMetaData(schemaName, oldMetaData.getResource(), oldMetaData.getRuleMetaData(), newSchemaMetaData); + return new ShardingSphereMetaData(schemaName, oldMetaData.getResource(), oldMetaData.getRuleMetaData(), schema); } private ShardingSphereMetaData getChangedMetaData(final ShardingSphereMetaData oldMetaData, final Collection ruleConfigs) throws SQLException { diff --git a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/test/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContextsTest.java b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/test/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContextsTest.java index f316beeb87..31f8c06822 100644 --- a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/test/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContextsTest.java +++ b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/test/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContextsTest.java @@ -40,7 +40,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.executor.kernel.ExecutorKernel; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.event.RuleChangedEvent; import org.apache.shardingsphere.jdbc.test.MockedDataSource; import org.apache.shardingsphere.replicaquery.rule.ReplicaQueryRule; @@ -112,7 +112,7 @@ public final class GovernanceSchemaContextsTest { private Map createMetaDataMap() { when(metaData.getName()).thenReturn("schema"); when(metaData.getResource()).thenReturn(mock(ShardingSphereResource.class)); - when(metaData.getSchema()).thenReturn(mock(PhysicalSchemaMetaData.class)); + when(metaData.getSchema()).thenReturn(mock(ShardingSphereSchema.class)); when(metaData.getRuleMetaData().getRules()).thenReturn(Collections.singletonList(replicaQueryRule)); return Collections.singletonMap("schema", metaData); } @@ -191,7 +191,7 @@ public final class GovernanceSchemaContextsTest { @Test public void assertMetaDataChanged() { - MetaDataChangedEvent event = new MetaDataChangedEvent("schema_changed", mock(PhysicalSchemaMetaData.class)); + MetaDataChangedEvent event = new MetaDataChangedEvent("schema_changed", mock(ShardingSphereSchema.class)); governanceSchemaContexts.renew(event); assertTrue(governanceSchemaContexts.getMetaDataMap().containsKey("schema")); assertFalse(governanceSchemaContexts.getMetaDataMap().containsKey("schema_changed")); @@ -199,7 +199,7 @@ public final class GovernanceSchemaContextsTest { @Test public void assertMetaDataChangedWithExistSchema() { - MetaDataChangedEvent event = new MetaDataChangedEvent("schema", mock(PhysicalSchemaMetaData.class)); + MetaDataChangedEvent event = new MetaDataChangedEvent("schema", mock(ShardingSphereSchema.class)); governanceSchemaContexts.renew(event); assertThat(governanceSchemaContexts.getMetaDataMap().get("schema"), not(metaData)); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/SQLStatementContextFactory.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/SQLStatementContextFactory.java index d96f1c4489..c3b410c0a2 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/SQLStatementContextFactory.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/SQLStatementContextFactory.java @@ -45,7 +45,7 @@ import org.apache.shardingsphere.infra.binder.statement.dml.DeleteStatementConte import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.UpdateStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.dcl.DCLStatement; @@ -87,14 +87,14 @@ public final class SQLStatementContextFactory { /** * Create SQL statement context. * - * @param schemaMetaData table meta data + * @param schema ShardingSphere schema * @param parameters SQL parameters * @param sqlStatement SQL statement * @return SQL statement context */ - public static SQLStatementContext newInstance(final PhysicalSchemaMetaData schemaMetaData, final List parameters, final SQLStatement sqlStatement) { + public static SQLStatementContext newInstance(final ShardingSphereSchema schema, final List parameters, final SQLStatement sqlStatement) { if (sqlStatement instanceof DMLStatement) { - return getDMLStatementContext(schemaMetaData, parameters, (DMLStatement) sqlStatement); + return getDMLStatementContext(schema, parameters, (DMLStatement) sqlStatement); } if (sqlStatement instanceof DDLStatement) { return getDDLStatementContext((DDLStatement) sqlStatement); @@ -108,9 +108,9 @@ public final class SQLStatementContextFactory { return new CommonSQLStatementContext<>(sqlStatement); } - private static SQLStatementContext getDMLStatementContext(final PhysicalSchemaMetaData schemaMetaData, final List parameters, final DMLStatement sqlStatement) { + private static SQLStatementContext getDMLStatementContext(final ShardingSphereSchema schema, final List parameters, final DMLStatement sqlStatement) { if (sqlStatement instanceof SelectStatement) { - return new SelectStatementContext(schemaMetaData, parameters, (SelectStatement) sqlStatement); + return new SelectStatementContext(schema, parameters, (SelectStatement) sqlStatement); } if (sqlStatement instanceof UpdateStatement) { return new UpdateStatementContext((UpdateStatement) sqlStatement); @@ -119,7 +119,7 @@ public final class SQLStatementContextFactory { return new DeleteStatementContext((DeleteStatement) sqlStatement); } if (sqlStatement instanceof InsertStatement) { - return new InsertStatementContext(schemaMetaData, parameters, (InsertStatement) sqlStatement); + return new InsertStatementContext(schema, parameters, (InsertStatement) sqlStatement); } if (sqlStatement instanceof CallStatement) { return new CallStatementContext((CallStatement) sqlStatement); diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngine.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngine.java index 4f5e8daa7a..91d4b75f2b 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngine.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngine.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.segment.insert.keygen.engine; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.insert.keygen.GeneratedKeyContext; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment; @@ -42,7 +42,7 @@ public final class GeneratedKeyContextEngine { private final InsertStatement insertStatement; - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; /** * Create generate key context. @@ -54,15 +54,15 @@ public final class GeneratedKeyContextEngine { */ public Optional createGenerateKeyContext(final List insertColumnNames, final List> valueExpressions, final List parameters) { String tableName = insertStatement.getTable().getTableName().getIdentifier().getValue(); - return findGenerateKeyColumn(tableName).map(generateKeyColumnName -> containsGenerateKey(insertColumnNames, generateKeyColumnName) - ? findGeneratedKey(insertColumnNames, valueExpressions, parameters, generateKeyColumnName) : new GeneratedKeyContext(generateKeyColumnName, true)); + return findGenerateKeyColumn(tableName).map(optional -> containsGenerateKey(insertColumnNames, optional) + ? findGeneratedKey(insertColumnNames, valueExpressions, parameters, optional) : new GeneratedKeyContext(optional, true)); } private Optional findGenerateKeyColumn(final String tableName) { - if (!schemaMetaData.containsTable(tableName)) { + if (!schema.containsTable(tableName)) { return Optional.empty(); } - for (Entry entry : schemaMetaData.get(tableName).getColumns().entrySet()) { + for (Entry entry : schema.get(tableName).getColumns().entrySet()) { if (entry.getValue().isGenerated()) { return Optional.of(entry.getKey()); } @@ -71,7 +71,7 @@ public final class GeneratedKeyContextEngine { } private boolean containsGenerateKey(final List insertColumnNames, final String generateKeyColumnName) { - return insertColumnNames.isEmpty() ? schemaMetaData.getAllColumnNames(insertStatement.getTable().getTableName().getIdentifier().getValue()).size() == getValueCountForPerGroup() + return insertColumnNames.isEmpty() ? schema.getAllColumnNames(insertStatement.getTable().getTableName().getIdentifier().getValue()).size() == getValueCountForPerGroup() : insertColumnNames.contains(generateKeyColumnName); } @@ -111,7 +111,7 @@ public final class GeneratedKeyContextEngine { } private int findGenerateKeyIndex(final List insertColumnNames, final String generateKeyColumnName) { - return insertColumnNames.isEmpty() ? schemaMetaData.getAllColumnNames(insertStatement.getTable().getTableName().getIdentifier().getValue()).indexOf(generateKeyColumnName) + return insertColumnNames.isEmpty() ? schema.getAllColumnNames(insertStatement.getTable().getTableName().getIdentifier().getValue()).indexOf(generateKeyColumnName) : insertColumnNames.indexOf(generateKeyColumnName); } } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java index 1a3f42c880..887b51058c 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.binder.segment.select.projection.engine; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.projection.DerivedColumn; import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationDistinctProjection; @@ -47,7 +47,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public final class ProjectionEngine { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private int aggregationAverageDerivedColumnCount; @@ -123,7 +123,7 @@ public final class ProjectionEngine { private Collection getUnqualifiedShorthandColumns(final Collection tables) { Collection result = new LinkedList<>(); for (SimpleTableSegment each : tables) { - result.addAll(schemaMetaData.getAllColumnNames( + result.addAll(schema.getAllColumnNames( each.getTableName().getIdentifier().getValue()).stream().map(columnName -> new ColumnProjection(null, columnName, null)).collect(Collectors.toList())); } return result; @@ -133,7 +133,7 @@ public final class ProjectionEngine { for (SimpleTableSegment each : tables) { String tableName = each.getTableName().getIdentifier().getValue(); if (owner.equalsIgnoreCase(each.getAlias().orElse(tableName))) { - return schemaMetaData.getAllColumnNames(tableName).stream().map(columnName -> new ColumnProjection(owner, columnName, null)).collect(Collectors.toList()); + return schema.getAllColumnNames(tableName).stream().map(columnName -> new ColumnProjection(owner, columnName, null)).collect(Collectors.toList()); } } return Collections.emptyList(); diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngine.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngine.java index b3f5ab11f8..0014cf142e 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngine.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngine.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.binder.segment.select.projection.engine; import com.google.common.base.Preconditions; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem; @@ -45,13 +45,13 @@ import java.util.Optional; */ public final class ProjectionsContextEngine { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final ProjectionEngine projectionEngine; - public ProjectionsContextEngine(final PhysicalSchemaMetaData schemaMetaData) { - this.schemaMetaData = schemaMetaData; - projectionEngine = new ProjectionEngine(schemaMetaData); + public ProjectionsContextEngine(final ShardingSphereSchema schema) { + this.schema = schema; + projectionEngine = new ProjectionEngine(schema); } /** @@ -177,7 +177,7 @@ public final class ProjectionsContextEngine { private boolean isSameProjection(final ShorthandProjection shorthandProjection, final ColumnOrderByItemSegment orderItem, final Collection tables) { Preconditions.checkState(shorthandProjection.getOwner().isPresent()); SimpleTableSegment tableSegment = find(shorthandProjection.getOwner().get(), tables); - return schemaMetaData.containsColumn(tableSegment.getTableName().getIdentifier().getValue(), orderItem.getColumn().getIdentifier().getValue()); + return schema.containsColumn(tableSegment.getTableName().getIdentifier().getValue(), orderItem.getColumn().getIdentifier().getValue()); } private boolean isSameAlias(final Projection projection, final TextOrderByItemSegment orderItem) { diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContext.java index 0eb92cb099..077dd2fbd9 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContext.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContext.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.segment.table; import lombok.Getter; import lombok.ToString; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment; @@ -74,34 +74,34 @@ public final class TablesContext { * Find table name. * * @param column column segment - * @param schemaMetaData schema meta data + * @param schema schema meta data * @return table name */ - public Optional findTableName(final ColumnSegment column, final PhysicalSchemaMetaData schemaMetaData) { + public Optional findTableName(final ColumnSegment column, final ShardingSphereSchema schema) { if (1 == tables.size()) { return Optional.of(tables.iterator().next().getTableName().getIdentifier().getValue()); } if (column.getOwner().isPresent()) { return Optional.of(findTableNameFromSQL(column.getOwner().get().getIdentifier().getValue())); } - return findTableNameFromMetaData(column.getIdentifier().getValue(), schemaMetaData); + return findTableNameFromMetaData(column.getIdentifier().getValue(), schema); } /** * Find table name. * * @param column column projection - * @param schemaMetaData schema meta data + * @param schema schema meta data * @return table name */ - public Optional findTableName(final ColumnProjection column, final PhysicalSchemaMetaData schemaMetaData) { + public Optional findTableName(final ColumnProjection column, final ShardingSphereSchema schema) { if (1 == tables.size()) { return Optional.of(tables.iterator().next().getTableName().getIdentifier().getValue()); } if (null != column.getOwner()) { return Optional.of(findTableNameFromSQL(column.getOwner())); } - return findTableNameFromMetaData(column.getName(), schemaMetaData); + return findTableNameFromMetaData(column.getName(), schema); } /** @@ -118,9 +118,9 @@ public final class TablesContext { throw new IllegalStateException("Can not find owner from table."); } - private Optional findTableNameFromMetaData(final String columnName, final PhysicalSchemaMetaData schemaMetaData) { + private Optional findTableNameFromMetaData(final String columnName, final ShardingSphereSchema schema) { for (SimpleTableSegment each : tables) { - if (schemaMetaData.containsColumn(each.getTableName().getIdentifier().getValue(), columnName)) { + if (schema.containsColumn(each.getTableName().getIdentifier().getValue(), columnName)) { return Optional.of(each.getTableName().getIdentifier().getValue()); } } 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 afb5588d1b..e13e66b237 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 @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.binder.statement.dml; import lombok.Getter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.insert.keygen.GeneratedKeyContext; import org.apache.shardingsphere.infra.binder.segment.insert.keygen.engine.GeneratedKeyContextEngine; import org.apache.shardingsphere.infra.binder.segment.insert.values.InsertSelectContext; @@ -66,16 +66,16 @@ public final class InsertStatementContext extends CommonSQLStatementContext parameters, final InsertStatement sqlStatement) { + public InsertStatementContext(final ShardingSphereSchema schema, final List parameters, final InsertStatement sqlStatement) { super(sqlStatement); List insertColumnNames = getInsertColumnNames(); - columnNames = useDefaultColumns() ? schemaMetaData.getAllColumnNames(sqlStatement.getTable().getTableName().getIdentifier().getValue()) : insertColumnNames; + columnNames = useDefaultColumns() ? schema.getAllColumnNames(sqlStatement.getTable().getTableName().getIdentifier().getValue()) : insertColumnNames; AtomicInteger parametersOffset = new AtomicInteger(0); insertValueContexts = getInsertValueContexts(parameters, parametersOffset); - insertSelectContext = getInsertSelectContext(schemaMetaData, parameters, parametersOffset).orElse(null); + insertSelectContext = getInsertSelectContext(schema, parameters, parametersOffset).orElse(null); tablesContext = getTablesContext(sqlStatement); onDuplicateKeyUpdateValueContext = getOnDuplicateKeyUpdateValueContext(parameters, parametersOffset).orElse(null); - generatedKeyContext = new GeneratedKeyContextEngine(sqlStatement, schemaMetaData).createGenerateKeyContext(insertColumnNames, getAllValueExpressions(sqlStatement), parameters).orElse(null); + generatedKeyContext = new GeneratedKeyContextEngine(sqlStatement, schema).createGenerateKeyContext(insertColumnNames, getAllValueExpressions(sqlStatement), parameters).orElse(null); } private TablesContext getTablesContext(final InsertStatement sqlStatement) { @@ -98,12 +98,12 @@ public final class InsertStatementContext extends CommonSQLStatementContext getInsertSelectContext(final PhysicalSchemaMetaData schemaMetaData, final List parameters, final AtomicInteger parametersOffset) { + private Optional getInsertSelectContext(final ShardingSphereSchema schema, final List parameters, final AtomicInteger parametersOffset) { if (!getSqlStatement().getInsertSelect().isPresent()) { return Optional.empty(); } SubquerySegment insertSelectSegment = getSqlStatement().getInsertSelect().get(); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, parameters, insertSelectSegment.getSelect()); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, parameters, insertSelectSegment.getSelect()); InsertSelectContext insertSelectContext = new InsertSelectContext(selectStatementContext, parameters, parametersOffset.get()); parametersOffset.addAndGet(insertSelectContext.getParameterCount()); return Optional.of(insertSelectContext); diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java index d2e555873a..851c85223d 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.statement.dml; import com.google.common.base.Preconditions; import lombok.Getter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.groupby.engine.GroupByContextEngine; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; @@ -81,12 +81,12 @@ public final class SelectStatementContext extends CommonSQLStatementContext parameters, final SelectStatement sqlStatement) { + public SelectStatementContext(final ShardingSphereSchema schema, final List parameters, final SelectStatement sqlStatement) { super(sqlStatement); tablesContext = new TablesContext(getSimpleTableSegments()); groupByContext = new GroupByContextEngine().createGroupByContext(sqlStatement); orderByContext = new OrderByContextEngine().createOrderBy(sqlStatement, groupByContext); - projectionsContext = new ProjectionsContextEngine(schemaMetaData).createProjectionsContext(getSimpleTableSegments(), getSqlStatement().getProjections(), groupByContext, orderByContext); + projectionsContext = new ProjectionsContextEngine(schema).createProjectionsContext(getSimpleTableSegments(), getSqlStatement().getProjections(), groupByContext, orderByContext); paginationContext = new PaginationContextEngine().createPaginationContext(sqlStatement, projectionsContext, parameters); containsSubquery = containsSubquery(); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java index 6c2aa1f86d..735a9aa473 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.segment.insert.keygen.engine; import org.apache.shardingsphere.infra.binder.segment.insert.keygen.GeneratedKeyContext; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -58,14 +58,14 @@ import static org.junit.Assert.assertTrue; @RunWith(MockitoJUnitRunner.class) public final class GeneratedKeyContextEngineTest { - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Before public void setUp() { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("id", Types.INTEGER, "INT", true, true, false)), Collections.emptyList()); Map tableMetaDataMap = new HashMap<>(1, 1); tableMetaDataMap.put("tbl", tableMetaData); - schemaMetaData = new PhysicalSchemaMetaData(tableMetaDataMap); + schema = new ShardingSphereSchema(tableMetaDataMap); } @Test @@ -96,7 +96,7 @@ public final class GeneratedKeyContextEngineTest { private void assertCreateGenerateKeyContextWithoutGenerateKeyColumnConfiguration(final InsertStatement insertStatement) { insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl1"))); insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("id"))))); - assertFalse(new GeneratedKeyContextEngine(insertStatement, schemaMetaData).createGenerateKeyContext(Collections.emptyList(), + assertFalse(new GeneratedKeyContextEngine(insertStatement, schema).createGenerateKeyContext(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(1)).isPresent()); } @@ -130,7 +130,7 @@ public final class GeneratedKeyContextEngineTest { insertStatement.setInsertColumns(new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("id"))))); List expressionSegments = Collections.singletonList(new LiteralExpressionSegment(0, 0, 1)); insertStatement.getValues().add(new InsertValuesSegment(0, 0, expressionSegments)); - Optional actual = new GeneratedKeyContextEngine(insertStatement, schemaMetaData) + Optional actual = new GeneratedKeyContextEngine(insertStatement, schema) .createGenerateKeyContext(Collections.singletonList("id"), Collections.singletonList(expressionSegments), Collections.singletonList(1)); assertTrue(actual.isPresent()); assertThat(actual.get().getGeneratedValues().size(), is(1)); @@ -169,7 +169,7 @@ public final class GeneratedKeyContextEngineTest { insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new LiteralExpressionSegment(1, 2, "value")))); insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new CommonExpressionSegment(1, 2, "ignored value")))); List> valueExpressions = insertStatement.getValues().stream().map(InsertValuesSegment::getValues).collect(Collectors.toList()); - Optional actual = new GeneratedKeyContextEngine(insertStatement, schemaMetaData) + Optional actual = new GeneratedKeyContextEngine(insertStatement, schema) .createGenerateKeyContext(Collections.singletonList("id"), valueExpressions, Collections.singletonList(1)); assertTrue(actual.isPresent()); assertThat(actual.get().getGeneratedValues().size(), is(3)); @@ -177,7 +177,6 @@ public final class GeneratedKeyContextEngineTest { assertThat(generatedValuesIterator.next(), is((Comparable) 1)); assertThat(generatedValuesIterator.next(), is((Comparable) 100)); assertThat(generatedValuesIterator.next(), is((Comparable) "value")); - assertTrue(new GeneratedKeyContextEngine(insertStatement, schemaMetaData).createGenerateKeyContext(Collections.emptyList(), - Collections.emptyList(), Collections.singletonList(1)).isPresent()); + assertTrue(new GeneratedKeyContextEngine(insertStatement, schema).createGenerateKeyContext(Collections.emptyList(), Collections.emptyList(), Collections.singletonList(1)).isPresent()); } } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java index b4048810b3..c8f0581b2a 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.segment.select.projection.engine; import org.apache.shardingsphere.infra.binder.segment.select.projection.Projection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationDistinctProjection; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.AggregationProjection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection; import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ExpressionProjection; @@ -49,14 +49,14 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentNotMatched() { - assertFalse(new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), null).isPresent()); + assertFalse(new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), null).isPresent()); } @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfShorthandProjectionSegment() { ShorthandProjectionSegment shorthandProjectionSegment = new ShorthandProjectionSegment(0, 0); shorthandProjectionSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("tbl"))); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), shorthandProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), shorthandProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(ShorthandProjection.class)); } @@ -65,7 +65,7 @@ public final class ProjectionEngineTest { public void assertCreateProjectionWhenProjectionSegmentInstanceOfColumnProjectionSegment() { ColumnProjectionSegment columnProjectionSegment = new ColumnProjectionSegment(new ColumnSegment(0, 10, new IdentifierValue("name"))); columnProjectionSegment.setAlias(new AliasSegment(0, 0, new IdentifierValue("alias"))); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), columnProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), columnProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(ColumnProjection.class)); } @@ -73,7 +73,7 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfExpressionProjectionSegment() { ExpressionProjectionSegment expressionProjectionSegment = new ExpressionProjectionSegment(0, 10, "text"); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), expressionProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), expressionProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(ExpressionProjection.class)); } @@ -81,7 +81,7 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfAggregationDistinctProjectionSegment() { AggregationDistinctProjectionSegment aggregationDistinctProjectionSegment = new AggregationDistinctProjectionSegment(0, 10, AggregationType.COUNT, "(1)", "distinctExpression"); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), aggregationDistinctProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), aggregationDistinctProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(AggregationDistinctProjection.class)); } @@ -89,7 +89,7 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfAggregationProjectionSegment() { AggregationProjectionSegment aggregationProjectionSegment = new AggregationProjectionSegment(0, 10, AggregationType.COUNT, "(1)"); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), aggregationProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), aggregationProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(AggregationProjection.class)); } @@ -97,7 +97,7 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfAggregationDistinctProjectionSegmentAndAggregationTypeIsAvg() { AggregationDistinctProjectionSegment aggregationDistinctProjectionSegment = new AggregationDistinctProjectionSegment(0, 10, AggregationType.AVG, "(1)", "distinctExpression"); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), aggregationDistinctProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), aggregationDistinctProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(AggregationDistinctProjection.class)); } @@ -105,7 +105,7 @@ public final class ProjectionEngineTest { @Test public void assertCreateProjectionWhenProjectionSegmentInstanceOfAggregationProjectionSegmentAndAggregationTypeIsAvg() { AggregationProjectionSegment aggregationProjectionSegment = new AggregationProjectionSegment(0, 10, AggregationType.AVG, "(1)"); - Optional actual = new ProjectionEngine(mock(PhysicalSchemaMetaData.class)).createProjection(Collections.emptyList(), aggregationProjectionSegment); + Optional actual = new ProjectionEngine(mock(ShardingSphereSchema.class)).createProjection(Collections.emptyList(), aggregationProjectionSegment); assertTrue(actual.isPresent()); assertThat(actual.get(), instanceOf(AggregationProjection.class)); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java index b3b5668e58..b0ab9e2735 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java @@ -18,12 +18,12 @@ package org.apache.shardingsphere.infra.binder.segment.select.projection.engine; import com.google.common.collect.Lists; -import org.apache.shardingsphere.infra.binder.segment.select.projection.ProjectionsContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; import org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext; import org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem; +import org.apache.shardingsphere.infra.binder.segment.select.projection.ProjectionsContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.constant.OrderDirection; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment; @@ -41,7 +41,6 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.Ora import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLSelectStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sql92.dml.SQL92SelectStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.dml.SQLServerSelectStatement; -import org.junit.Before; import org.junit.Test; import java.util.Collection; @@ -51,34 +50,29 @@ import java.util.LinkedList; import static org.junit.Assert.assertNotNull; public final class ProjectionsContextEngineTest { - - private PhysicalSchemaMetaData schemaMetaData; - @Before - public void setUp() { - schemaMetaData = new PhysicalSchemaMetaData(Collections.emptyMap()); - } - + private final ShardingSphereSchema schema = new ShardingSphereSchema(Collections.emptyMap()); + @Test public void assertProjectionsContextCreatedProperlyForMySQL() { assertProjectionsContextCreatedProperly(new MySQLSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyForOracle() { assertProjectionsContextCreatedProperly(new OracleSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyForPostgreSQL() { assertProjectionsContextCreatedProperly(new PostgreSQLSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyForSQL92() { assertProjectionsContextCreatedProperly(new SQL92SelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyForSQLServer() { assertProjectionsContextCreatedProperly(new SQLServerSelectStatement()); @@ -87,34 +81,34 @@ public final class ProjectionsContextEngineTest { private void assertProjectionsContextCreatedProperly(final SelectStatement selectStatement) { ProjectionsContextEngine projectionsContextEngine = new ProjectionsContextEngine(null); selectStatement.setProjections(new ProjectionsSegment(0, 0)); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); ProjectionsSegment projectionsSegment = selectStatement.getProjections(); ProjectionsContext actual = projectionsContextEngine .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false)); assertNotNull(actual); } - + @Test public void assertProjectionsContextCreatedProperlyWhenProjectionPresentForMySQL() { assertProjectionsContextCreatedProperlyWhenProjectionPresent(new MySQLSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyWhenProjectionPresentForOracle() { assertProjectionsContextCreatedProperlyWhenProjectionPresent(new OracleSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyWhenProjectionPresentForPostgreSQL() { assertProjectionsContextCreatedProperlyWhenProjectionPresent(new PostgreSQLSelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyWhenProjectionPresentForSQL92() { assertProjectionsContextCreatedProperlyWhenProjectionPresent(new SQL92SelectStatement()); } - + @Test public void assertProjectionsContextCreatedProperlyWhenProjectionPresentForSQLServer() { assertProjectionsContextCreatedProperlyWhenProjectionPresent(new SQLServerSelectStatement()); @@ -127,33 +121,33 @@ public final class ProjectionsContextEngineTest { OwnerSegment owner = new OwnerSegment(0, 10, new IdentifierValue("name")); shorthandProjectionSegment.setOwner(owner); projectionsSegment.getProjections().addAll(Collections.singleton(shorthandProjectionSegment)); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), new OrderByContext(Collections.emptyList(), false)); assertNotNull(actual); } - + @Test public void createProjectionsContextWhenOrderByContextOrderItemsPresentForMySQL() { createProjectionsContextWhenOrderByContextOrderItemsPresent(new MySQLSelectStatement()); } - + @Test public void createProjectionsContextWhenOrderByContextOrderItemsPresentForOracle() { createProjectionsContextWhenOrderByContextOrderItemsPresent(new OracleSelectStatement()); } - + @Test public void createProjectionsContextWhenOrderByContextOrderItemsPresentForPostgreSQL() { createProjectionsContextWhenOrderByContextOrderItemsPresent(new PostgreSQLSelectStatement()); } - + @Test public void createProjectionsContextWhenOrderByContextOrderItemsPresentForSQL92() { createProjectionsContextWhenOrderByContextOrderItemsPresent(new SQL92SelectStatement()); } - + @Test public void createProjectionsContextWhenOrderByContextOrderItemsPresentForSQLServer() { createProjectionsContextWhenOrderByContextOrderItemsPresent(new SQLServerSelectStatement()); @@ -168,33 +162,33 @@ public final class ProjectionsContextEngineTest { projectionsSegment.getProjections().addAll(Collections.singleton(shorthandProjectionSegment)); OrderByItem orderByItem = new OrderByItem(new IndexOrderByItemSegment(0, 1, 0, OrderDirection.ASC)); OrderByContext orderByContext = new OrderByContext(Collections.singletonList(orderByItem), true); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), orderByContext); assertNotNull(actual); } - + @Test public void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForMySQL() { assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new MySQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForOracle() { assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new OracleSelectStatement()); } - + @Test public void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForPostgreSQL() { assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new PostgreSQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForSQL92() { assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new SQL92SelectStatement()); } - + @Test public void assertCreateProjectionsContextWithoutIndexOrderByItemSegmentForSQLServer() { assertCreateProjectionsContextWithoutIndexOrderByItemSegment(new SQLServerSelectStatement()); @@ -209,33 +203,33 @@ public final class ProjectionsContextEngineTest { projectionsSegment.getProjections().addAll(Collections.singleton(shorthandProjectionSegment)); OrderByItem orderByItem = new OrderByItem(new ExpressionOrderByItemSegment(0, 1, "", OrderDirection.ASC)); OrderByContext orderByContext = new OrderByContext(Collections.singletonList(orderByItem), true); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), orderByContext); assertNotNull(actual); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForMySQL() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new MySQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForOracle() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new OracleSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForPostgreSQL() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new PostgreSQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForSQL92() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new SQL92SelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsentForSQLServer() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerAbsent(new SQLServerSelectStatement()); @@ -251,33 +245,33 @@ public final class ProjectionsContextEngineTest { projectionsSegment.getProjections().addAll(Collections.singleton(shorthandProjectionSegment)); OrderByItem orderByItem = new OrderByItem(new ColumnOrderByItemSegment(new ColumnSegment(0, 0, new IdentifierValue("name")), OrderDirection.ASC)); OrderByContext orderByContext = new OrderByContext(Collections.singletonList(orderByItem), true); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), orderByContext); assertNotNull(actual); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForMySQL() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new MySQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForOracle() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new OracleSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForPostgreSQL() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new PostgreSQLSelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForSQL92() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new SQL92SelectStatement()); } - + @Test public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentForSQLServer() { assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresent(new SQLServerSelectStatement()); @@ -293,9 +287,9 @@ public final class ProjectionsContextEngineTest { projectionsSegment.getProjections().addAll(Collections.singleton(shorthandProjectionSegment)); OrderByItem orderByItem = new OrderByItem(new ColumnOrderByItemSegment(new ColumnSegment(0, 0, new IdentifierValue("name")), OrderDirection.ASC)); OrderByContext orderByContext = new OrderByContext(Collections.singletonList(orderByItem), true); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), orderByContext); assertNotNull(actual); } @@ -343,9 +337,9 @@ public final class ProjectionsContextEngineTest { projectionsSegment.getProjections().addAll(Lists.newArrayList(columnProjectionSegment, shorthandProjectionSegment)); OrderByItem orderByItem = new OrderByItem(new ColumnOrderByItemSegment(new ColumnSegment(0, 0, new IdentifierValue("name")), OrderDirection.ASC)); OrderByContext orderByContext = new OrderByContext(Collections.singleton(orderByItem), false); - SelectStatementContext selectStatementContext = new SelectStatementContext(schemaMetaData, new LinkedList<>(), selectStatement); + SelectStatementContext selectStatementContext = new SelectStatementContext(schema, new LinkedList<>(), selectStatement); Collection tables = selectStatementContext.getSimpleTableSegments(); - ProjectionsContext actual = new ProjectionsContextEngine(schemaMetaData) + ProjectionsContext actual = new ProjectionsContextEngine(schema) .createProjectionsContext(tables, projectionsSegment, new GroupByContext(Collections.emptyList(), 0), orderByContext); assertNotNull(actual); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java index c521bd2350..2168f7dde9 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.binder.segment.table; import com.google.common.collect.Sets; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment; @@ -56,7 +56,7 @@ public final class TablesContextTest { @Test public void assertFindTableNameWhenSingleTable() { SimpleTableSegment tableSegment = createTableSegment("table_1", "tbl_1"); - Optional actual = new TablesContext(Collections.singletonList(tableSegment)).findTableName(createColumnSegment(), mock(PhysicalSchemaMetaData.class)); + Optional actual = new TablesContext(Collections.singletonList(tableSegment)).findTableName(createColumnSegment(), mock(ShardingSphereSchema.class)); assertTrue(actual.isPresent()); assertThat(actual.get(), is("table_1")); } @@ -67,7 +67,7 @@ public final class TablesContextTest { SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2"); ColumnSegment columnSegment = createColumnSegment(); columnSegment.setOwner(new OwnerSegment(0, 10, new IdentifierValue("table_1"))); - Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(columnSegment, mock(PhysicalSchemaMetaData.class)); + Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(columnSegment, mock(ShardingSphereSchema.class)); assertTrue(actual.isPresent()); assertThat(actual.get(), is("table_1")); } @@ -76,7 +76,7 @@ public final class TablesContextTest { public void assertFindTableNameWhenColumnSegmentOwnerAbsent() { SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1"); SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2"); - Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(createColumnSegment(), mock(PhysicalSchemaMetaData.class)); + Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(createColumnSegment(), mock(ShardingSphereSchema.class)); assertFalse(actual.isPresent()); } @@ -84,9 +84,9 @@ public final class TablesContextTest { public void assertFindTableNameWhenColumnSegmentOwnerAbsentAndSchemaMetaDataContainsColumn() { SimpleTableSegment tableSegment1 = createTableSegment("table_1", "tbl_1"); SimpleTableSegment tableSegment2 = createTableSegment("table_2", "tbl_2"); - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.containsColumn(anyString(), anyString())).thenReturn(true); - Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(createColumnSegment(), schemaMetaData); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.containsColumn(anyString(), anyString())).thenReturn(true); + Optional actual = new TablesContext(Arrays.asList(tableSegment1, tableSegment2)).findTableName(createColumnSegment(), schema); assertTrue(actual.isPresent()); assertThat(actual.get(), is("table_1")); } diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementContextFactoryTest.java b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementContextFactoryTest.java index 74140f81cd..e6f7884155 100644 --- a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementContextFactoryTest.java +++ b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementContextFactoryTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.binder.statement; import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment; @@ -52,7 +52,7 @@ public final class SQLStatementContextFactoryTest { MySQLSelectStatement selectStatement = new MySQLSelectStatement(); selectStatement.setLimit(new LimitSegment(0, 10, null, null)); selectStatement.setProjections(projectionsSegment); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(PhysicalSchemaMetaData.class), null, selectStatement); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(ShardingSphereSchema.class), null, selectStatement); assertNotNull(sqlStatementContext); assertTrue(sqlStatementContext instanceof SelectStatementContext); } @@ -87,14 +87,14 @@ public final class SQLStatementContextFactoryTest { private void assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(final InsertStatement insertStatement) { insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(PhysicalSchemaMetaData.class), null, insertStatement); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(ShardingSphereSchema.class), null, insertStatement); assertNotNull(sqlStatementContext); assertTrue(sqlStatementContext instanceof InsertStatementContext); } @Test public void assertSQLStatementContextCreatedWhenSQLStatementNotInstanceOfSelectStatementAndInsertStatement() { - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(PhysicalSchemaMetaData.class), null, mock(SQLStatement.class)); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(mock(ShardingSphereSchema.class), null, mock(SQLStatement.class)); assertNotNull(sqlStatementContext); assertTrue(sqlStatementContext instanceof CommonSQLStatementContext); } 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 247d020ff7..1320c9bcac 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 @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.statement.impl; import com.google.common.collect.Sets; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment; import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment; @@ -90,29 +90,29 @@ public final class InsertStatementContextTest { new ColumnSegment(0, 0, new IdentifierValue("id")), new ColumnSegment(0, 0, new IdentifierValue("name")), new ColumnSegment(0, 0, new IdentifierValue("status")))); insertStatement.setInsertColumns(insertColumnsSegment); setUpInsertValues(insertStatement); - InsertStatementContext actual = new InsertStatementContext(mock(PhysicalSchemaMetaData.class), Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); + InsertStatementContext actual = new InsertStatementContext(mock(ShardingSphereSchema.class), Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); assertInsertStatementContext(actual); } @Test public void assertInsertStatementContextWithoutColumnNames() { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); InsertStatement insertStatement = new MySQLInsertStatement(); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); setUpInsertValues(insertStatement); - InsertStatementContext actual = new InsertStatementContext(schemaMetaData, Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); + InsertStatementContext actual = new InsertStatementContext(schema, Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); assertInsertStatementContext(actual); } @Test public void assertGetGroupedParametersWithoutOnDuplicateParameter() { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); InsertStatement insertStatement = new MySQLInsertStatement(); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); setUpInsertValues(insertStatement); - InsertStatementContext actual = new InsertStatementContext(schemaMetaData, Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); + InsertStatementContext actual = new InsertStatementContext(schema, Arrays.asList(1, "Tom", 2, "Jerry"), insertStatement); assertThat(actual.getGroupedParameters().size(), is(2)); assertNull(actual.getOnDuplicateKeyUpdateValueContext()); assertThat(actual.getOnDuplicateKeyUpdateParameters().size(), is(0)); @@ -120,13 +120,13 @@ public final class InsertStatementContextTest { @Test public void assertGetGroupedParametersWithOnDuplicateParameters() { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); MySQLInsertStatement insertStatement = new MySQLInsertStatement(); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); setUpInsertValues(insertStatement); setUpOnDuplicateValues(insertStatement); - InsertStatementContext actual = new InsertStatementContext(schemaMetaData, Arrays.asList(1, "Tom", 2, "Jerry", "onDuplicateKeyUpdateColumnValue"), insertStatement); + InsertStatementContext actual = new InsertStatementContext(schema, Arrays.asList(1, "Tom", 2, "Jerry", "onDuplicateKeyUpdateColumnValue"), insertStatement); assertThat(actual.getGroupedParameters().size(), is(2)); assertThat(actual.getOnDuplicateKeyUpdateValueContext().getColumns().size(), is(2)); assertThat(actual.getOnDuplicateKeyUpdateParameters().size(), is(1)); @@ -134,15 +134,15 @@ public final class InsertStatementContextTest { @Test public void assertInsertSelect() { - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.getAllColumnNames("tbl")).thenReturn(Arrays.asList("id", "name", "status")); InsertStatement insertStatement = new MySQLInsertStatement(); SelectStatement selectStatement = new MySQLSelectStatement(); selectStatement.setProjections(new ProjectionsSegment(0, 0)); SubquerySegment insertSelect = new SubquerySegment(0, 0, selectStatement); insertStatement.setInsertSelect(insertSelect); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl"))); - InsertStatementContext actual = new InsertStatementContext(schemaMetaData, Collections.singletonList("param"), insertStatement); + InsertStatementContext actual = new InsertStatementContext(schema, Collections.singletonList("param"), insertStatement); assertThat(actual.getInsertSelectContext().getParameterCount(), is(0)); assertThat(actual.getGroupedParameters().size(), is(1)); assertThat(actual.getGroupedParameters().iterator().next(), is(Collections.emptyList())); @@ -214,7 +214,7 @@ public final class InsertStatementContextTest { private void assertUseDefaultColumns(final InsertStatement insertStatement) { insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); assertTrue(insertStatementContext.useDefaultColumns()); } @@ -247,7 +247,7 @@ public final class InsertStatementContextTest { InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col")))); insertStatement.setInsertColumns(insertColumnsSegment); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); assertFalse(insertStatementContext.useDefaultColumns()); } @@ -256,7 +256,7 @@ public final class InsertStatementContextTest { MySQLInsertStatement insertStatement = new MySQLInsertStatement(); insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.emptyList())); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); assertFalse(insertStatementContext.useDefaultColumns()); } @@ -289,7 +289,7 @@ public final class InsertStatementContextTest { insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new LiteralExpressionSegment(0, 0, 1)))); insertStatement.getValues().add(new InsertValuesSegment(0, 0, Collections.singletonList(new LiteralExpressionSegment(0, 0, 2)))); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); assertThat(insertStatementContext.getValueListCount(), is(2)); } @@ -299,7 +299,7 @@ public final class InsertStatementContextTest { insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.singletonList(new AssignmentSegment(0, 0, new ColumnSegment(0, 0, new IdentifierValue("col")), new LiteralExpressionSegment(0, 0, 1))))); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); assertThat(insertStatementContext.getValueListCount(), is(1)); } @@ -332,7 +332,7 @@ public final class InsertStatementContextTest { InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col")))); insertStatement.setInsertColumns(insertColumnsSegment); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); List columnNames = insertStatementContext.getInsertColumnNames(); assertThat(columnNames.size(), is(1)); assertThat(columnNames.iterator().next(), is("col")); @@ -344,7 +344,7 @@ public final class InsertStatementContextTest { insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0, Collections.singletonList(new AssignmentSegment(0, 0, new ColumnSegment(0, 0, new IdentifierValue("col")), new LiteralExpressionSegment(0, 0, 1))))); insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue(""))); - InsertStatementContext insertStatementContext = new InsertStatementContext(new PhysicalSchemaMetaData(), Collections.emptyList(), insertStatement); + InsertStatementContext insertStatementContext = new InsertStatementContext(new ShardingSphereSchema(), Collections.emptyList(), insertStatement); List columnNames = insertStatementContext.getInsertColumnNames(); assertThat(columnNames.size(), is(1)); assertThat(columnNames.iterator().next(), is("col")); diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java index 67935ead86..467997738c 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java @@ -21,7 +21,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * ShardingSphere meta data. @@ -36,7 +36,7 @@ public final class ShardingSphereMetaData { private final ShardingSphereRuleMetaData ruleMetaData; - private final PhysicalSchemaMetaData schema; + private final ShardingSphereSchema schema; /** * Is complete schema context. diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/PhysicalSchemaMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchema.java similarity index 90% rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/PhysicalSchemaMetaData.java rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchema.java index 27dca8816e..8d273b3496 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/PhysicalSchemaMetaData.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchema.java @@ -15,7 +15,9 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.metadata.schema.model.physical; +package org.apache.shardingsphere.infra.metadata.schema; + +import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import java.util.ArrayList; import java.util.Collection; @@ -25,18 +27,18 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** - * Physical schema meta data. + * ShardingSphere schema. */ -public final class PhysicalSchemaMetaData { +public final class ShardingSphereSchema { private final Map tables; @SuppressWarnings("CollectionWithoutInitialCapacity") - public PhysicalSchemaMetaData() { + public ShardingSphereSchema() { tables = new ConcurrentHashMap<>(); } - public PhysicalSchemaMetaData(final Map tables) { + public ShardingSphereSchema(final Map tables) { this.tables = new ConcurrentHashMap<>(tables.size(), 1); tables.forEach((key, value) -> this.tables.put(key.toLowerCase(), value)); } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java index ebdcdb1d2e..87f204f8e4 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java @@ -22,7 +22,7 @@ import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties; import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.metadata.schema.loader.addressing.TableAddressingMetaDataLoader; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.rule.type.TableContainedRule; @@ -49,16 +49,16 @@ public final class SchemaMetaDataLoader { * @return schema meta data * @throws SQLException SQL exception */ - public static PhysicalSchemaMetaData load(final DatabaseType databaseType, final Map dataSourceMap, - final Collection rules, final ConfigurationProperties props) throws SQLException { - PhysicalSchemaMetaData result = loadSchemaMetaData(databaseType, dataSourceMap, rules, props); + public static ShardingSphereSchema load(final DatabaseType databaseType, final Map dataSourceMap, + final Collection rules, final ConfigurationProperties props) throws SQLException { + ShardingSphereSchema result = loadSchemaMetaData(databaseType, dataSourceMap, rules, props); setAddressingDataSources(databaseType, dataSourceMap, rules, result); return result; } - private static PhysicalSchemaMetaData loadSchemaMetaData(final DatabaseType databaseType, final Map dataSourceMap, - final Collection rules, final ConfigurationProperties props) throws SQLException { - PhysicalSchemaMetaData result = new PhysicalSchemaMetaData(); + private static ShardingSphereSchema loadSchemaMetaData(final DatabaseType databaseType, final Map dataSourceMap, + final Collection rules, final ConfigurationProperties props) throws SQLException { + ShardingSphereSchema result = new ShardingSphereSchema(); for (ShardingSphereRule rule : rules) { if (rule instanceof TableContainedRule) { for (String table : ((TableContainedRule) rule).getTables()) { @@ -72,13 +72,13 @@ public final class SchemaMetaDataLoader { } private static void setAddressingDataSources(final DatabaseType databaseType, final Map dataSourceMap, - final Collection rules, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + final Collection rules, final ShardingSphereSchema schema) throws SQLException { for (Entry> entry : TableAddressingMetaDataLoader.load(databaseType, dataSourceMap, rules).getTableDataSourceNamesMapper().entrySet()) { String tableName = entry.getKey(); - if (!schemaMetaData.containsTable(tableName)) { - schemaMetaData.put(tableName, new PhysicalTableMetaData()); + if (!schema.containsTable(tableName)) { + schema.put(tableName, new PhysicalTableMetaData()); } - schemaMetaData.get(tableName).getAddressingDataSources().addAll(entry.getValue()); + schema.get(tableName).getAddressingDataSources().addAll(entry.getValue()); } } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/ShardingSphereSchema.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/ShardingSphereSchema.java deleted file mode 100644 index 9dc6eb1491..0000000000 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/ShardingSphereSchema.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.shardingsphere.infra.metadata.schema.model; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; - -/** - * ShardingSphere schema. - */ -@RequiredArgsConstructor -@Getter -public final class ShardingSphereSchema { - - private final PhysicalSchemaMetaData schemaMetaData; -} diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java index 7cb1406b57..d456beba98 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import java.sql.SQLException; @@ -41,5 +41,5 @@ public interface MetaDataRefreshStrategy { * @param callback callback * @throws SQLException SQL exception */ - void refreshMetaData(PhysicalSchemaMetaData schema, DatabaseType databaseType, Collection routeDataSourceNames, T sqlStatement, TableMetaDataLoaderCallback callback) throws SQLException; + void refreshMetaData(ShardingSphereSchema schema, DatabaseType databaseType, Collection routeDataSourceNames, T sqlStatement, TableMetaDataLoaderCallback callback) throws SQLException; } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java index 2ce0337f8c..81bff9626a 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement; @@ -32,7 +32,7 @@ import java.util.Collection; public final class AlterTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final AlterTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException { String tableName = sqlStatement.getTable().getTableName().getIdentifier().getValue(); if (null != schema && schema.containsTable(tableName)) { diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java index bbc5e7970e..6d10359f8b 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement; @@ -32,7 +32,7 @@ import java.util.Collection; public final class CreateIndexStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final CreateIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) { if (null == sqlStatement.getIndex()) { return; diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java index 50bb6cf2b7..c631af7e93 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; @@ -34,7 +34,7 @@ import java.util.Optional; public final class CreateTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final CreateTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException { String tableName = sqlStatement.getTable().getTableName().getIdentifier().getValue(); Optional tableMetaData = callback.load(tableName); diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java index 8c195eec56..24573ecfdf 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; @@ -32,7 +32,7 @@ import java.util.Collection; public final class CreateViewStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final CreateViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) { String viewName = sqlStatement.getView().getTableName().getIdentifier().getValue(); schema.put(viewName, new PhysicalTableMetaData()); diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java index 64210ae549..c7423a87e8 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; @@ -37,7 +37,7 @@ import java.util.stream.Collectors; public final class DropIndexStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final DropIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) { Collection indexNames = getIndexNames(sqlStatement); Optional simpleTableSegment = DropIndexStatementHandler.getSimpleTableSegment(sqlStatement); @@ -57,7 +57,7 @@ public final class DropIndexStatementMetaDataRefreshStrategy implements MetaData return dropIndexStatement.getIndexes().stream().map(each -> each.getIdentifier().getValue()).collect(Collectors.toCollection(LinkedList::new)); } - private Optional findLogicTableName(final PhysicalSchemaMetaData schemaMetaData, final String logicIndexName) { - return schemaMetaData.getAllTableNames().stream().filter(each -> schemaMetaData.get(each).getIndexes().containsKey(logicIndexName)).findFirst(); + private Optional findLogicTableName(final ShardingSphereSchema schema, final String logicIndexName) { + return schema.getAllTableNames().stream().filter(each -> schema.get(each).getIndexes().containsKey(logicIndexName)).findFirst(); } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java index 1768aaf48a..8ed85fb025 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement; @@ -31,7 +31,7 @@ import java.util.Collection; public final class DropTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final DropTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) { sqlStatement.getTables().forEach(each -> schema.remove(each.getTableName().getIdentifier().getValue())); } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java index 1d96ac4f81..f8430bdaa4 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.impl; import org.apache.shardingsphere.infra.database.type.DatabaseType; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropViewStatement; @@ -31,7 +31,7 @@ import java.util.Collection; public final class DropViewStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy { @Override - public void refreshMetaData(final PhysicalSchemaMetaData schema, final DatabaseType databaseType, final Collection routeDataSourceNames, + public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection routeDataSourceNames, final DropViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) { sqlStatement.getViews().forEach(each -> schema.remove(each.getTableName().getIdentifier().getValue())); } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaMetaDataNotifier.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaMetaDataNotifier.java index e9efdc300a..f58a6761f8 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaMetaDataNotifier.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaMetaDataNotifier.java @@ -17,19 +17,19 @@ package org.apache.shardingsphere.infra.metadata.schema.refresh.spi; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.spi.ordered.OrderedSPI; /** * Schema meta data notifier. */ -public interface SchemaMetaDataNotifier extends OrderedSPI { +public interface SchemaMetaDataNotifier extends OrderedSPI { /** * Notify when schema meta data changed. * * @param name schema name - * @param metaData schema meta data + * @param schema ShardingSphere schema */ - void notify(String name, PhysicalSchemaMetaData metaData); + void notify(String name, ShardingSphereSchema schema); } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java index 91b7b185eb..aae1c82427 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.metadata.resource.CachedDatabaseMetaData; 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.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.junit.Test; @@ -39,7 +39,7 @@ public final class ShardingSphereMetaDataTest { public void assertIsComplete() { ShardingSphereResource resource = new ShardingSphereResource(Collections.singletonMap("ds", mock(DataSource.class)), mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.singleton(mock(RuleConfiguration.class)), Collections.singleton(mock(ShardingSphereRule.class))); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(ShardingSphereSchema.class)); assertTrue(metaData.isComplete()); } @@ -47,7 +47,7 @@ public final class ShardingSphereMetaDataTest { public void assertIsNotCompleteWithoutRule() { ShardingSphereResource resource = new ShardingSphereResource(Collections.singletonMap("ds", mock(DataSource.class)), mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(ShardingSphereSchema.class)); assertFalse(metaData.isComplete()); } @@ -55,7 +55,7 @@ public final class ShardingSphereMetaDataTest { public void assertIsNotCompleteWithoutDataSource() { ShardingSphereResource resource = new ShardingSphereResource(Collections.emptyMap(), mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.singleton(mock(RuleConfiguration.class)), Collections.singleton(mock(ShardingSphereRule.class))); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(PhysicalSchemaMetaData.class)); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, mock(ShardingSphereSchema.class)); assertFalse(metaData.isComplete()); } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/SchemaMetaDataTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchemaTest.java similarity index 66% rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/SchemaMetaDataTest.java rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchemaTest.java index e498c70bd1..aa74f223d4 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/SchemaMetaDataTest.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/ShardingSphereSchemaTest.java @@ -15,10 +15,12 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.metadata.schema.model.physical; +package org.apache.shardingsphere.infra.metadata.schema; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; +import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; +import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.junit.Test; import java.util.Collections; @@ -29,22 +31,22 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; -public final class SchemaMetaDataTest { +public final class ShardingSphereSchemaTest { @Test public void assertGetAllTableNames() { - assertThat(new PhysicalSchemaMetaData(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))).getAllTableNames(), is(Sets.newHashSet("tbl"))); + assertThat(new ShardingSphereSchema(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))).getAllTableNames(), is(Sets.newHashSet("tbl"))); } @Test public void assertGet() { PhysicalTableMetaData tableMetaData = mock(PhysicalTableMetaData.class); - assertThat(new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)).get("tbl"), is(tableMetaData)); + assertThat(new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)).get("tbl"), is(tableMetaData)); } @Test public void assertPut() { - PhysicalSchemaMetaData actual = new PhysicalSchemaMetaData(Collections.emptyMap()); + ShardingSphereSchema actual = new ShardingSphereSchema(Collections.emptyMap()); PhysicalTableMetaData tableMetaData = mock(PhysicalTableMetaData.class); actual.put("tbl", tableMetaData); assertThat(actual.get("tbl"), is(tableMetaData)); @@ -52,31 +54,31 @@ public final class SchemaMetaDataTest { @Test public void assertRemove() { - PhysicalSchemaMetaData actual = new PhysicalSchemaMetaData(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))); + ShardingSphereSchema actual = new ShardingSphereSchema(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))); actual.remove("tbl"); assertNull(actual.get("tbl")); } @Test public void assertContainsTable() { - assertTrue(new PhysicalSchemaMetaData(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))).containsTable("tbl")); + assertTrue(new ShardingSphereSchema(ImmutableMap.of("tbl", mock(PhysicalTableMetaData.class))).containsTable("tbl")); } @Test public void assertContainsColumn() { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("col", 0, "dataType", false, false, false)), Collections.emptyList()); - assertTrue(new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)).containsColumn("tbl", "col")); + assertTrue(new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)).containsColumn("tbl", "col")); } @Test public void assertGetAllColumnNamesWhenContainsKey() { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("col", 0, "dataType", false, false, false)), Collections.emptyList()); - assertThat(new PhysicalSchemaMetaData(ImmutableMap.of("tbl", tableMetaData)).getAllColumnNames("tbl"), is(Collections.singletonList("col"))); + assertThat(new ShardingSphereSchema(ImmutableMap.of("tbl", tableMetaData)).getAllColumnNames("tbl"), is(Collections.singletonList("col"))); } @Test public void assertGetAllColumnNamesWhenNotContainsKey() { PhysicalTableMetaData tableMetaData = new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("col", 0, "dataType", false, false, false)), Collections.emptyList()); - assertThat(new PhysicalSchemaMetaData(ImmutableMap.of("tbl1", tableMetaData)).getAllColumnNames("tbl2"), is(Collections.emptyList())); + assertThat(new ShardingSphereSchema(ImmutableMap.of("tbl1", tableMetaData)).getAllColumnNames("tbl2"), is(Collections.emptyList())); } } diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java index d91ab50a41..ece1e94a01 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.metadata.schema.fixture.rule.CommonFixtureRule; import org.apache.shardingsphere.infra.metadata.schema.fixture.rule.DataNodeContainedFixtureRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; @@ -51,12 +51,12 @@ public final class SchemaMetaDataLoaderTest { @Test public void assertLoadFullDatabases() throws SQLException { - PhysicalSchemaMetaData actual = SchemaMetaDataLoader.load( + ShardingSphereSchema actual = SchemaMetaDataLoader.load( databaseType, Collections.singletonMap("logic_db", dataSource), Arrays.asList(new CommonFixtureRule(), new DataNodeContainedFixtureRule()), props); - assertPhysicalSchemaMetaData(actual); + assertSchema(actual); } - private void assertPhysicalSchemaMetaData(final PhysicalSchemaMetaData actual) { + private void assertSchema(final ShardingSphereSchema actual) { assertThat(actual.getAllTableNames().size(), is(2)); assertTrue(actual.containsTable("data_node_routed_table_0")); assertTrue(actual.get("data_node_routed_table_0").getColumns().containsKey("id")); diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java index 2832ba94e1..20329fad74 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java @@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableMap; import lombok.Getter; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.junit.Before; @@ -30,15 +30,15 @@ import java.util.Collections; @Getter public abstract class AbstractMetaDataRefreshStrategyTest { - private PhysicalSchemaMetaData schema; + private ShardingSphereSchema schema; @Before public void setUp() { schema = buildSchema(); } - private PhysicalSchemaMetaData buildSchema() { - return new PhysicalSchemaMetaData(ImmutableMap.of("t_order", new PhysicalTableMetaData( + private ShardingSphereSchema buildSchema() { + return new ShardingSphereSchema(ImmutableMap.of("t_order", new PhysicalTableMetaData( Collections.singletonList(new PhysicalColumnMetaData("order_id", 1, "String", false, false, false)), Collections.singletonList(new PhysicalIndexMetaData("index"))))); } } diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/schema/SchemaContextsBuilder.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/schema/SchemaContextsBuilder.java index 4ad8dd5e25..4627d0ad51 100644 --- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/schema/SchemaContextsBuilder.java +++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/schema/SchemaContextsBuilder.java @@ -32,7 +32,7 @@ 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.loader.SchemaMetaDataLoader; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.rule.builder.ShardingSphereRulesBuilder; @@ -129,9 +129,9 @@ public final class SchemaContextsBuilder { } } - private PhysicalSchemaMetaData buildSchema(final String schemaName, final Map dataSourceMap, final Collection rules) throws SQLException { + private ShardingSphereSchema buildSchema(final String schemaName, final Map dataSourceMap, final Collection rules) throws SQLException { long start = System.currentTimeMillis(); - PhysicalSchemaMetaData result = SchemaMetaDataLoader.load(databaseType, dataSourceMap, rules, props); + ShardingSphereSchema result = SchemaMetaDataLoader.load(databaseType, dataSourceMap, rules, props); log.info("Load meta data for schema {} finished, cost {} milliseconds.", schemaName, System.currentTimeMillis() - start); return result; } diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java index eeb5522c01..1530f7c81a 100644 --- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java +++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java @@ -22,7 +22,7 @@ import lombok.NoArgsConstructor; import org.apache.shardingsphere.infra.binder.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteResult; import org.apache.shardingsphere.infra.rewrite.engine.result.RouteSQLRewriteResult; @@ -65,7 +65,7 @@ public final class ExecutionContextBuilder { new SQLUnit(sqlRewriteResult.getSqlRewriteUnit().getSql(), sqlRewriteResult.getSqlRewriteUnit().getParameters(), getSQLRuntimeContext(metaData.getSchema(), sqlStatementContext)))); } - private static Collection build(final PhysicalSchemaMetaData schema, final RouteSQLRewriteResult sqlRewriteResult) { + private static Collection build(final ShardingSphereSchema schema, final RouteSQLRewriteResult sqlRewriteResult) { Collection result = new LinkedHashSet<>(); for (Entry entry : sqlRewriteResult.getSqlRewriteUnits().entrySet()) { Collection tableMappers = entry.getKey().getTableMappers(); @@ -75,11 +75,11 @@ public final class ExecutionContextBuilder { return result; } - private static SQLRuntimeContext getSQLRuntimeContext(final PhysicalSchemaMetaData schema, final SQLStatementContext sqlStatementContext) { + private static SQLRuntimeContext getSQLRuntimeContext(final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext) { return new SQLRuntimeContext(getLogicTableNames(sqlStatementContext), getActualTableNames(sqlStatementContext), getPrimaryKeyColumns(schema, sqlStatementContext)); } - private static SQLRuntimeContext getSQLRuntimeContext(final PhysicalSchemaMetaData schema, final Collection tableMappers) { + private static SQLRuntimeContext getSQLRuntimeContext(final ShardingSphereSchema schema, final Collection tableMappers) { return new SQLRuntimeContext(getLogicTableNames(tableMappers), getActualTableNames(tableMappers), getPrimaryKeyColumns(schema, tableMappers)); } @@ -110,15 +110,15 @@ public final class ExecutionContextBuilder { return null == tablesContext ? Collections.emptyList() : new ArrayList<>(tablesContext.getTableNames()); } - private static List getPrimaryKeyColumns(final PhysicalSchemaMetaData schema, final SQLStatementContext sqlStatementContext) { + private static List getPrimaryKeyColumns(final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext) { return getPrimaryKeyColumns(schema, getActualTableNames(sqlStatementContext)); } - private static List getPrimaryKeyColumns(final PhysicalSchemaMetaData schema, final Collection tableMappers) { + private static List getPrimaryKeyColumns(final ShardingSphereSchema schema, final Collection tableMappers) { return getPrimaryKeyColumns(schema, getLogicTableNames(tableMappers)); } - private static List getPrimaryKeyColumns(final PhysicalSchemaMetaData schema, final List actualTableNames) { + private static List getPrimaryKeyColumns(final ShardingSphereSchema schema, final List actualTableNames) { List result = new LinkedList<>(); for (String each: actualTableNames) { PhysicalTableMetaData tableMetaData = schema.get(each); diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java index f1c03963a6..b1f27f6db5 100644 --- a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java +++ b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java @@ -24,7 +24,7 @@ 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.model.physical.PhysicalColumnMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteResult; import org.apache.shardingsphere.infra.rewrite.engine.result.RouteSQLRewriteResult; @@ -59,7 +59,7 @@ public final class ExecutionContextBuilderTest { when(dataSourcesMetaData.getAllInstanceDataSourceNames()).thenReturn(Arrays.asList(firstDataSourceName, "lastDataSourceName")); ShardingSphereResource resource = new ShardingSphereResource(Collections.emptyMap(), dataSourcesMetaData, mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildPhysicalSchemaMetaData()); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildSchema()); Collection actual = ExecutionContextBuilder.build(metaData, genericSQLRewriteResult, mock(SQLStatementContext.class)); Collection expected = Collections.singletonList(new ExecutionUnit(firstDataSourceName, new SQLUnit(sql, parameters))); assertThat(actual, is(expected)); @@ -76,7 +76,7 @@ public final class ExecutionContextBuilderTest { sqlRewriteUnits.put(routeUnit2, sqlRewriteUnit2); ShardingSphereResource resource = new ShardingSphereResource(Collections.emptyMap(), mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildPhysicalSchemaMetaData()); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildSchema()); Collection actual = ExecutionContextBuilder.build(metaData, new RouteSQLRewriteResult(sqlRewriteUnits), mock(SQLStatementContext.class)); ExecutionUnit expectedUnit1 = new ExecutionUnit("actualName1", new SQLUnit("sql1", Collections.singletonList("parameter1"))); ExecutionUnit expectedUnit2 = new ExecutionUnit("actualName2", new SQLUnit("sql2", Collections.singletonList("parameter2"))); @@ -95,7 +95,7 @@ public final class ExecutionContextBuilderTest { sqlRewriteUnits.put(routeUnit2, sqlRewriteUnit2); ShardingSphereResource resource = new ShardingSphereResource(Collections.emptyMap(), mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class)); ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()); - ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildPhysicalSchemaMetaDataWithoutPrimaryKey()); + ShardingSphereMetaData metaData = new ShardingSphereMetaData("name", resource, ruleMetaData, buildSchemaWithoutPrimaryKey()); Collection actual = ExecutionContextBuilder.build(metaData, new RouteSQLRewriteResult(sqlRewriteUnits), mock(SQLStatementContext.class)); ExecutionUnit expectedUnit2 = new ExecutionUnit("actualName2", new SQLUnit("sql2", Collections.singletonList("parameter2"))); Collection expected = new LinkedHashSet<>(1, 1); @@ -104,16 +104,16 @@ public final class ExecutionContextBuilderTest { assertThat(actual.iterator().next().getSqlUnit().getSqlRuntimeContext().getPrimaryKeysMetaData().size(), is(0)); } - private PhysicalSchemaMetaData buildPhysicalSchemaMetaDataWithoutPrimaryKey() { + private ShardingSphereSchema buildSchemaWithoutPrimaryKey() { Map tableMetaDataMap = new HashMap<>(3, 1); tableMetaDataMap.put("logicName1", new PhysicalTableMetaData(Arrays.asList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false), new PhysicalColumnMetaData("user_id", Types.INTEGER, "int", false, false, false), new PhysicalColumnMetaData("status", Types.INTEGER, "int", false, false, false)), Collections.emptySet())); tableMetaDataMap.put("t_other", new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false)), Collections.emptySet())); - return new PhysicalSchemaMetaData(tableMetaDataMap); + return new ShardingSphereSchema(tableMetaDataMap); } - private PhysicalSchemaMetaData buildPhysicalSchemaMetaData() { + private ShardingSphereSchema buildSchema() { Map tableMetaDataMap = new HashMap<>(3, 1); tableMetaDataMap.put("logicName1", new PhysicalTableMetaData(Arrays.asList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false), new PhysicalColumnMetaData("user_id", Types.INTEGER, "int", false, false, false), @@ -124,6 +124,6 @@ public final class ExecutionContextBuilderTest { new PhysicalColumnMetaData("status", Types.VARCHAR, "varchar", false, false, false), new PhysicalColumnMetaData("c_date", Types.TIMESTAMP, "timestamp", false, false, false)), Collections.emptySet())); tableMetaDataMap.put("t_other", new PhysicalTableMetaData(Collections.singletonList(new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false)), Collections.emptySet())); - return new PhysicalSchemaMetaData(tableMetaDataMap); + return new ShardingSphereSchema(tableMetaDataMap); } } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java index 7013f54ae6..e179529efb 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java @@ -30,7 +30,7 @@ import org.apache.shardingsphere.infra.merge.result.impl.transparent.Transparent import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader; import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.sql.SQLException; @@ -51,16 +51,16 @@ public final class MergeEngine { private final DatabaseType databaseType; - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final ConfigurationProperties props; @SuppressWarnings("rawtypes") private final Map engines; - public MergeEngine(final DatabaseType databaseType, final PhysicalSchemaMetaData schemaMetaData, final ConfigurationProperties props, final Collection rules) { + public MergeEngine(final DatabaseType databaseType, final ShardingSphereSchema schema, final ConfigurationProperties props, final Collection rules) { this.databaseType = databaseType; - this.schemaMetaData = schemaMetaData; + this.schema = schema; this.props = props; engines = OrderedSPIRegistry.getRegisteredServices(rules, ResultProcessEngine.class); } @@ -84,7 +84,7 @@ public final class MergeEngine { for (Entry entry : engines.entrySet()) { if (entry.getValue() instanceof ResultMergerEngine) { ResultMerger resultMerger = ((ResultMergerEngine) entry.getValue()).newInstance(databaseType, entry.getKey(), props, sqlStatementContext); - return Optional.of(resultMerger.merge(queryResults, sqlStatementContext, schemaMetaData)); + return Optional.of(resultMerger.merge(queryResults, sqlStatementContext, schema)); } } return Optional.empty(); @@ -95,8 +95,8 @@ public final class MergeEngine { MergedResult result = null; for (Entry entry : engines.entrySet()) { if (entry.getValue() instanceof ResultDecoratorEngine) { - ResultDecorator resultDecorator = ((ResultDecoratorEngine) entry.getValue()).newInstance(databaseType, schemaMetaData, entry.getKey(), props, sqlStatementContext); - result = null == result ? resultDecorator.decorate(mergedResult, sqlStatementContext, schemaMetaData) : resultDecorator.decorate(result, sqlStatementContext, schemaMetaData); + ResultDecorator resultDecorator = ((ResultDecoratorEngine) entry.getValue()).newInstance(databaseType, schema, entry.getKey(), props, sqlStatementContext); + result = null == result ? resultDecorator.decorate(mergedResult, sqlStatementContext, schema) : resultDecorator.decorate(result, sqlStatementContext, schema); } } return null == result ? mergedResult : result; @@ -107,8 +107,8 @@ public final class MergeEngine { MergedResult result = null; for (Entry entry : engines.entrySet()) { if (entry.getValue() instanceof ResultDecoratorEngine) { - ResultDecorator resultDecorator = ((ResultDecoratorEngine) entry.getValue()).newInstance(databaseType, schemaMetaData, entry.getKey(), props, sqlStatementContext); - result = null == result ? resultDecorator.decorate(queryResult, sqlStatementContext, schemaMetaData) : resultDecorator.decorate(result, sqlStatementContext, schemaMetaData); + ResultDecorator resultDecorator = ((ResultDecoratorEngine) entry.getValue()).newInstance(databaseType, schema, entry.getKey(), props, sqlStatementContext); + result = null == result ? resultDecorator.decorate(queryResult, sqlStatementContext, schema) : resultDecorator.decorate(result, sqlStatementContext, schema); } } return Optional.ofNullable(result); diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java index 092ea3cb99..91072662c3 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.merge.engine.decorator; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.sql.SQLException; @@ -34,20 +34,20 @@ public interface ResultDecorator { * * @param queryResult query result * @param sqlStatementContext SQL statement context - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema * @return merged result * @throws SQLException SQL exception */ - MergedResult decorate(QueryResult queryResult, SQLStatementContext sqlStatementContext, PhysicalSchemaMetaData schemaMetaData) throws SQLException; + MergedResult decorate(QueryResult queryResult, SQLStatementContext sqlStatementContext, ShardingSphereSchema schema) throws SQLException; /** * Decorate merged result. * * @param mergedResult merged result * @param sqlStatementContext SQL statement context - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema * @return merged result * @throws SQLException SQL exception */ - MergedResult decorate(MergedResult mergedResult, SQLStatementContext sqlStatementContext, PhysicalSchemaMetaData schemaMetaData) throws SQLException; + MergedResult decorate(MergedResult mergedResult, SQLStatementContext sqlStatementContext, ShardingSphereSchema schema) throws SQLException; } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java index 0003a9ac04..3fd651d3b1 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecoratorEngine.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.merge.engine.ResultProcessEngine; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; /** @@ -35,11 +35,11 @@ public interface ResultDecoratorEngine extends Res * Create new instance of result decorator. * * @param databaseType database type - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema * @param rule rule * @param props ShardingSphere properties * @param sqlStatementContext SQL statement context * @return new instance of result decorator */ - ResultDecorator newInstance(DatabaseType databaseType, PhysicalSchemaMetaData schemaMetaData, T rule, ConfigurationProperties props, SQLStatementContext sqlStatementContext); + ResultDecorator newInstance(DatabaseType databaseType, ShardingSphereSchema schema, T rule, ConfigurationProperties props, SQLStatementContext sqlStatementContext); } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java index 114efb4f76..843751f05c 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; /** @@ -30,12 +30,12 @@ import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; public final class TransparentResultDecorator implements ResultDecorator { @Override - public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return new TransparentMergedResult(queryResult); } @Override - public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return mergedResult; } } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/ResultMerger.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/ResultMerger.java index ebdc48ad29..3ac2ede16b 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/ResultMerger.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/ResultMerger.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.infra.merge.engine.merger; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; @@ -35,9 +35,9 @@ public interface ResultMerger { * * @param queryResults query results * @param sqlStatementContext SQL statement context - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema * @return merged result * @throws SQLException SQL exception */ - MergedResult merge(List queryResults, SQLStatementContext sqlStatementContext, PhysicalSchemaMetaData schemaMetaData) throws SQLException; + MergedResult merge(List queryResults, SQLStatementContext sqlStatementContext, ShardingSphereSchema schema) throws SQLException; } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMerger.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMerger.java index 230815cd7b..3023104358 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMerger.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMerger.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.engine.merger.ResultMerger; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.util.List; @@ -32,7 +32,7 @@ import java.util.List; public final class TransparentResultMerger implements ResultMerger { @Override - public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) { + public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) { return new TransparentMergedResult(queryResults.get(0)); } } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/memory/MemoryMergedResult.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/memory/MemoryMergedResult.java index 990422b2ee..1df5a2f000 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/memory/MemoryMergedResult.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/result/impl/memory/MemoryMergedResult.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.merge.result.impl.memory; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.io.InputStream; @@ -47,15 +47,15 @@ public abstract class MemoryMergedResult implement private boolean wasNull; - protected MemoryMergedResult(final T rule, final PhysicalSchemaMetaData schemaMetaData, final SQLStatementContext sqlStatementContext, final List queryResults) throws SQLException { - List memoryQueryResultRowList = init(rule, schemaMetaData, sqlStatementContext, queryResults); + protected MemoryMergedResult(final T rule, final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext, final List queryResults) throws SQLException { + List memoryQueryResultRowList = init(rule, schema, sqlStatementContext, queryResults); memoryResultSetRows = memoryQueryResultRowList.iterator(); if (!memoryQueryResultRowList.isEmpty()) { currentResultSetRow = memoryQueryResultRowList.get(0); } } - protected abstract List init(T rule, PhysicalSchemaMetaData schemaMetaData, SQLStatementContext sqlStatementContext, List queryResults) throws SQLException; + protected abstract List init(T rule, ShardingSphereSchema schema, SQLStatementContext sqlStatementContext, List queryResults) throws SQLException; @Override public final boolean next() { diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/MergeEngineTest.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/MergeEngineTest.java index b4ec9ab7d4..372eed5c78 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/MergeEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/MergeEngineTest.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.merge.fixture.rule.DecoratorRuleFixture; import org.apache.shardingsphere.infra.merge.fixture.rule.IndependentRuleFixture; import org.apache.shardingsphere.infra.merge.fixture.rule.MergerRuleFixture; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; import org.junit.runner.RunWith; @@ -46,7 +46,7 @@ public final class MergeEngineTest { private DatabaseType databaseType; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private ConfigurationProperties props; @@ -60,28 +60,28 @@ public final class MergeEngineTest { @Test public void assertMergeWithIndependentRule() throws SQLException { when(queryResult.getValue(1, String.class)).thenReturn("test"); - MergeEngine mergeEngine = new MergeEngine(databaseType, schemaMetaData, props, Collections.singletonList(new IndependentRuleFixture())); + MergeEngine mergeEngine = new MergeEngine(databaseType, schema, props, Collections.singletonList(new IndependentRuleFixture())); MergedResult actual = mergeEngine.merge(Collections.singletonList(queryResult), sqlStatementContext); assertThat(actual.getValue(1, String.class), is("test")); } @Test public void assertMergeWithMergerRuleOnly() throws SQLException { - MergeEngine mergeEngine = new MergeEngine(databaseType, schemaMetaData, props, Collections.singletonList(new MergerRuleFixture())); + MergeEngine mergeEngine = new MergeEngine(databaseType, schema, props, Collections.singletonList(new MergerRuleFixture())); MergedResult actual = mergeEngine.merge(Collections.singletonList(queryResult), sqlStatementContext); assertThat(actual.getValue(1, String.class), is("merged_value")); } @Test public void assertMergeWithDecoratorRuleOnly() throws SQLException { - MergeEngine mergeEngine = new MergeEngine(databaseType, schemaMetaData, props, Collections.singletonList(new DecoratorRuleFixture())); + MergeEngine mergeEngine = new MergeEngine(databaseType, schema, props, Collections.singletonList(new DecoratorRuleFixture())); MergedResult actual = mergeEngine.merge(Collections.singletonList(queryResult), sqlStatementContext); assertThat(actual.getValue(1, String.class), is("decorated_value")); } @Test public void assertMergeWithMergerRuleAndDecoratorRuleTogether() throws SQLException { - MergeEngine mergeEngine = new MergeEngine(databaseType, schemaMetaData, props, Arrays.asList(new MergerRuleFixture(), new DecoratorRuleFixture())); + MergeEngine mergeEngine = new MergeEngine(databaseType, schema, props, Arrays.asList(new MergerRuleFixture(), new DecoratorRuleFixture())); MergedResult actual = mergeEngine.merge(Collections.singletonList(queryResult), sqlStatementContext); assertThat(actual.getValue(1, String.class), is("decorated_merged_value")); } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecoratorTest.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecoratorTest.java index 854823364f..aa9a957a73 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecoratorTest.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecoratorTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.merge.engine.decorator.impl; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; @@ -36,7 +36,7 @@ public final class TransparentResultDecoratorTest { QueryResult queryResult = mock(QueryResult.class); when(queryResult.next()).thenReturn(true); TransparentResultDecorator decorator = new TransparentResultDecorator(); - MergedResult actual = decorator.decorate(queryResult, mock(SQLStatementContext.class), mock(PhysicalSchemaMetaData.class)); + MergedResult actual = decorator.decorate(queryResult, mock(SQLStatementContext.class), mock(ShardingSphereSchema.class)); assertTrue(actual.next()); } @@ -45,7 +45,7 @@ public final class TransparentResultDecoratorTest { MergedResult mergedResult = mock(MergedResult.class); when(mergedResult.next()).thenReturn(true); TransparentResultDecorator decorator = new TransparentResultDecorator(); - MergedResult actual = decorator.decorate(mergedResult, mock(SQLStatementContext.class), mock(PhysicalSchemaMetaData.class)); + MergedResult actual = decorator.decorate(mergedResult, mock(SQLStatementContext.class), mock(ShardingSphereSchema.class)); assertTrue(actual.next()); } } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMergerTest.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMergerTest.java index d108f6d203..414d8a7554 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMergerTest.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/engine/merger/impl/TransparentResultMergerTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.merge.engine.merger.impl; import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; @@ -37,7 +37,7 @@ public final class TransparentResultMergerTest { QueryResult queryResult = mock(QueryResult.class); when(queryResult.next()).thenReturn(true); TransparentResultMerger merger = new TransparentResultMerger(); - MergedResult actual = merger.merge(Collections.singletonList(queryResult), mock(SQLStatementContext.class), mock(PhysicalSchemaMetaData.class)); + MergedResult actual = merger.merge(Collections.singletonList(queryResult), mock(SQLStatementContext.class), mock(ShardingSphereSchema.class)); assertTrue(actual.next()); } } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java index a405568391..08acda111c 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorEngineFixture.java @@ -22,13 +22,13 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecoratorEngine; import org.apache.shardingsphere.infra.merge.fixture.rule.DecoratorRuleFixture; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; public final class ResultDecoratorEngineFixture implements ResultDecoratorEngine { @Override - public ResultDecorator newInstance(final DatabaseType databaseType, final PhysicalSchemaMetaData schemaMetaData, + public ResultDecorator newInstance(final DatabaseType databaseType, final ShardingSphereSchema schema, final DecoratorRuleFixture rule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) { return new ResultDecoratorFixture(); } diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorFixture.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorFixture.java index 383509fd74..ac84ac161b 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorFixture.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/decorator/ResultDecoratorFixture.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.queryresult.S import org.apache.shardingsphere.infra.merge.engine.decorator.ResultDecorator; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.sql.ResultSet; @@ -34,14 +34,14 @@ import static org.mockito.Mockito.when; public final class ResultDecoratorFixture implements ResultDecorator { @Override - public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) throws SQLException { ResultSet resultSet = mock(ResultSet.class); when(resultSet.getString(1)).thenReturn("decorated_value"); return new TransparentMergedResult(new StreamQueryResult(resultSet)); } @Override - public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) throws SQLException { ResultSet resultSet = mock(ResultSet.class); when(resultSet.getString(1)).thenReturn("decorated_merged_value"); return new TransparentMergedResult(new StreamQueryResult(resultSet)); diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/merger/ResultMergerFixture.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/merger/ResultMergerFixture.java index dadc92c534..046b313da3 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/merger/ResultMergerFixture.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/fixture/merger/ResultMergerFixture.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.queryresult.S import org.apache.shardingsphere.infra.merge.engine.merger.ResultMerger; import org.apache.shardingsphere.infra.merge.result.MergedResult; import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.sql.ResultSet; @@ -35,7 +35,7 @@ import static org.mockito.Mockito.when; public final class ResultMergerFixture implements ResultMerger { @Override - public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final PhysicalSchemaMetaData schemaMetaData) throws SQLException { + public MergedResult merge(final List queryResults, final SQLStatementContext sqlStatementContext, final ShardingSphereSchema schema) throws SQLException { ResultSet resultSet = mock(ResultSet.class); when(resultSet.getString(1)).thenReturn("merged_value"); QueryResult queryResult = new StreamQueryResult(resultSet); diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/result/impl/memory/fixture/TestMemoryMergedResult.java b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/result/impl/memory/fixture/TestMemoryMergedResult.java index 2d01d98c4e..7e7107f528 100644 --- a/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/result/impl/memory/fixture/TestMemoryMergedResult.java +++ b/shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/result/impl/memory/fixture/TestMemoryMergedResult.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.executor.sql.QueryResult; import org.apache.shardingsphere.infra.merge.fixture.rule.IndependentRuleFixture; import org.apache.shardingsphere.infra.merge.result.impl.memory.MemoryMergedResult; import org.apache.shardingsphere.infra.merge.result.impl.memory.MemoryQueryResultRow; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.sql.SQLException; @@ -42,7 +42,7 @@ public final class TestMemoryMergedResult extends MemoryMergedResult init(final IndependentRuleFixture rule, - final PhysicalSchemaMetaData schemaMetaData, final SQLStatementContext sqlStatementContext, final List queryResults) { + final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext, final List queryResults) { memoryQueryResultRow = mock(MemoryQueryResultRow.class); return Collections.singletonList(memoryQueryResultRow); } diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntry.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntry.java index 312b6afb3a..0dd00e538f 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntry.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntry.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader; import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.util.Collection; @@ -43,15 +43,15 @@ public final class SQLRewriteEntry { ShardingSphereServiceLoader.register(SQLRewriteContextDecorator.class); } - private final PhysicalSchemaMetaData metaData; + private final ShardingSphereSchema schema; private final ConfigurationProperties props; @SuppressWarnings("rawtypes") private final Map decorators; - public SQLRewriteEntry(final PhysicalSchemaMetaData metaData, final ConfigurationProperties props, final Collection rules) { - this.metaData = metaData; + public SQLRewriteEntry(final ShardingSphereSchema schema, final ConfigurationProperties props, final Collection rules) { + this.schema = schema; this.props = props; decorators = OrderedSPIRegistry.getRegisteredServices(rules, SQLRewriteContextDecorator.class); } @@ -72,7 +72,7 @@ public final class SQLRewriteEntry { } private SQLRewriteContext createSQLRewriteContext(final String sql, final List parameters, final SQLStatementContext sqlStatementContext, final RouteContext routeContext) { - SQLRewriteContext result = new SQLRewriteContext(metaData, sqlStatementContext, sql, parameters); + SQLRewriteContext result = new SQLRewriteContext(schema, sqlStatementContext, sql, parameters); decorate(decorators, result, routeContext); result.generateSQLTokens(); return result; diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java index 8dc265f0a5..0a1adeb8f2 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java @@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.rewrite.sql.token.generator.SQLTokenGener import org.apache.shardingsphere.infra.rewrite.sql.token.generator.SQLTokenGenerators; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.builder.DefaultTokenGeneratorBuilder; import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; @@ -40,7 +40,7 @@ import java.util.List; @Getter public final class SQLRewriteContext { - private final PhysicalSchemaMetaData schemaMetaData; + private final ShardingSphereSchema schema; private final SQLStatementContext sqlStatementContext; @@ -55,8 +55,8 @@ public final class SQLRewriteContext { @Getter(AccessLevel.NONE) private final SQLTokenGenerators sqlTokenGenerators = new SQLTokenGenerators(); - public SQLRewriteContext(final PhysicalSchemaMetaData schemaMetaData, final SQLStatementContext sqlStatementContext, final String sql, final List parameters) { - this.schemaMetaData = schemaMetaData; + public SQLRewriteContext(final ShardingSphereSchema schema, final SQLStatementContext sqlStatementContext, final String sql, final List parameters) { + this.schema = schema; this.sqlStatementContext = sqlStatementContext; this.sql = sql; this.parameters = parameters; @@ -80,6 +80,6 @@ public final class SQLRewriteContext { * Generate SQL tokens. */ public void generateSQLTokens() { - sqlTokens.addAll(sqlTokenGenerators.generateSQLTokens(sqlStatementContext, parameters, schemaMetaData)); + sqlTokens.addAll(sqlTokenGenerators.generateSQLTokens(sqlStatementContext, parameters, schema)); } } diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/rewriter/ParameterRewriterBuilder.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/rewriter/ParameterRewriterBuilder.java index 5c3ebf38ba..e79ea1363a 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/rewriter/ParameterRewriterBuilder.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/rewriter/ParameterRewriterBuilder.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.infra.rewrite.parameter.rewriter; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import java.util.Collection; @@ -29,8 +29,8 @@ public interface ParameterRewriterBuilder { /** * Get parameter rewriters. * - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema * @return parameter rewriters */ - Collection getParameterRewriters(PhysicalSchemaMetaData schemaMetaData); + Collection getParameterRewriters(ShardingSphereSchema schema); } diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/SQLTokenGenerators.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/SQLTokenGenerators.java index 450ee6da60..6f5e8b15c2 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/SQLTokenGenerators.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/SQLTokenGenerators.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.Paramet import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.PreviousSQLTokensAware; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware; import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import java.util.Collection; @@ -62,14 +62,14 @@ public final class SQLTokenGenerators { * * @param sqlStatementContext SQL statement context * @param parameters SQL parameters - * @param schemaMetaData schema meta data + * @param schema sShardingSphere schema * @return SQL tokens */ @SuppressWarnings("unchecked") - public List generateSQLTokens(final SQLStatementContext sqlStatementContext, final List parameters, final PhysicalSchemaMetaData schemaMetaData) { + public List generateSQLTokens(final SQLStatementContext sqlStatementContext, final List parameters, final ShardingSphereSchema schema) { List result = new LinkedList<>(); for (SQLTokenGenerator each : sqlTokenGenerators) { - setUpSQLTokenGenerator(each, parameters, schemaMetaData, result); + setUpSQLTokenGenerator(each, parameters, schema, result); if (!each.isGenerateSQLToken(sqlStatementContext)) { continue; } @@ -85,12 +85,12 @@ public final class SQLTokenGenerators { return result; } - private void setUpSQLTokenGenerator(final SQLTokenGenerator sqlTokenGenerator, final List parameters, final PhysicalSchemaMetaData schemaMetaData, final List previousSQLTokens) { + private void setUpSQLTokenGenerator(final SQLTokenGenerator sqlTokenGenerator, final List parameters, final ShardingSphereSchema schema, final List previousSQLTokens) { if (sqlTokenGenerator instanceof ParametersAware) { ((ParametersAware) sqlTokenGenerator).setParameters(parameters); } if (sqlTokenGenerator instanceof SchemaMetaDataAware) { - ((SchemaMetaDataAware) sqlTokenGenerator).setSchemaMetaData(schemaMetaData); + ((SchemaMetaDataAware) sqlTokenGenerator).setSchema(schema); } if (sqlTokenGenerator instanceof PreviousSQLTokensAware) { ((PreviousSQLTokensAware) sqlTokenGenerator).setPreviousSQLTokens(previousSQLTokens); diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/aware/SchemaMetaDataAware.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/aware/SchemaMetaDataAware.java index 3b2b550e20..b21b0cdc47 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/aware/SchemaMetaDataAware.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/generator/aware/SchemaMetaDataAware.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * Schema meta data aware. @@ -27,7 +27,7 @@ public interface SchemaMetaDataAware { /** * Set schema meta data. * - * @param schemaMetaData schema meta data + * @param schema schema meta data */ - void setSchemaMetaData(PhysicalSchemaMetaData schemaMetaData); + void setSchema(ShardingSphereSchema schema); } diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java index 656e3298df..eaeebec16a 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java @@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteRe import org.apache.shardingsphere.infra.rewrite.engine.result.RouteSQLRewriteResult; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteUnit; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,14 +40,14 @@ import static org.mockito.Mockito.mock; public final class SQLRewriteEntryTest { @Mock - private PhysicalSchemaMetaData metaData; + private ShardingSphereSchema schema; @Mock private ConfigurationProperties props; @Test public void assertRewriteForGenericSQLRewriteResult() { - SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(metaData, props, Collections.emptyList()); + SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(schema, props, Collections.emptyList()); RouteContext routeContext = new RouteContext(); GenericSQLRewriteResult sqlRewriteResult = (GenericSQLRewriteResult) sqlRewriteEntry.rewrite("SELECT ?", Collections.singletonList(1), mock(SQLStatementContext.class), routeContext); assertThat(sqlRewriteResult.getSqlRewriteUnit().getSql(), is("SELECT ?")); @@ -56,7 +56,7 @@ public final class SQLRewriteEntryTest { @Test public void assertRewriteForRouteSQLRewriteResult() { - SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(metaData, props, Collections.emptyList()); + SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(schema, props, Collections.emptyList()); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().addAll(Arrays.asList(mock(RouteUnit.class), mock(RouteUnit.class))); RouteSQLRewriteResult sqlRewriteResult = (RouteSQLRewriteResult) sqlRewriteEntry.rewrite("SELECT ?", Collections.singletonList(1), mock(SQLStatementContext.class), routeContext); diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContextTest.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContextTest.java index dfc86fa3e8..358c9bad5d 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContextTest.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContextTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardPa import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator; import org.apache.shardingsphere.infra.rewrite.sql.token.generator.OptionalSQLTokenGenerator; import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext; @@ -48,7 +48,7 @@ public final class SQLRewriteContextTest { private SQLStatementContext sqlStatementContext; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private SQLToken sqlToken; @@ -70,20 +70,20 @@ public final class SQLRewriteContextTest { @Test public void assertInsertStatementContext() { InsertStatementContext statementContext = mock(InsertStatementContext.class); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); assertThat(sqlRewriteContext.getParameterBuilder(), instanceOf(GroupedParameterBuilder.class)); } @Test public void assertNotInsertStatementContext() { SelectStatementContext statementContext = mock(SelectStatementContext.class); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "SELECT * FROM tbl WHERE id = ?", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "SELECT * FROM tbl WHERE id = ?", Collections.singletonList(1)); assertThat(sqlRewriteContext.getParameterBuilder(), instanceOf(StandardParameterBuilder.class)); } @Test public void assertGenerateOptionalSQLToken() { - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(schemaMetaData, sqlStatementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(schema, sqlStatementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); sqlRewriteContext.addSQLTokenGenerators(Lists.newArrayList(optionalSQLTokenGenerator)); sqlRewriteContext.generateSQLTokens(); assertFalse(sqlRewriteContext.getSqlTokens().isEmpty()); @@ -92,7 +92,7 @@ public final class SQLRewriteContextTest { @Test public void assertGenerateCollectionSQLToken() { - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(schemaMetaData, sqlStatementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(schema, sqlStatementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); sqlRewriteContext.addSQLTokenGenerators(Lists.newArrayList(collectionSQLTokenGenerator)); sqlRewriteContext.generateSQLTokens(); assertFalse(sqlRewriteContext.getSqlTokens().isEmpty()); diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngineTest.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngineTest.java index f56e335b98..6c23e84abd 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngineTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.rewrite.engine; import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext; import org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.junit.Test; @@ -34,7 +34,7 @@ public final class GenericSQLRewriteEngineTest { @Test public void assertRewrite() { GenericSQLRewriteResult actual = new GenericSQLRewriteEngine().rewrite( - new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), mock(SQLStatementContext.class), "SELECT 1", Collections.emptyList())); + new SQLRewriteContext(mock(ShardingSphereSchema.class), mock(SQLStatementContext.class), "SELECT 1", Collections.emptyList())); assertThat(actual.getSqlRewriteUnit().getSql(), is("SELECT 1")); assertThat(actual.getSqlRewriteUnit().getParameters(), is(Collections.emptyList())); } diff --git a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngineTest.java b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngineTest.java index 909a5e5946..84f84f82ca 100644 --- a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngineTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.rewrite.engine.result.RouteSQLRewriteResu import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; import org.apache.shardingsphere.infra.route.context.RouteUnit; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext; import org.junit.Test; @@ -40,7 +40,7 @@ public final class RouteSQLRewriteEngineTest { @Test public void assertRewriteWithStandardParameterBuilder() { - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), mock(SQLStatementContext.class), "SELECT ?", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), mock(SQLStatementContext.class), "SELECT ?", Collections.singletonList(1)); RouteUnit routeUnit = new RouteUnit(new RouteMapper("ds", "ds_0"), Collections.singletonList(new RouteMapper("tbl", "tbl_0"))); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().add(routeUnit); @@ -54,7 +54,7 @@ public final class RouteSQLRewriteEngineTest { public void assertRewriteWithGroupedParameterBuilderForBroadcast() { InsertStatementContext statementContext = mock(InsertStatementContext.class); when(statementContext.getGroupedParameters()).thenReturn(Collections.singletonList(Collections.singletonList(1))); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); RouteUnit routeUnit = new RouteUnit(new RouteMapper("ds", "ds_0"), Collections.singletonList(new RouteMapper("tbl", "tbl_0"))); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().add(routeUnit); @@ -68,7 +68,7 @@ public final class RouteSQLRewriteEngineTest { public void assertRewriteWithGroupedParameterBuilderForRouteWithSameDataNode() { InsertStatementContext statementContext = mock(InsertStatementContext.class); when(statementContext.getGroupedParameters()).thenReturn(Collections.singletonList(Collections.singletonList(1))); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); RouteUnit routeUnit = new RouteUnit(new RouteMapper("ds", "ds_0"), Collections.singletonList(new RouteMapper("tbl", "tbl_0"))); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().add(routeUnit); @@ -84,7 +84,7 @@ public final class RouteSQLRewriteEngineTest { public void assertRewriteWithGroupedParameterBuilderForRouteWithEmptyDataNode() { InsertStatementContext statementContext = mock(InsertStatementContext.class); when(statementContext.getGroupedParameters()).thenReturn(Collections.singletonList(Collections.singletonList(1))); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); RouteUnit routeUnit = new RouteUnit(new RouteMapper("ds", "ds_0"), Collections.singletonList(new RouteMapper("tbl", "tbl_0"))); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().add(routeUnit); @@ -99,7 +99,7 @@ public final class RouteSQLRewriteEngineTest { public void assertRewriteWithGroupedParameterBuilderForRouteWithNotSameDataNode() { InsertStatementContext statementContext = mock(InsertStatementContext.class); when(statementContext.getGroupedParameters()).thenReturn(Collections.singletonList(Collections.singletonList(1))); - SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(PhysicalSchemaMetaData.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); + SQLRewriteContext sqlRewriteContext = new SQLRewriteContext(mock(ShardingSphereSchema.class), statementContext, "INSERT INTO tbl VALUES (?)", Collections.singletonList(1)); RouteUnit routeUnit = new RouteUnit(new RouteMapper("ds", "ds_0"), Collections.singletonList(new RouteMapper("tbl", "tbl_0"))); RouteContext routeContext = new RouteContext(); routeContext.getRouteUnits().add(routeUnit); diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/RoutingHook.java b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/RoutingHook.java index 5e559ad7e0..faef8d788e 100644 --- a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/RoutingHook.java +++ b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/RoutingHook.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.infra.route.hook; import org.apache.shardingsphere.infra.route.context.RouteContext; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * Routing hook. @@ -36,9 +36,9 @@ public interface RoutingHook { * Handle when routing finished success. * * @param routeContext route context - * @param schemaMetaData schema meta data + * @param schema ShardingSphere schema */ - void finishSuccess(RouteContext routeContext, PhysicalSchemaMetaData schemaMetaData); + void finishSuccess(RouteContext routeContext, ShardingSphereSchema schema); /** * Handle when routing finished failure. diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHook.java b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHook.java index 54796fbb25..d416446a97 100644 --- a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHook.java +++ b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHook.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.route.hook; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import java.util.Collection; @@ -42,9 +42,9 @@ public final class SPIRoutingHook implements RoutingHook { } @Override - public void finishSuccess(final RouteContext routeContext, final PhysicalSchemaMetaData schemaMetaData) { + public void finishSuccess(final RouteContext routeContext, final ShardingSphereSchema schema) { for (RoutingHook each : routingHooks) { - each.finishSuccess(routeContext, schemaMetaData); + each.finishSuccess(routeContext, schema); } } diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngineTest.java b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngineTest.java index cea43fc7f0..6a8ee59109 100644 --- a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngineTest.java +++ b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/engine/SQLRouteEngineTest.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource; import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteUnit; import org.apache.shardingsphere.infra.route.fixture.rule.RouteFailureRuleFixture; @@ -49,7 +49,7 @@ import static org.mockito.Mockito.verify; public final class SQLRouteEngineTest { @Mock - private PhysicalSchemaMetaData schema; + private ShardingSphereSchema schema; @Mock private ConfigurationProperties props; diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHookTest.java b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHookTest.java index 88060041bb..d09f16d708 100644 --- a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHookTest.java +++ b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/SPIRoutingHookTest.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.route.hook; import lombok.SneakyThrows; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.hook.fixture.RoutingHookFixture; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -42,7 +42,7 @@ public final class SPIRoutingHookTest { private RouteContext routeContext; @Mock - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; @Mock private Exception exception; @@ -58,11 +58,11 @@ public final class SPIRoutingHookTest { @Test public void assertFinishSuccess() { - spiRoutingHook.finishSuccess(routeContext, schemaMetaData); + spiRoutingHook.finishSuccess(routeContext, schema); RoutingHook routingHook = getFixtureHook(); assertThat(routingHook, instanceOf(RoutingHookFixture.class)); assertThat(((RoutingHookFixture) routingHook).getRouteContext(), is(routeContext)); - assertThat(((RoutingHookFixture) routingHook).getSchemaMetaData(), is(schemaMetaData)); + assertThat(((RoutingHookFixture) routingHook).getSchema(), is(schema)); } @Test diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/fixture/RoutingHookFixture.java b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/fixture/RoutingHookFixture.java index ea1ddc611d..d30c19a5ec 100644 --- a/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/fixture/RoutingHookFixture.java +++ b/shardingsphere-infra/shardingsphere-infra-route/src/test/java/org/apache/shardingsphere/infra/route/hook/fixture/RoutingHookFixture.java @@ -18,9 +18,9 @@ package org.apache.shardingsphere.infra.route.hook.fixture; import lombok.Getter; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.hook.RoutingHook; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; @Getter public final class RoutingHookFixture implements RoutingHook { @@ -29,7 +29,7 @@ public final class RoutingHookFixture implements RoutingHook { private RouteContext routeContext; - private PhysicalSchemaMetaData schemaMetaData; + private ShardingSphereSchema schema; private Exception cause; @@ -39,9 +39,9 @@ public final class RoutingHookFixture implements RoutingHook { } @Override - public void finishSuccess(final RouteContext routeContext, final PhysicalSchemaMetaData schemaMetaData) { + public void finishSuccess(final RouteContext routeContext, final ShardingSphereSchema schema) { this.routeContext = routeContext; - this.schemaMetaData = schemaMetaData; + this.schema = schema; } @Override diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java index 720856d2cb..a7f97cacae 100644 --- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java +++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java @@ -29,7 +29,7 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.executor.SQLE import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.executor.SQLExecutorCallback; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.schema.loader.TableMetaDataLoader; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy; import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategyFactory; import org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaMetaDataNotifier; @@ -96,8 +96,8 @@ public abstract class AbstractStatementExecutor { return null != result && !result.isEmpty() && null != result.get(0) && result.get(0); } - private void notifyPersistLogicMetaData(final String schemaName, final PhysicalSchemaMetaData metaData) { - OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(metaData), SchemaMetaDataNotifier.class).values().forEach(each -> each.notify(schemaName, metaData)); + private void notifyPersistLogicMetaData(final String schemaName, final ShardingSphereSchema schema) { + OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(schema), SchemaMetaDataNotifier.class).values().forEach(each -> each.notify(schemaName, schema)); } /** diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java index 804072185c..ddcb8eecf8 100644 --- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java +++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java @@ -55,7 +55,7 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.group.Stateme import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.queryresult.StreamQueryResult; import org.apache.shardingsphere.infra.merge.MergeEngine; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.type.DataNodeContainedRule; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine; @@ -271,8 +271,8 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState private LogicSQL createLogicSQL() { List parameters = new ArrayList<>(getParameters()); - PhysicalSchemaMetaData schemaMetaData = schemaContexts.getDefaultMetaData().getSchema(); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, parameters, sqlStatement); + ShardingSphereSchema schema = schemaContexts.getDefaultMetaData().getSchema(); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schema, parameters, sqlStatement); return new LogicSQL(sqlStatementContext, sql, parameters); } diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java index 73a2e51f7e..36b2654edc 100644 --- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java +++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java @@ -53,7 +53,7 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.group.Stateme import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.queryresult.StreamQueryResult; import org.apache.shardingsphere.infra.merge.MergeEngine; import org.apache.shardingsphere.infra.merge.result.MergedResult; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.type.DataNodeContainedRule; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine; @@ -305,10 +305,10 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter { } private LogicSQL createLogicSQL(final String sql) { - PhysicalSchemaMetaData schemaMetaData = schemaContexts.getDefaultMetaData().getSchema(); + ShardingSphereSchema schema = schemaContexts.getDefaultMetaData().getSchema(); ShardingSphereSQLParserEngine sqlStatementParserEngine = new ShardingSphereSQLParserEngine(DatabaseTypeRegistry.getTrunkDatabaseTypeName(schemaContexts.getDatabaseType())); SQLStatement sqlStatement = sqlStatementParserEngine.parse(sql, false); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, Collections.emptyList(), sqlStatement); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schema, Collections.emptyList(), sqlStatement); return new LogicSQL(sqlStatementContext, sql, Collections.emptyList()); } diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/common/base/AbstractSQLTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/common/base/AbstractSQLTest.java index 56337592f4..55120d6ebe 100644 --- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/common/base/AbstractSQLTest.java +++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/common/base/AbstractSQLTest.java @@ -60,7 +60,7 @@ public abstract class AbstractSQLTest { private static void createDataSources(final String dbName, final DatabaseType databaseType) { DATABASE_TYPE_MAP.computeIfAbsent(databaseType, key -> new LinkedHashMap<>()).put(dbName, buildDataSource(dbName, databaseType)); - createSchema(dbName, databaseType); + buildSchema(dbName, databaseType); } private static BasicDataSource buildDataSource(final String dbName, final DatabaseType databaseType) { @@ -74,7 +74,7 @@ public abstract class AbstractSQLTest { return result; } - private static void createSchema(final String dbName, final DatabaseType databaseType) { + private static void buildSchema(final String dbName, final DatabaseType databaseType) { try { Connection conn = DATABASE_TYPE_MAP.get(databaseType).get(dbName).getConnection(); RunScript.execute(conn, new InputStreamReader(Objects.requireNonNull(AbstractSQLTest.class.getClassLoader().getResourceAsStream("jdbc_init.sql")))); diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaMetaDataNotifier.java b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaMetaDataNotifier.java index daa01089ef..2d3838dda3 100644 --- a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaMetaDataNotifier.java +++ b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaMetaDataNotifier.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.driver.governance.internal.metadata; import org.apache.shardingsphere.governance.core.event.GovernanceEventBus; import org.apache.shardingsphere.governance.core.event.model.persist.MetaDataPersistEvent; import org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaMetaDataNotifier; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; /** * Governance schema meta data notifier. @@ -28,8 +28,8 @@ import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSc public final class GovernanceSchemaMetaDataNotifier implements SchemaMetaDataNotifier { @Override - public void notify(final String name, final PhysicalSchemaMetaData metaData) { - GovernanceEventBus.getInstance().post(new MetaDataPersistEvent(name, metaData)); + public void notify(final String name, final ShardingSphereSchema schema) { + GovernanceEventBus.getInstance().post(new MetaDataPersistEvent(name, schema)); } @Override @@ -38,7 +38,7 @@ public final class GovernanceSchemaMetaDataNotifier implements SchemaMetaDataNot } @Override - public Class getTypeClass() { - return PhysicalSchemaMetaData.class; + public Class getTypeClass() { + return ShardingSphereSchema.class; } } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactory.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactory.java index ceb219d5c2..5a7d62a81b 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactory.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactory.java @@ -19,17 +19,16 @@ package org.apache.shardingsphere.proxy.backend.communication; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.binder.LogicSQL; +import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory; +import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; +import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.proxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine; import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection; import org.apache.shardingsphere.proxy.backend.communication.jdbc.execute.engine.jdbc.JDBCExecuteEngine; import org.apache.shardingsphere.proxy.backend.communication.jdbc.statement.accessor.impl.PreparedStatementAccessor; import org.apache.shardingsphere.proxy.backend.communication.jdbc.statement.accessor.impl.StatementAccessor; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; -import org.apache.shardingsphere.infra.binder.SQLStatementContextFactory; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; -import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import java.util.ArrayList; @@ -84,8 +83,7 @@ public final class DatabaseCommunicationEngineFactory { private LogicSQL createLogicSQL(final SQLStatement sqlStatement, final String sql, final List parameters, final BackendConnection backendConnection) { ShardingSphereMetaData metaData = ProxyContext.getInstance().getMetaData(backendConnection.getSchemaName()); - PhysicalSchemaMetaData schemaMetaData = metaData.getSchema(); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, parameters, sqlStatement); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(metaData.getSchema(), parameters, sqlStatement); return new LogicSQL(sqlStatementContext, sql, parameters); } } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java index 6c548e4e01..6a857dd2f1 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java @@ -25,8 +25,8 @@ import org.apache.shardingsphere.infra.context.kernel.KernelProcessor; import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry; import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit; import org.apache.shardingsphere.infra.executor.sql.raw.execute.result.query.QueryHeader; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; +import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine; import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; import org.apache.shardingsphere.proxy.backend.exception.NoDatabaseSelectedException; @@ -36,7 +36,6 @@ import org.apache.shardingsphere.proxy.backend.response.query.QueryData; import org.apache.shardingsphere.proxy.backend.response.query.QueryResponse; import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler; import org.apache.shardingsphere.proxy.backend.text.sctl.exception.InvalidShardingCTLFormatException; -import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import java.sql.Types; @@ -84,11 +83,10 @@ public final class ShardingCTLExplainBackendHandler implements TextProtocolBacke } private LogicSQL createLogicSQL(final ShardingSphereMetaData metaData, final ShardingCTLExplainStatement explainStatement) { - PhysicalSchemaMetaData schemaMetaData = metaData.getSchema(); ShardingSphereSQLParserEngine sqlStatementParserEngine = new ShardingSphereSQLParserEngine( DatabaseTypeRegistry.getTrunkDatabaseTypeName(ProxyContext.getInstance().getSchemaContexts().getDatabaseType())); SQLStatement sqlStatement = sqlStatementParserEngine.parse(explainStatement.getSql(), false); - SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, Collections.emptyList(), sqlStatement); + SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(metaData.getSchema(), Collections.emptyList(), sqlStatement); return new LogicSQL(sqlStatementContext, explainStatement.getSql(), Collections.emptyList()); } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/query/QueryHeaderBuilderTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/query/QueryHeaderBuilderTest.java index 1f4b4a6f44..7f90df53a0 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/query/QueryHeaderBuilderTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/query/QueryHeaderBuilderTest.java @@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalColumnMetaData; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalIndexMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.junit.Test; @@ -128,12 +128,12 @@ public final class QueryHeaderBuilderTest { private ShardingSphereMetaData createMetaData() { ShardingSphereMetaData result = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS); PhysicalColumnMetaData columnMetaData = new PhysicalColumnMetaData("order_id", Types.INTEGER, "int", true, false, false); - PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class); - when(schemaMetaData.get("t_logic_order")).thenReturn(new PhysicalTableMetaData(Collections.singletonList(columnMetaData), Collections.singletonList(new PhysicalIndexMetaData("order_id")))); + ShardingSphereSchema schema = mock(ShardingSphereSchema.class); + when(schema.get("t_logic_order")).thenReturn(new PhysicalTableMetaData(Collections.singletonList(columnMetaData), Collections.singletonList(new PhysicalIndexMetaData("order_id")))); DataSourcesMetaData dataSourcesMetaData = mock(DataSourcesMetaData.class); when(dataSourcesMetaData.getDataSourceMetaData("ds_0")).thenReturn(mock(DataSourceMetaData.class)); when(result.getResource().getDataSourcesMetaData()).thenReturn(dataSourcesMetaData); - when(result.getSchema()).thenReturn(schemaMetaData); + when(result.getSchema()).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/sctl/explain/ShardingCTLExplainBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java index a75034a213..59aa868351 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java @@ -10,7 +10,7 @@ import org.apache.shardingsphere.infra.metadata.resource.CachedDatabaseMetaData; 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.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.rule.ShardingSphereRule; import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; @@ -66,7 +66,7 @@ public final class ShardingCTLExplainBackendHandlerTest { ShardingSphereResource resource = new ShardingSphereResource( Collections.singletonMap("ds0", mock(DataSource.class)), mock(DataSourcesMetaData.class, RETURNS_DEEP_STUBS), mock(CachedDatabaseMetaData.class)); ShardingSphereMetaData metaData = new ShardingSphereMetaData("schema", - resource, new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(mock(ShardingSphereRule.class))), mock(PhysicalSchemaMetaData.class)); + resource, new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.singleton(mock(ShardingSphereRule.class))), mock(ShardingSphereSchema.class)); return Collections.singletonMap("schema", metaData); } diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java index 9ad93774f5..615a48252f 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/hint/ShardingCTLHintBackendHandlerTest.java @@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType; import org.apache.shardingsphere.infra.executor.kernel.ExecutorKernel; import org.apache.shardingsphere.infra.hint.HintManager; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; -import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalSchemaMetaData; +import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema; import org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData; import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; @@ -202,7 +202,7 @@ public final class ShardingCTLHintBackendHandlerTest { private Map getMetaDataMap() { ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class); - when(metaData.getSchema()).thenReturn(new PhysicalSchemaMetaData(ImmutableMap.of("user", mock(PhysicalTableMetaData.class)))); + when(metaData.getSchema()).thenReturn(new ShardingSphereSchema(ImmutableMap.of("user", mock(PhysicalTableMetaData.class)))); when(metaData.isComplete()).thenReturn(true); return Collections.singletonMap("schema", metaData); } -- GitLab