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 abc53698288 Move DialectTableAvailableSQLStatementContextExtractor (#35653) abc53698288 is described below commit abc536982887b44ec4e87a95376d51dd769ad0d4 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Mon Jun 9 23:42:18 2025 +0800 Move DialectTableAvailableSQLStatementContextExtractor (#35653) --- .../merge/dal/EncryptDALResultDecoratorTest.java | 2 +- .../EncryptShowCreateTableMergedResultTest.java | 2 +- .../type/ShardingRouteEngineFactoryTest.java | 2 +- ...TableAvailableSQLStatementContextExtractor.java | 2 +- .../extractor/SQLStatementContextExtractor.java | 5 ++- .../statement/SQLStatementContextFactory.java | 3 +- .../TableAvailableSQLStatementContext.java | 3 +- .../TableAvailableSQLStatementContextTest.java | 1 - .../TableAvailableSQLStatementContextTest.java | 51 ---------------------- ...TableAvailableSQLStatementContextExtractor.java | 2 +- ...lectTableAvailableSQLStatementContextExtractor} | 0 ...TableAvailableSQLStatementContextExtractor.java | 2 +- ...lectTableAvailableSQLStatementContextExtractor} | 0 .../backend/connector/ProxySQLExecutorTest.java | 2 +- 14 files changed, 13 insertions(+), 64 deletions(-) diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java index a6bf763107b..b5d846ef590 100644 --- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java +++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecoratorTest.java @@ -21,7 +21,7 @@ import org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowColumnsMerged import org.apache.shardingsphere.encrypt.merge.dal.show.EncryptShowCreateTableMergedResult; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; +import org.apache.shardingsphere.infra.binder.context.statement.TableAvailableSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dal.ExplainStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dal.ShowColumnsStatementContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResultTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResultTest.java index a39798cc26c..8597a413a5a 100644 --- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResultTest.java +++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResultTest.java @@ -24,7 +24,7 @@ import org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLE import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.rule.table.EncryptTable; import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; +import org.apache.shardingsphere.infra.binder.context.statement.TableAvailableSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.merge.result.MergedResult; diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java index cb6fd34de61..30fff3252c0 100644 --- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java +++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java @@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.route.engine.type; import org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext; import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; +import org.apache.shardingsphere.infra.binder.context.statement.TableAvailableSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.ddl.CursorStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext; import org.apache.shardingsphere.infra.binder.context.type.TableAvailable; diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/DialectTableAvailableSQLStatementContextExtractor.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/DialectTableAvailableSQLStatementContextExtractor.java similarity index 95% rename from infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/DialectTableAvailableSQLStatementContextExtractor.java rename to infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/DialectTableAvailableSQLStatementContextExtractor.java index 376d6f2c07e..d9142562688 100644 --- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/DialectTableAvailableSQLStatementContextExtractor.java +++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/DialectTableAvailableSQLStatementContextExtractor.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.context.statement.table; +package org.apache.shardingsphere.infra.binder.context.extractor; import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPI; import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI; diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/SQLStatementContextExtractor.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/SQLStatementContextExtractor.java index e69f52552fc..347a6c162d4 100644 --- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/SQLStatementContextExtractor.java +++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/extractor/SQLStatementContextExtractor.java @@ -45,6 +45,9 @@ import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; +/** + * SQL statement context extractor. + */ @HighFrequencyInvocation @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class SQLStatementContextExtractor { @@ -122,7 +125,7 @@ public final class SQLStatementContextExtractor { return Collections.emptySet(); } Collection<SelectStatementContext> allSubqueryContexts = getAllSubqueryContexts(sqlStatementContext); - return SQLStatementContextExtractor.getWhereSegments((WhereAvailable) sqlStatementContext, allSubqueryContexts); + return getWhereSegments((WhereAvailable) sqlStatementContext, allSubqueryContexts); } /** diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactory.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactory.java index 23760285032..ded949f781a 100644 --- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactory.java +++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactory.java @@ -19,8 +19,7 @@ package org.apache.shardingsphere.infra.binder.context.statement; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; +import org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor; import org.apache.shardingsphere.infra.binder.context.statement.type.dal.ExplainStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dal.ShowColumnsStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dal.ShowIndexStatementContext; diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContext.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContext.java similarity index 95% rename from infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContext.java rename to infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContext.java index f44c1faf30b..96c8613991f 100644 --- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContext.java +++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContext.java @@ -15,11 +15,10 @@ * limitations under the License. */ -package org.apache.shardingsphere.infra.binder.context.statement.table; +package org.apache.shardingsphere.infra.binder.context.statement; import lombok.Getter; import org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext; -import org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.type.TableAvailable; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment; diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContextTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContextTest.java index a915cc9c1b0..7d7b8d21265 100644 --- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContextTest.java +++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/TableAvailableSQLStatementContextTest.java @@ -17,7 +17,6 @@ package org.apache.shardingsphere.infra.binder.context.statement; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment; diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContextTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContextTest.java deleted file mode 100644 index d9d0e9bc5d6..00000000000 --- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/table/TableAvailableSQLStatementContextTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.shardingsphere.infra.binder.context.statement.table; - -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment; -import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment; -import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.GrantStatement; -import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue; -import org.junit.jupiter.api.Test; - -import java.util.Arrays; -import java.util.stream.Collectors; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.mockito.Mockito.mock; - -class TableAvailableSQLStatementContextTest { - - @Test - void assertNewInstance() { - GrantStatement sqlStatement = new GrantStatement(); - TableAvailableSQLStatementContext actual = new TableAvailableSQLStatementContext(mock(), - sqlStatement, Arrays.asList(new SimpleTableSegment(createTableNameSegment("foo_tbl")), new SimpleTableSegment(createTableNameSegment("bar_tbl")))); - assertThat(actual.getSqlStatement(), is(sqlStatement)); - assertThat(actual.getTablesContext().getSimpleTables().stream() - .map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toList()), is(Arrays.asList("foo_tbl", "bar_tbl"))); - } - - private TableNameSegment createTableNameSegment(final String tableName) { - TableNameSegment result = new TableNameSegment(0, 0, new IdentifierValue(tableName)); - result.setTableBoundInfo(new TableSegmentBoundInfo(new IdentifierValue("foo_db"), new IdentifierValue("foo_schema"))); - return result; - } -} diff --git a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLTableAvailableSQLStatementContextExtractor.java b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLTableAvailableSQLStatementContextExtractor.java index 73e6412df69..e65d9fc9c3c 100644 --- a/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLTableAvailableSQLStatementContextExtractor.java +++ b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLTableAvailableSQLStatementContextExtractor.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.infra.binder.mysql; -import org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor; +import org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLFlushStatement; diff --git a/infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor b/infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor similarity index 100% rename from infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor rename to infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor diff --git a/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/SQLServerTableAvailableSQLStatementContextExtractor.java b/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/SQLServerTableAvailableSQLStatementContextExtractor.java index e6fbb32003c..56a9d7d548d 100644 --- a/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/SQLServerTableAvailableSQLStatementContextExtractor.java +++ b/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/SQLServerTableAvailableSQLStatementContextExtractor.java @@ -17,7 +17,7 @@ package org.apache.shardingsphere.infra.binder.sqlserver; -import org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor; +import org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor; import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment; import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.DenyUserStatement; diff --git a/infra/binder/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor b/infra/binder/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor similarity index 100% rename from infra/binder/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.statement.table.DialectTableAvailableSQLStatementContextExtractor rename to infra/binder/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.extractor.DialectTableAvailableSQLStatementContextExtractor diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java index 8394ad708ab..12bcd1947f5 100644 --- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java +++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java @@ -18,7 +18,7 @@ package org.apache.shardingsphere.proxy.backend.connector; import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext; -import org.apache.shardingsphere.infra.binder.context.statement.table.TableAvailableSQLStatementContext; +import org.apache.shardingsphere.infra.binder.context.statement.TableAvailableSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.ddl.CreateTableStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.ddl.CursorStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.type.dml.InsertStatementContext;