This is an automated email from the ASF dual-hosted git repository. zhangliang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new 7cb445b9bc6 Refactor impl of FromDatabaseAvailable (#35731) 7cb445b9bc6 is described below commit 7cb445b9bc6c0558530403c3163109625d65661b Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Tue Jun 17 12:08:31 2025 +0800 Refactor impl of FromDatabaseAvailable (#35731) * Refactor impl of FromDatabaseAvailable * Refactor impl of FromDatabaseAvailable * Refactor impl of FromDatabaseAvailable --- .../core/advice/SQLParseCountAdviceTest.java | 3 +- .../core/BroadcastDistSQLStatementVisitor.java | 5 +-- .../ShowBroadcastTableRulesStatement.java | 6 ++-- .../core/EncryptDistSQLStatementVisitor.java | 6 ++-- .../statement/ShowEncryptRulesStatement.java | 6 ++-- .../parser/core/MaskDistSQLStatementVisitor.java | 5 +-- .../distsql/statement/ShowMaskRulesStatement.java | 6 ++-- .../ReadwriteSplittingDistSQLStatementVisitor.java | 16 +++++---- ...adwriteSplittingStorageUnitStatusStatement.java | 8 ++--- .../ShowReadwriteSplittingRulesStatement.java | 6 ++-- ...StatusFromReadwriteSplittingRulesStatement.java | 8 ++--- .../parser/core/ShadowDistSQLStatementVisitor.java | 15 +++++---- .../ShowDefaultShadowAlgorithmStatement.java | 6 ++-- .../statement/ShowShadowAlgorithmsStatement.java | 6 ++-- .../statement/ShowShadowRulesStatement.java | 6 ++-- .../statement/ShowShadowTableRulesStatement.java | 6 ++-- .../core/ShardingDistSQLStatementVisitor.java | 39 +++++++++++++--------- .../ShowDefaultShardingStrategyStatement.java | 6 ++-- .../statement/ShowShardingAlgorithmsStatement.java | 6 ++-- .../statement/ShowShardingAuditorsStatement.java | 6 ++-- .../ShowShardingKeyGeneratorsStatement.java | 6 ++-- .../statement/ShowShardingTableNodesStatement.java | 6 ++-- .../ShowShardingTableReferenceRulesStatement.java | 6 ++-- .../statement/ShowShardingTableRulesStatement.java | 6 ++-- ...owShardingTableRulesUsedAlgorithmStatement.java | 6 ++-- ...ShowShardingTableRulesUsedAuditorStatement.java | 6 ++-- ...hardingTableRulesUsedKeyGeneratorStatement.java | 6 ++-- .../ShowUnusedShardingAlgorithmsStatement.java | 6 ++-- .../ShowUnusedShardingAuditorsStatement.java | 6 ++-- .../ShowUnusedShardingKeyGeneratorsStatement.java | 6 ++-- .../type/dal/ShowColumnsStatementContextTest.java | 2 +- .../distsql/handler/util/DatabaseNameUtils.java | 5 ++- .../ShowRulesUsedStorageUnitExecutorTest.java | 6 ++-- .../rql/resource/ShowStorageUnitExecutorTest.java | 6 ++-- .../handler/util/DatabaseNameUtilsTest.java | 8 ++--- .../parser/core/SingleDistSQLStatementVisitor.java | 21 +++++++----- ...ShowDefaultSingleTableStorageUnitStatement.java | 6 ++-- .../statement/rql/ShowSingleTablesStatement.java | 6 ++-- .../rql/ShowUnloadedSingleTablesStatement.java | 6 ++-- .../core/kernel/KernelDistSQLStatementVisitor.java | 20 ++++++----- .../ExportDatabaseConfigurationStatement.java | 14 ++++---- .../queryable/show/ShowTableMetaDataStatement.java | 8 ++--- .../rql/resource/ShowLogicalTablesStatement.java | 6 ++-- .../rql/resource/ShowStorageUnitsStatement.java | 14 ++++---- .../rql/resource/ShowTablesStatement.java | 19 ++++------- .../rql/rule/database/CountRuleStatement.java | 6 ++-- .../rule/database/ShowDatabaseRulesStatement.java | 8 ++--- .../ShowRulesUsedStorageUnitStatement.java | 6 ++-- .../statement/type/DorisDALStatementVisitor.java | 2 +- .../statement/type/MySQLDALStatementVisitor.java | 2 +- .../core/segment/dal/FromDatabaseSegment.java | 11 ++++-- .../core/statement/FromDatabaseAvailable.java | 4 +-- .../distsql/DistSQLQueryBackendHandlerTest.java | 3 +- .../ExportDatabaseConfigurationExecutorTest.java | 5 +-- .../export/ShowTableMetaDataExecutorTest.java | 3 +- .../admin/executor/ShowTablesExecutorTest.java | 2 +- .../ShowTableMetaDataStatementAssert.java | 2 +- ...eSplittingStorageUnitStatusStatementAssert.java | 2 +- .../rql/impl/ShowRulesStatementAssert.java | 2 +- .../rql/impl/ShowStorageUnitsStatementAssert.java | 2 +- .../rql/impl/ShowTablesStatementAssert.java | 2 +- 61 files changed, 238 insertions(+), 202 deletions(-) diff --git a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java index c53881002f0..553099c5dec 100644 --- a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java +++ b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLParseCountAdviceTest.java @@ -27,6 +27,7 @@ import org.apache.shardingsphere.data.pipeline.migration.distsql.statement.query import org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.RegisterStorageUnitStatement; import org.apache.shardingsphere.distsql.statement.rql.resource.ShowStorageUnitsStatement; import org.apache.shardingsphere.distsql.statement.rul.sql.ParseStatement; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement; @@ -97,7 +98,7 @@ class SQLParseCountAdviceTest { @Test void assertParseRQL() { - assertParse(new ShowStorageUnitsStatement(new DatabaseSegment(0, 0, null), null), "RQL=1"); + assertParse(new ShowStorageUnitsStatement(new FromDatabaseSegment(0, new DatabaseSegment(0, 0, null)), null), "RQL=1"); } @Test diff --git a/features/broadcast/distsql/parser/src/main/java/org/apache/shardingsphere/broadcast/distsql/parser/core/BroadcastDistSQLStatementVisitor.java b/features/broadcast/distsql/parser/src/main/java/org/apache/shardingsphere/broadcast/distsql/parser/core/BroadcastDistSQLStatementVisitor.java index 0545486c752..e15ba3fcae6 100644 --- a/features/broadcast/distsql/parser/src/main/java/org/apache/shardingsphere/broadcast/distsql/parser/core/BroadcastDistSQLStatementVisitor.java +++ b/features/broadcast/distsql/parser/src/main/java/org/apache/shardingsphere/broadcast/distsql/parser/core/BroadcastDistSQLStatementVisitor.java @@ -30,6 +30,7 @@ import org.apache.shardingsphere.distsql.parser.autogen.BroadcastDistSQLStatemen import org.apache.shardingsphere.distsql.statement.rql.rule.database.CountRuleStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -54,12 +55,12 @@ public final class BroadcastDistSQLStatementVisitor extends BroadcastDistSQLStat @Override public ASTNode visitShowBroadcastTableRules(final ShowBroadcastTableRulesContext ctx) { - return new ShowBroadcastTableRulesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowBroadcastTableRulesStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitCountBroadcastRule(final CountBroadcastRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "BROADCAST"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "BROADCAST"); } @Override diff --git a/features/broadcast/distsql/statement/src/main/java/org/apache/shardingsphere/broadcast/distsql/statement/ShowBroadcastTableRulesStatement.java b/features/broadcast/distsql/statement/src/main/java/org/apache/shardingsphere/broadcast/distsql/statement/ShowBroadcastTableRulesStatement.java index 5b042dcd134..df18741983d 100644 --- a/features/broadcast/distsql/statement/src/main/java/org/apache/shardingsphere/broadcast/distsql/statement/ShowBroadcastTableRulesStatement.java +++ b/features/broadcast/distsql/statement/src/main/java/org/apache/shardingsphere/broadcast/distsql/statement/ShowBroadcastTableRulesStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.broadcast.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show broadcast table rules statement. */ public final class ShowBroadcastTableRulesStatement extends ShowDatabaseRulesStatement { - public ShowBroadcastTableRulesStatement(final DatabaseSegment database) { - super(database); + public ShowBroadcastTableRulesStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java b/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java index 75bd81c31af..5f3cf4bc1e4 100644 --- a/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java +++ b/features/encrypt/distsql/parser/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/core/EncryptDistSQLStatementVisitor.java @@ -45,6 +45,7 @@ import org.apache.shardingsphere.encrypt.distsql.statement.ShowEncryptRulesState import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -76,7 +77,8 @@ public final class EncryptDistSQLStatementVisitor extends EncryptDistSQLStatemen public ASTNode visitShowEncryptRules(final ShowEncryptRulesContext ctx) { return new ShowEncryptRulesStatement(null == ctx.tableRule() ? null - : getIdentifierValue(ctx.tableRule().tableName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + : getIdentifierValue(ctx.tableRule().tableName()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -138,7 +140,7 @@ public final class EncryptDistSQLStatementVisitor extends EncryptDistSQLStatemen @Override public ASTNode visitCountEncryptRule(final CountEncryptRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "ENCRYPT"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "ENCRYPT"); } @Override diff --git a/features/encrypt/distsql/statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/statement/ShowEncryptRulesStatement.java b/features/encrypt/distsql/statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/statement/ShowEncryptRulesStatement.java index f01ccbcd177..4411b288a95 100644 --- a/features/encrypt/distsql/statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/statement/ShowEncryptRulesStatement.java +++ b/features/encrypt/distsql/statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/statement/ShowEncryptRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.encrypt.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show encrypt rules statement. @@ -29,8 +29,8 @@ public final class ShowEncryptRulesStatement extends ShowDatabaseRulesStatement private final String tableName; - public ShowEncryptRulesStatement(final String tableName, final DatabaseSegment database) { - super(database); + public ShowEncryptRulesStatement(final String tableName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.tableName = tableName; } } diff --git a/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java b/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java index 217d10ef84b..240cbcbf13f 100644 --- a/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java +++ b/features/mask/distsql/parser/src/main/java/org/apache/shardingsphere/mask/distsql/parser/core/MaskDistSQLStatementVisitor.java @@ -43,6 +43,7 @@ import org.apache.shardingsphere.mask.distsql.statement.DropMaskRuleStatement; import org.apache.shardingsphere.mask.distsql.statement.ShowMaskRulesStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -72,12 +73,12 @@ public final class MaskDistSQLStatementVisitor extends MaskDistSQLStatementBaseV @Override public ASTNode visitShowMaskRules(final ShowMaskRulesContext ctx) { return new ShowMaskRulesStatement(null == ctx.RULE() ? null : getIdentifierValue(ctx.ruleName()), - null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitCountMaskRule(final CountMaskRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "MASK"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "MASK"); } @Override diff --git a/features/mask/distsql/statement/src/main/java/org/apache/shardingsphere/mask/distsql/statement/ShowMaskRulesStatement.java b/features/mask/distsql/statement/src/main/java/org/apache/shardingsphere/mask/distsql/statement/ShowMaskRulesStatement.java index 5c229321755..c9f5062d4ff 100644 --- a/features/mask/distsql/statement/src/main/java/org/apache/shardingsphere/mask/distsql/statement/ShowMaskRulesStatement.java +++ b/features/mask/distsql/statement/src/main/java/org/apache/shardingsphere/mask/distsql/statement/ShowMaskRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.mask.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show mask rules statement. @@ -29,8 +29,8 @@ public final class ShowMaskRulesStatement extends ShowDatabaseRulesStatement { private final String tableName; - public ShowMaskRulesStatement(final String tableName, final DatabaseSegment database) { - super(database); + public ShowMaskRulesStatement(final String tableName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.tableName = tableName; } } diff --git a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java index c1d1cd5878f..f84442dddce 100644 --- a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java +++ b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java @@ -43,6 +43,7 @@ import org.apache.shardingsphere.readwritesplitting.distsql.statement.ShowReadwr import org.apache.shardingsphere.readwritesplitting.distsql.statement.ShowStatusFromReadwriteSplittingRulesStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -72,14 +73,15 @@ public final class ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp @Override public ASTNode visitAlterReadwriteSplittingStorageUnitStatus(final AlterReadwriteSplittingStorageUnitStatusContext ctx) { - DatabaseSegment databaseSegment = null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()); - return new AlterReadwriteSplittingStorageUnitStatusStatement(databaseSegment, getIdentifierValue(ctx.ruleName()), getIdentifierValue(ctx.storageUnitName()), null == ctx.DISABLE()); + FromDatabaseSegment fromDatabase = new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), + null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new AlterReadwriteSplittingStorageUnitStatusStatement(fromDatabase, getIdentifierValue(ctx.ruleName()), getIdentifierValue(ctx.storageUnitName()), null == ctx.DISABLE()); } @Override public ASTNode visitShowReadwriteSplittingRules(final ShowReadwriteSplittingRulesContext ctx) { return new ShowReadwriteSplittingRulesStatement(null == ctx.ruleName() ? null : getIdentifierValue(ctx.ruleName()), - null != ctx.databaseName() ? (DatabaseSegment) visit(ctx.databaseName()) : null); + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -102,9 +104,9 @@ public final class ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp @Override public ASTNode visitShowStatusFromReadwriteSplittingRules(final ShowStatusFromReadwriteSplittingRulesContext ctx) { - DatabaseSegment databaseSegment = null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()); + FromDatabaseSegment fromDatabase = new FromDatabaseSegment(ctx.FROM().get(0).getSymbol().getStartIndex(), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); String ruleName = getIdentifierValue(ctx.ruleName()); - return new ShowStatusFromReadwriteSplittingRulesStatement(databaseSegment, ruleName); + return new ShowStatusFromReadwriteSplittingRulesStatement(fromDatabase, ruleName); } private String getIdentifierValue(final ParseTree context) { @@ -113,7 +115,9 @@ public final class ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp @Override public ASTNode visitCountReadwriteSplittingRule(final CountReadwriteSplittingRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "READWRITE_SPLITTING"); + return new CountRuleStatement(null == ctx.databaseName() + ? null + : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "READWRITE_SPLITTING"); } private Properties getProperties(final PropertiesDefinitionContext ctx) { diff --git a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/AlterReadwriteSplittingStorageUnitStatusStatement.java b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/AlterReadwriteSplittingStorageUnitStatusStatement.java index 010459d8797..7dc48fdb8b9 100644 --- a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/AlterReadwriteSplittingStorageUnitStatusStatement.java +++ b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/AlterReadwriteSplittingStorageUnitStatusStatement.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.statement; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.distsql.statement.ral.updatable.UpdatableRALStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -32,7 +32,7 @@ import java.util.Optional; @Getter public final class AlterReadwriteSplittingStorageUnitStatusStatement extends UpdatableRALStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; private final String ruleName; @@ -41,7 +41,7 @@ public final class AlterReadwriteSplittingStorageUnitStatusStatement extends Upd private final boolean enable; @Override - public Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); + public Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); } } diff --git a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowReadwriteSplittingRulesStatement.java b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowReadwriteSplittingRulesStatement.java index 42c23cf1a86..e28ed10322b 100644 --- a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowReadwriteSplittingRulesStatement.java +++ b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowReadwriteSplittingRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show readwrite-splitting rules statement. @@ -29,8 +29,8 @@ public final class ShowReadwriteSplittingRulesStatement extends ShowDatabaseRule private final String ruleName; - public ShowReadwriteSplittingRulesStatement(final String ruleName, final DatabaseSegment database) { - super(database); + public ShowReadwriteSplittingRulesStatement(final String ruleName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.ruleName = ruleName; } } diff --git a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowStatusFromReadwriteSplittingRulesStatement.java b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowStatusFromReadwriteSplittingRulesStatement.java index 7b2743057bf..81d656ae551 100644 --- a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowStatusFromReadwriteSplittingRulesStatement.java +++ b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/statement/ShowStatusFromReadwriteSplittingRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.statement; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.distsql.statement.rql.resource.ResourceQueryStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -30,13 +30,13 @@ import java.util.Optional; @RequiredArgsConstructor public final class ShowStatusFromReadwriteSplittingRulesStatement extends ResourceQueryStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; private final String ruleName; @Override - public Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); + public Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); } /** diff --git a/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java b/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java index 31802ff6d19..cf102df0bf4 100644 --- a/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java +++ b/features/shadow/distsql/parser/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/core/ShadowDistSQLStatementVisitor.java @@ -56,6 +56,7 @@ import org.apache.shardingsphere.shadow.distsql.statement.ShowShadowRulesStateme import org.apache.shardingsphere.shadow.distsql.statement.ShowShadowTableRulesStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -98,12 +99,13 @@ public final class ShadowDistSQLStatementVisitor extends ShadowDistSQLStatementB @Override public ASTNode visitShowShadowAlgorithms(final ShowShadowAlgorithmsContext ctx) { - return new ShowShadowAlgorithmsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShadowAlgorithmsStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowDefaultShadowAlgorithm(final ShowDefaultShadowAlgorithmContext ctx) { - return new ShowDefaultShadowAlgorithmStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowDefaultShadowAlgorithmStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -149,13 +151,14 @@ public final class ShadowDistSQLStatementVisitor extends ShadowDistSQLStatementB @Override public ASTNode visitShowShadowRules(final ShowShadowRulesContext ctx) { String ruleName = null == ctx.shadowRule() ? null : getIdentifierValue(ctx.shadowRule().ruleName()); - DatabaseSegment databaseSegment = null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()); - return new ShowShadowRulesStatement(ruleName, null == ctx.databaseName() ? null : databaseSegment); + FromDatabaseSegment fromDatabase = null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShadowRulesStatement(ruleName, null == ctx.databaseName() ? null : fromDatabase); } @Override public ASTNode visitShowShadowTableRules(final ShowShadowTableRulesContext ctx) { - return new ShowShadowTableRulesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), ctx.TABLE().getText()); + return new ShowShadowTableRulesStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), + ctx.TABLE().getText()); } private String getIdentifierValue(final ParserRuleContext ctx) { @@ -173,7 +176,7 @@ public final class ShadowDistSQLStatementVisitor extends ShadowDistSQLStatementB @Override public ASTNode visitCountShadowRule(final CountShadowRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "SHADOW"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "SHADOW"); } private Collection<ShadowRuleSegment> autoCreateAlgorithmName(final Collection<ShadowRuleSegment> shadowRuleSegments) { diff --git a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowDefaultShadowAlgorithmStatement.java b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowDefaultShadowAlgorithmStatement.java index ed27b796087..203292d805b 100644 --- a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowDefaultShadowAlgorithmStatement.java +++ b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowDefaultShadowAlgorithmStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show default shadow algorithm statement. @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Datab @Getter public final class ShowDefaultShadowAlgorithmStatement extends ShowDatabaseRulesStatement { - public ShowDefaultShadowAlgorithmStatement(final DatabaseSegment database) { - super(database); + public ShowDefaultShadowAlgorithmStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowAlgorithmsStatement.java b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowAlgorithmsStatement.java index a03503ba692..cad402300c8 100644 --- a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowAlgorithmsStatement.java +++ b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowAlgorithmsStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show shadow algorithms statement. @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Datab @Getter public final class ShowShadowAlgorithmsStatement extends ShowDatabaseRulesStatement { - public ShowShadowAlgorithmsStatement(final DatabaseSegment database) { - super(database); + public ShowShadowAlgorithmsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowRulesStatement.java b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowRulesStatement.java index f87b8d27021..2bf538ef4df 100644 --- a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowRulesStatement.java +++ b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show shadow rules statement. @@ -29,8 +29,8 @@ public final class ShowShadowRulesStatement extends ShowDatabaseRulesStatement { private final String ruleName; - public ShowShadowRulesStatement(final String ruleName, final DatabaseSegment database) { - super(database); + public ShowShadowRulesStatement(final String ruleName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.ruleName = ruleName; } } diff --git a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowTableRulesStatement.java b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowTableRulesStatement.java index 6302f5e827c..6c244b50cd8 100644 --- a/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowTableRulesStatement.java +++ b/features/shadow/distsql/statement/src/main/java/org/apache/shardingsphere/shadow/distsql/statement/ShowShadowTableRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show shadow table rules statement. @@ -29,8 +29,8 @@ public final class ShowShadowTableRulesStatement extends ShowDatabaseRulesStatem private final String tableName; - public ShowShadowTableRulesStatement(final DatabaseSegment database, final String tableName) { - super(database); + public ShowShadowTableRulesStatement(final FromDatabaseSegment fromDatabase, final String tableName) { + super(fromDatabase); this.tableName = tableName; } } diff --git a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java index 89d077f8565..252ee7410cc 100644 --- a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java +++ b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java @@ -102,6 +102,7 @@ import org.apache.shardingsphere.sharding.distsql.statement.ShowUnusedShardingAu import org.apache.shardingsphere.sharding.distsql.statement.ShowUnusedShardingKeyGeneratorsStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -205,12 +206,12 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowShardingTableRules(final ShowShardingTableRulesContext ctx) { return new ShowShardingTableRulesStatement(null == ctx.tableRule() ? null : getIdentifierValue(ctx.tableRule().tableName()), - null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowShardingAlgorithms(final ShowShardingAlgorithmsContext ctx) { - return new ShowShardingAlgorithmsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingAlgorithmsStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -251,7 +252,7 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowShardingTableNodes(final ShowShardingTableNodesContext ctx) { return new ShowShardingTableNodesStatement(null == ctx.tableName() ? null : getIdentifierValue(ctx.tableName()), - null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -325,7 +326,7 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowShardingTableReferenceRules(final ShowShardingTableReferenceRulesContext ctx) { return new ShowShardingTableReferenceRulesStatement(null == ctx.ruleName() ? null : getIdentifierValue(ctx.ruleName()), - null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -335,7 +336,8 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowShardingKeyGenerators(final ShowShardingKeyGeneratorsContext ctx) { - return new ShowShardingKeyGeneratorsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingKeyGeneratorsStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -350,17 +352,20 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowShardingAuditors(final ShowShardingAuditorsContext ctx) { - return new ShowShardingAuditorsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingAuditorsStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowDefaultShardingStrategy(final ShowDefaultShardingStrategyContext ctx) { - return new ShowDefaultShardingStrategyStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowDefaultShardingStrategyStatement(null == ctx.databaseName() + ? null + : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowUnusedShardingAlgorithms(final ShowUnusedShardingAlgorithmsContext ctx) { - return new ShowUnusedShardingAlgorithmsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowUnusedShardingAlgorithmsStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } private String buildShardingColumn(final AutoShardingColumnDefinitionContext ctx) { @@ -375,33 +380,37 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem @Override public ASTNode visitShowUnusedShardingKeyGenerators(final ShowUnusedShardingKeyGeneratorsContext ctx) { - return new ShowUnusedShardingKeyGeneratorsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowUnusedShardingKeyGeneratorsStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowUnusedShardingAuditors(final ShowUnusedShardingAuditorsContext ctx) { - return new ShowUnusedShardingAuditorsStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowUnusedShardingAuditorsStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowShardingTableRulesUsedAlgorithm(final ShowShardingTableRulesUsedAlgorithmContext ctx) { - return new ShowShardingTableRulesUsedAlgorithmStatement( - getIdentifierValue(ctx.shardingAlgorithmName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingTableRulesUsedAlgorithmStatement(getIdentifierValue(ctx.shardingAlgorithmName()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowShardingTableRulesUsedKeyGenerator(final ShowShardingTableRulesUsedKeyGeneratorContext ctx) { - return new ShowShardingTableRulesUsedKeyGeneratorStatement(getIdentifierValue(ctx.keyGeneratorName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingTableRulesUsedKeyGeneratorStatement(getIdentifierValue(ctx.keyGeneratorName()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowShardingTableRulesUsedAuditor(final ShowShardingTableRulesUsedAuditorContext ctx) { - return new ShowShardingTableRulesUsedAuditorStatement(getIdentifierValue(ctx.auditorName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowShardingTableRulesUsedAuditorStatement(getIdentifierValue(ctx.auditorName()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitCountShardingRule(final CountShardingRuleContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "SHARDING"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "SHARDING"); } @Override diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowDefaultShardingStrategyStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowDefaultShardingStrategyStatement.java index 268a7da6fbd..8f63d0169f5 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowDefaultShardingStrategyStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowDefaultShardingStrategyStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show default sharding strategy statement. */ public final class ShowDefaultShardingStrategyStatement extends ShowDatabaseRulesStatement { - public ShowDefaultShardingStrategyStatement(final DatabaseSegment database) { - super(database); + public ShowDefaultShardingStrategyStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAlgorithmsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAlgorithmsStatement.java index b14355d8b79..d68ad5e84f4 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAlgorithmsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAlgorithmsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding algorithms statement. */ public final class ShowShardingAlgorithmsStatement extends ShowDatabaseRulesStatement { - public ShowShardingAlgorithmsStatement(final DatabaseSegment database) { - super(database); + public ShowShardingAlgorithmsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAuditorsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAuditorsStatement.java index 74d80b5d4dd..ff120942a4f 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAuditorsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingAuditorsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding audit algorithms statement. */ public final class ShowShardingAuditorsStatement extends ShowDatabaseRulesStatement { - public ShowShardingAuditorsStatement(final DatabaseSegment database) { - super(database); + public ShowShardingAuditorsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingKeyGeneratorsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingKeyGeneratorsStatement.java index e5488d4f0ea..d2c87eb6400 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingKeyGeneratorsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingKeyGeneratorsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding key generators statement. */ public final class ShowShardingKeyGeneratorsStatement extends ShowDatabaseRulesStatement { - public ShowShardingKeyGeneratorsStatement(final DatabaseSegment database) { - super(database); + public ShowShardingKeyGeneratorsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableNodesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableNodesStatement.java index 8d1d75088ae..15c486f6e86 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableNodesStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableNodesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding table nodes statement. @@ -29,8 +29,8 @@ public final class ShowShardingTableNodesStatement extends ShowDatabaseRulesStat private final String tableName; - public ShowShardingTableNodesStatement(final String tableName, final DatabaseSegment database) { - super(database); + public ShowShardingTableNodesStatement(final String tableName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.tableName = tableName; } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableReferenceRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableReferenceRulesStatement.java index 58bdf6f9a96..86902877945 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableReferenceRulesStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableReferenceRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding table reference rules statement. @@ -29,8 +29,8 @@ public final class ShowShardingTableReferenceRulesStatement extends ShowDatabase private final String ruleName; - public ShowShardingTableReferenceRulesStatement(final String ruleName, final DatabaseSegment database) { - super(database); + public ShowShardingTableReferenceRulesStatement(final String ruleName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.ruleName = ruleName; } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesStatement.java index 0d4920c1354..ba0aab234ef 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show sharding table rules statement. @@ -29,8 +29,8 @@ public final class ShowShardingTableRulesStatement extends ShowDatabaseRulesStat private final String tableName; - public ShowShardingTableRulesStatement(final String tableName, final DatabaseSegment database) { - super(database); + public ShowShardingTableRulesStatement(final String tableName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.tableName = tableName; } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAlgorithmStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAlgorithmStatement.java index 3ef58db5a97..521490693c3 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAlgorithmStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAlgorithmStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import java.util.Optional; @@ -29,8 +29,8 @@ public final class ShowShardingTableRulesUsedAlgorithmStatement extends ShowData private final String shardingAlgorithmName; - public ShowShardingTableRulesUsedAlgorithmStatement(final String shardingAlgorithmName, final DatabaseSegment database) { - super(database); + public ShowShardingTableRulesUsedAlgorithmStatement(final String shardingAlgorithmName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.shardingAlgorithmName = shardingAlgorithmName; } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAuditorStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAuditorStatement.java index f93ccd5a3e3..5ddb30c1ed3 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAuditorStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedAuditorStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import java.util.Optional; @@ -29,8 +29,8 @@ public final class ShowShardingTableRulesUsedAuditorStatement extends ShowDataba private final String auditorName; - public ShowShardingTableRulesUsedAuditorStatement(final String auditorName, final DatabaseSegment database) { - super(database); + public ShowShardingTableRulesUsedAuditorStatement(final String auditorName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.auditorName = auditorName; } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java index 5e5c3cb2c0c..5bd680750ec 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import java.util.Optional; @@ -29,8 +29,8 @@ public final class ShowShardingTableRulesUsedKeyGeneratorStatement extends ShowD private final String keyGeneratorName; - public ShowShardingTableRulesUsedKeyGeneratorStatement(final String keyGeneratorName, final DatabaseSegment database) { - super(database); + public ShowShardingTableRulesUsedKeyGeneratorStatement(final String keyGeneratorName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.keyGeneratorName = keyGeneratorName; } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAlgorithmsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAlgorithmsStatement.java index 16e5c764d2c..a9fc85a3916 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAlgorithmsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAlgorithmsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show unused sharding algorithms statement. */ public final class ShowUnusedShardingAlgorithmsStatement extends ShowDatabaseRulesStatement { - public ShowUnusedShardingAlgorithmsStatement(final DatabaseSegment database) { - super(database); + public ShowUnusedShardingAlgorithmsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAuditorsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAuditorsStatement.java index 719d1d1ef81..d2be1d570cf 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAuditorsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingAuditorsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show unused sharding auditors statement. */ public final class ShowUnusedShardingAuditorsStatement extends ShowDatabaseRulesStatement { - public ShowUnusedShardingAuditorsStatement(final DatabaseSegment database) { - super(database); + public ShowUnusedShardingAuditorsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingKeyGeneratorsStatement.java b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingKeyGeneratorsStatement.java index 93c6d15135c..cf49b868f27 100644 --- a/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingKeyGeneratorsStatement.java +++ b/features/sharding/distsql/statement/src/main/java/org/apache/shardingsphere/sharding/distsql/statement/ShowUnusedShardingKeyGeneratorsStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.sharding.distsql.statement; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show unused sharding key generators statement. */ public final class ShowUnusedShardingKeyGeneratorsStatement extends ShowDatabaseRulesStatement { - public ShowUnusedShardingKeyGeneratorsStatement(final DatabaseSegment database) { - super(database); + public ShowUnusedShardingKeyGeneratorsStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dal/ShowColumnsStatementContextTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dal/ShowColumnsStatementContextTest.java index f84be8be10c..7bc292d2185 100644 --- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dal/ShowColumnsStatementContextTest.java +++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dal/ShowColumnsStatementContextTest.java @@ -43,7 +43,7 @@ class ShowColumnsStatementContextTest { TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new IdentifierValue("foo_tbl")); tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema"))); when(sqlStatement.getTable()).thenReturn(new SimpleTableSegment(tableNameSegment)); - FromDatabaseSegment fromDatabase = new FromDatabaseSegment(0, 0, new DatabaseSegment(0, 0, new IdentifierValue("foo_db"))); + FromDatabaseSegment fromDatabase = new FromDatabaseSegment(0, new DatabaseSegment(0, 0, new IdentifierValue("foo_db"))); when(sqlStatement.getFromDatabase()).thenReturn(Optional.of(fromDatabase)); ShowColumnsStatementContext actual = new ShowColumnsStatementContext(mock(), sqlStatement); assertThat(actual.getSqlStatement(), is(sqlStatement)); diff --git a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtils.java b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtils.java index b958c5dc554..35ae0f4280c 100644 --- a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtils.java +++ b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtils.java @@ -19,6 +19,7 @@ package org.apache.shardingsphere.distsql.handler.util; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; @@ -39,7 +40,9 @@ public final class DatabaseNameUtils { * @return database name */ public static String getDatabaseName(final SQLStatement sqlStatement, final String currentDatabaseName) { - Optional<DatabaseSegment> databaseSegment = sqlStatement instanceof FromDatabaseAvailable ? ((FromDatabaseAvailable) sqlStatement).getFromDatabase() : Optional.empty(); + Optional<DatabaseSegment> databaseSegment = sqlStatement instanceof FromDatabaseAvailable + ? ((FromDatabaseAvailable) sqlStatement).getFromDatabase().map(FromDatabaseSegment::getDatabase) + : Optional.empty(); return databaseSegment.map(optional -> optional.getIdentifier().getValue()).orElse(currentDatabaseName); } } diff --git a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowRulesUsedStorageUnitExecutorTest.java b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowRulesUsedStorageUnitExecutorTest.java index 0cce299de71..3fffaaa85c4 100644 --- a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowRulesUsedStorageUnitExecutorTest.java +++ b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowRulesUsedStorageUnitExecutorTest.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData; import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData; import org.apache.shardingsphere.mode.manager.ContextManager; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource; import org.junit.jupiter.api.Test; @@ -45,7 +45,7 @@ class ShowRulesUsedStorageUnitExecutorTest { @Test void assertGetRowData() { executor.setDatabase(mockDatabase()); - ShowRulesUsedStorageUnitStatement sqlStatement = new ShowRulesUsedStorageUnitStatement("foo_ds", mock(DatabaseSegment.class)); + ShowRulesUsedStorageUnitStatement sqlStatement = new ShowRulesUsedStorageUnitStatement("foo_ds", mock(FromDatabaseSegment.class)); Collection<LocalDataQueryResultRow> rowData = executor.getRows(sqlStatement, mock(ContextManager.class)); assertThat(rowData.size(), is(1)); Iterator<LocalDataQueryResultRow> actual = rowData.iterator(); @@ -64,7 +64,7 @@ class ShowRulesUsedStorageUnitExecutorTest { @Test void assertGetEmptyRowData() { executor.setDatabase(mockEmptyDatabase()); - ShowRulesUsedStorageUnitStatement sqlStatement = new ShowRulesUsedStorageUnitStatement("empty_ds", mock(DatabaseSegment.class)); + ShowRulesUsedStorageUnitStatement sqlStatement = new ShowRulesUsedStorageUnitStatement("empty_ds", mock(FromDatabaseSegment.class)); assertTrue(executor.getRows(sqlStatement, mock(ContextManager.class)).isEmpty()); } diff --git a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java index 395e8032e79..2d4d7d0a4de 100644 --- a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java +++ b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java @@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData; import org.apache.shardingsphere.mode.manager.ContextManager; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -70,7 +70,7 @@ class ShowStorageUnitExecutorTest { @Test void assertGetRowsWithAllStorageUnits() { Map<Integer, String> storageUnitNames = Maps.of(0, "ds_2", 1, "ds_1", 2, "ds_0"); - Collection<LocalDataQueryResultRow> actual = executor.getRows(new ShowStorageUnitsStatement(mock(DatabaseSegment.class), null), mock(ContextManager.class)); + Collection<LocalDataQueryResultRow> actual = executor.getRows(new ShowStorageUnitsStatement(mock(FromDatabaseSegment.class), null), mock(ContextManager.class)); assertThat(actual.size(), is(3)); Iterator<LocalDataQueryResultRow> iterator = actual.iterator(); int index = 0; @@ -94,7 +94,7 @@ class ShowStorageUnitExecutorTest { @Test void assertGetRowsWithLikePattern() { - Collection<LocalDataQueryResultRow> actual = executor.getRows(new ShowStorageUnitsStatement(mock(DatabaseSegment.class), "%_0"), mock(ContextManager.class)); + Collection<LocalDataQueryResultRow> actual = executor.getRows(new ShowStorageUnitsStatement(mock(FromDatabaseSegment.class), "%_0"), mock(ContextManager.class)); assertThat(actual.size(), is(1)); LocalDataQueryResultRow row = actual.iterator().next(); assertThat(row.getCell(1), is("ds_0")); diff --git a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtilsTest.java b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtilsTest.java index fd098355277..c2be6024ec4 100644 --- a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtilsTest.java +++ b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/util/DatabaseNameUtilsTest.java @@ -17,9 +17,9 @@ package org.apache.shardingsphere.distsql.handler.util; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; -import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; +import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.junit.jupiter.api.Test; import java.util.Optional; @@ -36,8 +36,8 @@ class DatabaseNameUtilsTest { @Test void assertDatabaseNameWhenAvailableInSQLStatement() { FromDatabaseAvailable sqlStatement = mock(FromDatabaseAvailable.class, withSettings().extraInterfaces(SQLStatement.class)); - DatabaseSegment databaseSegment = mock(DatabaseSegment.class, RETURNS_DEEP_STUBS); - when(databaseSegment.getIdentifier().getValue()).thenReturn("bar_db"); + FromDatabaseSegment databaseSegment = mock(FromDatabaseSegment.class, RETURNS_DEEP_STUBS); + when(databaseSegment.getDatabase().getIdentifier().getValue()).thenReturn("bar_db"); when(sqlStatement.getFromDatabase()).thenReturn(Optional.of(databaseSegment)); assertThat(DatabaseNameUtils.getDatabaseName((SQLStatement) sqlStatement, "foo_db"), is("bar_db")); } diff --git a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java index 391e17e261e..8fdbc52d634 100644 --- a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java +++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java @@ -18,6 +18,7 @@ package org.apache.shardingsphere.single.distsql.parser.core; import org.antlr.v4.runtime.tree.ParseTree; +import org.antlr.v4.runtime.tree.TerminalNode; import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementBaseVisitor; import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.AllSchamesAndTablesFromStorageUnitContext; import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.AllTablesContext; @@ -45,6 +46,7 @@ import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTablesSt import org.apache.shardingsphere.single.distsql.statement.rql.ShowUnloadedSingleTablesStatement; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; @@ -59,7 +61,7 @@ public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementB @Override public ASTNode visitCountSingleTable(final CountSingleTableContext ctx) { - return new CountRuleStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), "SINGLE"); + return new CountRuleStatement(null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())), "SINGLE"); } @Override @@ -69,13 +71,14 @@ public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementB @Override public ASTNode visitShowDefaultSingleTableStorageUnit(final ShowDefaultSingleTableStorageUnitContext ctx) { - return new ShowDefaultSingleTableStorageUnitStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowDefaultSingleTableStorageUnitStatement( + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override public ASTNode visitShowSingleTables(final ShowSingleTablesContext ctx) { - return new ShowSingleTablesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), - null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern())); + FromDatabaseSegment fromDatabase = null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new ShowSingleTablesStatement(fromDatabase, null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern())); } @Override @@ -119,13 +122,13 @@ public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementB @Override public ASTNode visitShowUnloadedSingleTables(final ShowUnloadedSingleTablesContext ctx) { - return null == ctx.fromClause() ? new ShowUnloadedSingleTablesStatement(null, null, null) : visitShowUnloadedSingleTablesWithFromClause(ctx.fromClause()); + return null == ctx.fromClause() ? new ShowUnloadedSingleTablesStatement(null, null, null) : visitShowUnloadedSingleTablesWithFromClause(ctx.FROM(), ctx.fromClause()); } - private ASTNode visitShowUnloadedSingleTablesWithFromClause(final FromClauseContext ctx) { - return new ShowUnloadedSingleTablesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), - null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()), - null == ctx.schemaName() ? null : getIdentifierValue(ctx.schemaName())); + private ASTNode visitShowUnloadedSingleTablesWithFromClause(final TerminalNode fromCtx, final FromClauseContext ctx) { + FromDatabaseSegment fromDatabase = null == ctx.databaseName() ? null : new FromDatabaseSegment(fromCtx.getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new ShowUnloadedSingleTablesStatement(fromDatabase, + null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()), null == ctx.schemaName() ? null : getIdentifierValue(ctx.schemaName())); } @Override diff --git a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java index 42c01cbce8f..7ec4a75573e 100644 --- a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java +++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.single.distsql.statement.rql; import lombok.Getter; import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowDatabaseRulesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show default single table storage unit statement. @@ -27,7 +27,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Datab @Getter public final class ShowDefaultSingleTableStorageUnitStatement extends ShowDatabaseRulesStatement { - public ShowDefaultSingleTableStorageUnitStatement(final DatabaseSegment database) { - super(database); + public ShowDefaultSingleTableStorageUnitStatement(final FromDatabaseSegment fromDatabase) { + super(fromDatabase); } } diff --git a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java index 1d2c378b0ce..d35a5f2ed01 100644 --- a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java +++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java @@ -18,14 +18,14 @@ package org.apache.shardingsphere.single.distsql.statement.rql; import org.apache.shardingsphere.distsql.statement.rql.resource.ShowTablesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show single tables statement. */ public final class ShowSingleTablesStatement extends ShowTablesStatement { - public ShowSingleTablesStatement(final DatabaseSegment database, final String likePattern) { - super(database, likePattern); + public ShowSingleTablesStatement(final FromDatabaseSegment fromDatabase, final String likePattern) { + super(fromDatabase, likePattern); } } diff --git a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java index ec83ce3e556..fee1cfa36ba 100644 --- a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java +++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.single.distsql.statement.rql; import org.apache.shardingsphere.distsql.statement.rql.resource.ShowTablesStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import java.util.Optional; @@ -31,9 +31,9 @@ public final class ShowUnloadedSingleTablesStatement extends ShowTablesStatement private final String schemaName; - public ShowUnloadedSingleTablesStatement(final DatabaseSegment database, final String storageUnitName, final String schemaName) { + public ShowUnloadedSingleTablesStatement(final FromDatabaseSegment fromDatabase, final String storageUnitName, final String schemaName) { // TODO support like later - super(database, null); + super(fromDatabase, null); this.storageUnitName = storageUnitName; this.schemaName = schemaName; } diff --git a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java index c725b1e642c..31645c1ce5a 100644 --- a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java +++ b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java @@ -98,6 +98,7 @@ import org.apache.shardingsphere.distsql.statement.rql.rule.database.ShowRulesUs import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter; import org.apache.shardingsphere.sql.parser.api.ASTNode; import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; import org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.StringLiteralValue; @@ -134,7 +135,9 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB @Override public ASTNode visitShowTableMetadata(final ShowTableMetadataContext ctx) { Collection<String> tableNames = ctx.tableName().stream().map(this::getIdentifierValue).collect(Collectors.toSet()); - return new ShowTableMetaDataStatement(tableNames, null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowTableMetaDataStatement(tableNames, null == ctx.databaseName() + ? null + : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -216,9 +219,9 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB @Override public ASTNode visitShowStorageUnits(final ShowStorageUnitsContext ctx) { - DatabaseSegment database = null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()); + FromDatabaseSegment fromDatabase = null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); String likePattern = null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern()); - return new ShowStorageUnitsStatement(database, likePattern); + return new ShowStorageUnitsStatement(fromDatabase, likePattern); } @Override @@ -233,9 +236,8 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB @Override public ASTNode visitShowLogicalTables(final ShowLogicalTablesContext ctx) { - return new ShowLogicalTablesStatement(null != ctx.FULL(), - null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), - null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern())); + FromDatabaseSegment fromDatabase = null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new ShowLogicalTablesStatement(null != ctx.FULL(), fromDatabase, null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern())); } @Override @@ -271,7 +273,8 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB @Override public ASTNode visitExportDatabaseConfiguration(final ExportDatabaseConfigurationContext ctx) { - return new ExportDatabaseConfigurationStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()), getIdentifierValue(ctx.filePath())); + return new ExportDatabaseConfigurationStatement(getIdentifierValue(ctx.filePath()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override @@ -291,7 +294,8 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB @Override public ASTNode visitShowRulesUsedStorageUnit(final ShowRulesUsedStorageUnitContext ctx) { - return new ShowRulesUsedStorageUnitStatement(getIdentifierValue(ctx.storageUnitName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName())); + return new ShowRulesUsedStorageUnitStatement(getIdentifierValue(ctx.storageUnitName()), + null == ctx.databaseName() ? null : new FromDatabaseSegment(ctx.FROM().getSymbol().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName()))); } @Override diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/export/ExportDatabaseConfigurationStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/export/ExportDatabaseConfigurationStatement.java index be6493131ae..bfe81446df9 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/export/ExportDatabaseConfigurationStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/export/ExportDatabaseConfigurationStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.distsql.statement.ral.queryable.export; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.distsql.statement.ral.queryable.QueryableRALStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -30,14 +30,9 @@ import java.util.Optional; @RequiredArgsConstructor public final class ExportDatabaseConfigurationStatement extends QueryableRALStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; - private final String filePath; - @Override - public Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); - } + private final FromDatabaseSegment fromDatabase; /** * Get file path. @@ -47,4 +42,9 @@ public final class ExportDatabaseConfigurationStatement extends QueryableRALStat public Optional<String> getFilePath() { return Optional.ofNullable(filePath); } + + @Override + public Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); + } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/show/ShowTableMetaDataStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/show/ShowTableMetaDataStatement.java index b52169826e9..f02fa0fecbe 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/show/ShowTableMetaDataStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/ral/queryable/show/ShowTableMetaDataStatement.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.distsql.statement.ral.queryable.show; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.distsql.statement.ral.queryable.QueryableRALStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Collection; @@ -35,10 +35,10 @@ public final class ShowTableMetaDataStatement extends QueryableRALStatement impl @Getter private final Collection<String> tableNames; - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; @Override - public Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); + public Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java index 6144ecab3d9..06a2313fe5c 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.distsql.statement.rql.resource; import lombok.Getter; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show logical tables statement. @@ -28,8 +28,8 @@ public final class ShowLogicalTablesStatement extends ShowTablesStatement { private final boolean containsFull; - public ShowLogicalTablesStatement(final boolean containsFull, final DatabaseSegment database, final String likePattern) { - super(database, likePattern); + public ShowLogicalTablesStatement(final boolean containsFull, final FromDatabaseSegment fromDatabase, final String likePattern) { + super(fromDatabase, likePattern); this.containsFull = containsFull; } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowStorageUnitsStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowStorageUnitsStatement.java index 52d40284766..e369af52f1d 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowStorageUnitsStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowStorageUnitsStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.distsql.statement.rql.resource; import lombok.Getter; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -31,15 +31,10 @@ import java.util.Optional; @RequiredArgsConstructor public final class ShowStorageUnitsStatement extends ResourceQueryStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; private final String likePattern; - @Override - public Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); - } - /** * Get like pattern. * @@ -48,4 +43,9 @@ public final class ShowStorageUnitsStatement extends ResourceQueryStatement impl public Optional<String> getLikePattern() { return Optional.ofNullable(likePattern); } + + @Override + public Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); + } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java index 0eacd1642ce..cce51692741 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.distsql.statement.rql.resource; import lombok.RequiredArgsConstructor; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -29,20 +29,10 @@ import java.util.Optional; @RequiredArgsConstructor public abstract class ShowTablesStatement extends ResourceQueryStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; private final String likePattern; - /** - * Get database. - * - * @return database - */ - @Override - public final Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); - } - /** * Get like pattern. * @@ -51,4 +41,9 @@ public abstract class ShowTablesStatement extends ResourceQueryStatement impleme public Optional<String> getLikePattern() { return Optional.ofNullable(likePattern); } + + @Override + public final Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); + } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/CountRuleStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/CountRuleStatement.java index 9a0f2cfca3d..e7555f31723 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/CountRuleStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/CountRuleStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.distsql.statement.rql.rule.database; import lombok.Getter; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Count rule statement. @@ -28,8 +28,8 @@ public final class CountRuleStatement extends ShowDatabaseRulesStatement { private final String type; - public CountRuleStatement(final DatabaseSegment database, final String type) { - super(database); + public CountRuleStatement(final FromDatabaseSegment fromDatabase, final String type) { + super(fromDatabase); this.type = type; } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowDatabaseRulesStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowDatabaseRulesStatement.java index d3ed05218fd..591ffea8b78 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowDatabaseRulesStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowDatabaseRulesStatement.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.distsql.statement.rql.rule.database; import lombok.RequiredArgsConstructor; import org.apache.shardingsphere.distsql.statement.rql.rule.RuleQueryStatement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.FromDatabaseAvailable; import java.util.Optional; @@ -30,10 +30,10 @@ import java.util.Optional; @RequiredArgsConstructor public abstract class ShowDatabaseRulesStatement extends RuleQueryStatement implements FromDatabaseAvailable { - private final DatabaseSegment database; + private final FromDatabaseSegment fromDatabase; @Override - public final Optional<DatabaseSegment> getFromDatabase() { - return Optional.ofNullable(database); + public final Optional<FromDatabaseSegment> getFromDatabase() { + return Optional.ofNullable(fromDatabase); } } diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowRulesUsedStorageUnitStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowRulesUsedStorageUnitStatement.java index 30a355bf9d2..48981e8d511 100644 --- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowRulesUsedStorageUnitStatement.java +++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/rule/database/ShowRulesUsedStorageUnitStatement.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.distsql.statement.rql.rule.database; import lombok.Getter; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; /** * Show rules used storage unit statement. @@ -28,8 +28,8 @@ public final class ShowRulesUsedStorageUnitStatement extends ShowDatabaseRulesSt private final String storageUnitName; - public ShowRulesUsedStorageUnitStatement(final String storageUnitName, final DatabaseSegment database) { - super(database); + public ShowRulesUsedStorageUnitStatement(final String storageUnitName, final FromDatabaseSegment fromDatabase) { + super(fromDatabase); this.storageUnitName = storageUnitName; } } diff --git a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java index 72671e94743..833d5433ce5 100644 --- a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java +++ b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java @@ -841,7 +841,7 @@ public final class DorisDALStatementVisitor extends DorisStatementVisitor implem @Override public ASTNode visitFromDatabase(final FromDatabaseContext ctx) { - return new FromDatabaseSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new FromDatabaseSegment(ctx.getStart().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); } @Override diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java index 3b3b3842234..f29f96f9e06 100644 --- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java +++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java @@ -852,7 +852,7 @@ public final class MySQLDALStatementVisitor extends MySQLStatementVisitor implem @Override public ASTNode visitFromDatabase(final FromDatabaseContext ctx) { - return new FromDatabaseSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (DatabaseSegment) visit(ctx.databaseName())); + return new FromDatabaseSegment(ctx.getStart().getStartIndex(), (DatabaseSegment) visit(ctx.databaseName())); } @Override diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dal/FromDatabaseSegment.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dal/FromDatabaseSegment.java index f69227831df..22887fd8eff 100644 --- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dal/FromDatabaseSegment.java +++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/dal/FromDatabaseSegment.java @@ -31,7 +31,14 @@ public final class FromDatabaseSegment implements SQLSegment { private final int startIndex; - private final int stopIndex; - private final DatabaseSegment database; + + /** + * Get stop index. + * + * @return stop index + */ + public int getStopIndex() { + return database.getStopIndex(); + } } diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/FromDatabaseAvailable.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/FromDatabaseAvailable.java index a242069a163..3721247a70d 100644 --- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/FromDatabaseAvailable.java +++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/FromDatabaseAvailable.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.sql.parser.statement.core.statement; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import java.util.Optional; @@ -31,5 +31,5 @@ public interface FromDatabaseAvailable { * * @return from database */ - Optional<DatabaseSegment> getFromDatabase(); + Optional<FromDatabaseSegment> getFromDatabase(); } diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java index 2da05658bdd..c52140ad318 100644 --- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java +++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java @@ -39,6 +39,7 @@ import org.apache.shardingsphere.mode.metadata.MetaDataContexts; import org.apache.shardingsphere.mode.spi.repository.PersistRepository; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; import org.apache.shardingsphere.proxy.backend.session.ConnectionSession; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; import org.apache.shardingsphere.test.mock.AutoMockExtension; @@ -100,6 +101,6 @@ class DistSQLQueryBackendHandlerTest { } private ShowTableMetaDataStatement createSqlStatement() { - return new ShowTableMetaDataStatement(Collections.singleton("t_order"), new DatabaseSegment(0, 0, new IdentifierValue("foo_db"))); + return new ShowTableMetaDataStatement(Collections.singleton("t_order"), new FromDatabaseSegment(0, new DatabaseSegment(0, 0, new IdentifierValue("foo_db")))); } } diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportDatabaseConfigurationExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportDatabaseConfigurationExecutorTest.java index c3066f7953f..d81fd8085f9 100644 --- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportDatabaseConfigurationExecutorTest.java +++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportDatabaseConfigurationExecutorTest.java @@ -31,6 +31,7 @@ import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfi import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration; import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration; import org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource; @@ -70,7 +71,7 @@ class ExportDatabaseConfigurationExecutorTest { when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createShardingRuleConfiguration())); ExportDatabaseConfigurationExecutor executor = new ExportDatabaseConfigurationExecutor(); executor.setDatabase(database); - Collection<LocalDataQueryResultRow> actual = executor.getRows(new ExportDatabaseConfigurationStatement(mock(DatabaseSegment.class), null), mock(ContextManager.class)); + Collection<LocalDataQueryResultRow> actual = executor.getRows(new ExportDatabaseConfigurationStatement(null, mock(FromDatabaseSegment.class)), mock(ContextManager.class)); assertThat(actual.size(), is(1)); LocalDataQueryResultRow row = actual.iterator().next(); assertThat(row.getCell(1), is(loadExpectedRow())); @@ -94,7 +95,7 @@ class ExportDatabaseConfigurationExecutorTest { when(database.getName()).thenReturn("empty_db"); when(database.getResourceMetaData().getStorageUnits()).thenReturn(Collections.emptyMap()); when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.emptyList()); - ExportDatabaseConfigurationStatement sqlStatement = new ExportDatabaseConfigurationStatement(new DatabaseSegment(0, 0, new IdentifierValue("empty_db")), null); + ExportDatabaseConfigurationStatement sqlStatement = new ExportDatabaseConfigurationStatement(null, new FromDatabaseSegment(0, new DatabaseSegment(0, 0, new IdentifierValue("empty_db")))); ExportDatabaseConfigurationExecutor executor = new ExportDatabaseConfigurationExecutor(); executor.setDatabase(database); Collection<LocalDataQueryResultRow> actual = executor.getRows(sqlStatement, mock(ContextManager.class)); diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ShowTableMetaDataExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ShowTableMetaDataExecutorTest.java index b8fbba53d3a..0b1ef244fb5 100644 --- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ShowTableMetaDataExecutorTest.java +++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ShowTableMetaDataExecutorTest.java @@ -28,6 +28,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.mode.manager.ContextManager; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; +import org.apache.shardingsphere.sql.parser.statement.core.segment.dal.FromDatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment; import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; import org.apache.shardingsphere.test.mock.AutoMockExtension; @@ -87,6 +88,6 @@ class ShowTableMetaDataExecutorTest { } private ShowTableMetaDataStatement createSqlStatement() { - return new ShowTableMetaDataStatement(Collections.singleton("t_order"), new DatabaseSegment(0, 0, new IdentifierValue("foo_db"))); + return new ShowTableMetaDataStatement(Collections.singleton("t_order"), new FromDatabaseSegment(0, new DatabaseSegment(0, 0, new IdentifierValue("foo_db")))); } } diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java index b3f2a6e6f67..ef8b7ceb764 100644 --- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java +++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java @@ -173,7 +173,7 @@ class ShowTablesExecutorTest { @Test void assertShowTableFromUncompletedDatabase() throws SQLException { - ShowTablesStatement showTablesStatement = new ShowTablesStatement(new FromDatabaseSegment(0, 0, new DatabaseSegment(0, 0, new IdentifierValue("uncompleted"))), null, false); + ShowTablesStatement showTablesStatement = new ShowTablesStatement(new FromDatabaseSegment(0, new DatabaseSegment(0, 0, new IdentifierValue("uncompleted"))), null, false); ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, databaseType); ContextManager contextManager = mockContextManager(mockDatabases()); when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager); diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/queryable/ShowTableMetaDataStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/queryable/ShowTableMetaDataStatementAssert.java index adb3d8a3e80..0e5b6fea22c 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/queryable/ShowTableMetaDataStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/queryable/ShowTableMetaDataStatementAssert.java @@ -45,7 +45,7 @@ public final class ShowTableMetaDataStatementAssert { public static void assertIs(final SQLCaseAssertContext assertContext, final ShowTableMetaDataStatement actual, final ShowTableMetaDataStatementTestCase expected) { if (ExistingAssert.assertIs(assertContext, actual, expected)) { assertTrue(actual.getFromDatabase().isPresent()); - DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get(), expected.getDatabase()); + DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get().getDatabase(), expected.getDatabase()); assertThat(assertContext.getText("Table assertion error:"), actual.getTableNames(), is(expected.getTableNames())); } } diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java index 6a48a351ea1..2280a035306 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java @@ -56,7 +56,7 @@ public final class AlterReadwriteSplittingStorageUnitStatusStatementAssert { assertFalse(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should not exist.")); } else { assertTrue(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should exist.")); - DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get(), expected.getDatabase()); + DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get().getDatabase(), expected.getDatabase()); } } } diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowRulesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowRulesStatementAssert.java index 31eefbbc83e..2eb496277da 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowRulesStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowRulesStatementAssert.java @@ -53,7 +53,7 @@ public final class ShowRulesStatementAssert { assertFalse(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should not exist.")); } else { assertTrue(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should exist.")); - DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get(), expected.getDatabase()); + DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get().getDatabase(), expected.getDatabase()); } } } diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java index 5ddadc9a2db..ba368ae3eee 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowStorageUnitsStatementAssert.java @@ -54,7 +54,7 @@ public final class ShowStorageUnitsStatementAssert { assertFalse(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should not exist.")); } else { assertTrue(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should exist.")); - DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get(), expected.getDatabase()); + DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get().getDatabase(), expected.getDatabase()); } if (null == expected.getLikePattern()) { assertFalse(actual.getLikePattern().isPresent(), assertContext.getText("Actual like pattern should not exist.")); diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java index 58480a16591..5d67cbca684 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java @@ -54,7 +54,7 @@ public final class ShowTablesStatementAssert { assertFalse(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should not exist.")); } else { assertTrue(actual.getFromDatabase().isPresent(), assertContext.getText("Actual database should exist.")); - DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get(), expected.getDatabase()); + DatabaseAssert.assertIs(assertContext, actual.getFromDatabase().get().getDatabase(), expected.getDatabase()); } if (null == expected.getLikePattern()) { assertFalse(actual.getLikePattern().isPresent(), assertContext.getText("Actual like pattern should not exist."));