You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/07/01 16:15:54 UTC
(shardingsphere) branch master updated: Remove useless test dependencies on infra-binder-core module (#35846)
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 2d03ba98373 Remove useless test dependencies on infra-binder-core module (#35846)
2d03ba98373 is described below
commit 2d03ba98373749b24adaddb705eacdef4043c8c2
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed Jul 2 00:15:49 2025 +0800
Remove useless test dependencies on infra-binder-core module (#35846)
* Remove useless test dependencies on infra-binder-core module
* Remove useless test dependencies on infra-binder-core module
---
infra/binder/core/pom.xml | 36 ----------------------
.../pagination/engine/PaginationContextEngine.java | 8 +++--
.../engine/RowNumberPaginationContextEngine.java | 8 ++---
.../engine/LimitPaginationContextEngineTest.java | 8 +++--
.../RowNumberPaginationContextEngineTest.java | 21 +++++--------
.../engine/TopPaginationContextEngineTest.java | 16 +++-------
.../projection/impl/ColumnProjectionTest.java | 12 --------
7 files changed, 26 insertions(+), 83 deletions(-)
diff --git a/infra/binder/core/pom.xml b/infra/binder/core/pom.xml
index 0fbdda267ba..49104d66cea 100644
--- a/infra/binder/core/pom.xml
+++ b/infra/binder/core/pom.xml
@@ -50,41 +50,5 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-sql92</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-mysql</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-postgresql</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-opengauss</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-oracle</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
index 34ee7253c9f..42830bdb13a 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
+++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.infra.binder.context.segment.select.pagination
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.binder.context.segment.select.pagination.PaginationContext;
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.ProjectionsContext;
+import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.pagination.DialectPaginationOption;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
@@ -68,8 +69,11 @@ public final class PaginationContextEngine {
if (topProjectionSegment.isPresent()) {
return new TopPaginationContextEngine().createPaginationContext(topProjectionSegment.get(), expressions, params);
}
- if (!expressions.isEmpty() && new DatabaseTypeRegistry(databaseType).getDialectDatabaseMetaData().getPaginationOption().isContainsRowNumber()) {
- return new RowNumberPaginationContextEngine(databaseType).createPaginationContext(expressions, projectionsContext, params);
+ if (!expressions.isEmpty()) {
+ DialectPaginationOption paginationOption = new DatabaseTypeRegistry(databaseType).getDialectDatabaseMetaData().getPaginationOption();
+ if (paginationOption.isContainsRowNumber()) {
+ return new RowNumberPaginationContextEngine(paginationOption).createPaginationContext(expressions, projectionsContext, params);
+ }
}
return new PaginationContext(null, null, params);
}
diff --git a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
index f5d647fa0c7..80eebe1c623 100644
--- a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
+++ b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
@@ -18,11 +18,10 @@
package org.apache.shardingsphere.infra.binder.context.segment.select.pagination.engine;
import com.google.common.base.Strings;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.binder.context.segment.select.pagination.PaginationContext;
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.ProjectionsContext;
import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.pagination.DialectPaginationOption;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression;
@@ -43,14 +42,11 @@ import java.util.stream.Collectors;
/**
* Pagination context engine for row number.
*/
+@RequiredArgsConstructor
public final class RowNumberPaginationContextEngine {
private final DialectPaginationOption paginationOption;
- public RowNumberPaginationContextEngine(final DatabaseType databaseType) {
- paginationOption = new DatabaseTypeRegistry(databaseType).getDialectDatabaseMetaData().getPaginationOption();
- }
-
/**
* Create pagination context.
*
diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/LimitPaginationContextEngineTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/LimitPaginationContextEngineTest.java
index 8d393f54594..532857e028f 100644
--- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/LimitPaginationContextEngineTest.java
+++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/LimitPaginationContextEngineTest.java
@@ -31,23 +31,25 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
class LimitPaginationContextEngineTest {
+ private final LimitPaginationContextEngine paginationContextEngine = new LimitPaginationContextEngine();
+
@Test
void assertPaginationContextCreatedProperlyWhenPaginationValueSegmentIsNumberLiteralPaginationValueSegment() {
LimitSegment limitSegment = new LimitSegment(0, 10, new NumberLiteralLimitValueSegment(0, 10, 1L), new NumberLiteralLimitValueSegment(10, 20, 2L));
- PaginationContext paginationContext = new LimitPaginationContextEngine().createPaginationContext(limitSegment, Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(limitSegment, Collections.emptyList());
assertTrue(paginationContext.isHasPagination());
}
@Test
void assertPaginationContextCreatedProperlyWhenOffsetAndRowCountAreBothNull() {
- PaginationContext paginationContext = new LimitPaginationContextEngine().createPaginationContext(new LimitSegment(0, 10, null, null), Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(new LimitSegment(0, 10, null, null), Collections.emptyList());
assertFalse(paginationContext.isHasPagination());
}
@Test
void assertPaginationContextCreatedProperlyWhenPaginationValueSegmentIsParameterMarkerPaginationValueSegment() {
LimitSegment limitSegment = new LimitSegment(0, 10, new ParameterMarkerLimitValueSegment(0, 10, 0), new ParameterMarkerLimitValueSegment(10, 20, 1));
- PaginationContext paginationContext = new LimitPaginationContextEngine().createPaginationContext(limitSegment, Arrays.asList(15L, 20L));
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(limitSegment, Arrays.asList(15L, 20L));
assertTrue(paginationContext.isHasPagination());
}
}
diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngineTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngineTest.java
index b014a8dc55b..dd0c0748dad 100644
--- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngineTest.java
+++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngineTest.java
@@ -21,8 +21,8 @@ import org.apache.shardingsphere.infra.binder.context.segment.select.pagination.
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.ProjectionsContext;
import org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
+import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.pagination.DialectPaginationOption;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
@@ -50,13 +50,12 @@ class RowNumberPaginationContextEngineTest {
private static final String ROW_NUMBER_COLUMN_ALIAS = "predicateRowNumberAlias";
- private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "Oracle");
+ private final RowNumberPaginationContextEngine paginationContextEngine = new RowNumberPaginationContextEngine(new DialectPaginationOption(true, "ROWNUM"));
@Test
void assertCreatePaginationContextWhenRowNumberAliasNotPresent() {
ProjectionsContext projectionsContext = new ProjectionsContext(0, 0, false, Collections.emptyList());
- PaginationContext paginationContext =
- new RowNumberPaginationContextEngine(databaseType).createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
assertFalse(paginationContext.getRowCountSegment().isPresent());
}
@@ -65,8 +64,7 @@ class RowNumberPaginationContextEngineTest {
void assertCreatePaginationContextWhenRowNumberAliasIsPresentAndRowNumberPredicatesIsEmpty() {
Projection projectionWithRowNumberAlias = new ColumnProjection(null, ROW_NUMBER_COLUMN_NAME, ROW_NUMBER_COLUMN_ALIAS, mock(DatabaseType.class));
ProjectionsContext projectionsContext = new ProjectionsContext(0, 0, false, Collections.singleton(projectionWithRowNumberAlias));
- PaginationContext paginationContext =
- new RowNumberPaginationContextEngine(databaseType).createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
assertFalse(paginationContext.getRowCountSegment().isPresent());
}
@@ -99,7 +97,7 @@ class RowNumberPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(ROW_NUMBER_COLUMN_NAME));
BinaryOperationExpression predicateSegment = new BinaryOperationExpression(0, 0, left, null, null, null);
andPredicate.getPredicates().add(predicateSegment);
- PaginationContext paginationContext = new RowNumberPaginationContextEngine(databaseType).createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(Collections.emptyList(), projectionsContext, Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
assertFalse(paginationContext.getRowCountSegment().isPresent());
}
@@ -111,8 +109,7 @@ class RowNumberPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(ROW_NUMBER_COLUMN_NAME));
ParameterMarkerExpressionSegment right = new ParameterMarkerExpressionSegment(0, 10, 0);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, ">", null);
- PaginationContext paginationContext = new RowNumberPaginationContextEngine(databaseType)
- .createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.singletonList(1));
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.singletonList(1));
Optional<PaginationValueSegment> offSetSegmentPaginationValue = paginationContext.getOffsetSegment();
assertTrue(offSetSegmentPaginationValue.isPresent());
assertThat(offSetSegmentPaginationValue.get(), instanceOf(ParameterMarkerRowNumberValueSegment.class));
@@ -125,8 +122,7 @@ class RowNumberPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(ROW_NUMBER_COLUMN_NAME));
LiteralExpressionSegment right = new LiteralExpressionSegment(0, 10, 100);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, operator, null);
- PaginationContext paginationContext = new RowNumberPaginationContextEngine(databaseType)
- .createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
Optional<PaginationValueSegment> paginationValueSegment = paginationContext.getRowCountSegment();
assertTrue(paginationValueSegment.isPresent());
@@ -142,8 +138,7 @@ class RowNumberPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(ROW_NUMBER_COLUMN_NAME));
LiteralExpressionSegment right = new LiteralExpressionSegment(0, 10, 100);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, operator, null);
- PaginationContext rowNumberPaginationContextEngine = new RowNumberPaginationContextEngine(databaseType)
- .createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.emptyList());
+ PaginationContext rowNumberPaginationContextEngine = paginationContextEngine.createPaginationContext(Collections.singletonList(expression), projectionsContext, Collections.emptyList());
Optional<PaginationValueSegment> paginationValueSegment = rowNumberPaginationContextEngine.getOffsetSegment();
assertTrue(paginationValueSegment.isPresent());
PaginationValueSegment actualPaginationValueSegment = paginationValueSegment.get();
diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngineTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngineTest.java
index 15d6a3ee141..f9611b095ce 100644
--- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngineTest.java
+++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngineTest.java
@@ -29,7 +29,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.paginatio
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.rownum.ParameterMarkerRowNumberValueSegment;
import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.top.TopProjectionSegment;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.Collections;
@@ -42,17 +41,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
class TopPaginationContextEngineTest {
- private TopPaginationContextEngine topPaginationContextEngine;
-
- @BeforeEach
- void setUp() {
- topPaginationContextEngine = new TopPaginationContextEngine();
- }
+ private final TopPaginationContextEngine paginationContextEngine = new TopPaginationContextEngine();
@Test
void assertCreatePaginationContextWhenRowNumberPredicateNotPresent() {
TopProjectionSegment topProjectionSegment = new TopProjectionSegment(0, 10, null, "rowNumberAlias");
- PaginationContext paginationContext = topPaginationContextEngine.createPaginationContext(topProjectionSegment, Collections.emptyList(), Collections.emptyList());
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(topProjectionSegment, Collections.emptyList(), Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
assertFalse(paginationContext.getRowCountSegment().isPresent());
}
@@ -72,7 +66,7 @@ class TopPaginationContextEngineTest {
String name = "rowNumberAlias";
ColumnSegment columnSegment = new ColumnSegment(0, 10, new IdentifierValue(name));
InExpression inExpression = new InExpression(0, 0, columnSegment, new ListExpression(0, 0), false);
- PaginationContext paginationContext = topPaginationContextEngine.createPaginationContext(
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(
new TopProjectionSegment(0, 10, null, name), Collections.singletonList(inExpression), Collections.emptyList());
assertFalse(paginationContext.getOffsetSegment().isPresent());
assertFalse(paginationContext.getRowCountSegment().isPresent());
@@ -84,7 +78,7 @@ class TopPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(name));
ParameterMarkerExpressionSegment right = new ParameterMarkerExpressionSegment(0, 10, 0);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, ">", null);
- PaginationContext paginationContext = topPaginationContextEngine.createPaginationContext(
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(
new TopProjectionSegment(0, 10, null, name), Collections.singletonList(expression), Collections.singletonList(1));
assertTrue(paginationContext.getOffsetSegment().isPresent());
PaginationValueSegment paginationValueSegment = paginationContext.getOffsetSegment().get();
@@ -101,7 +95,7 @@ class TopPaginationContextEngineTest {
ColumnSegment left = new ColumnSegment(0, 10, new IdentifierValue(name));
LiteralExpressionSegment right = new LiteralExpressionSegment(0, 10, 100);
BinaryOperationExpression expression = new BinaryOperationExpression(0, 0, left, right, operator, null);
- PaginationContext paginationContext = topPaginationContextEngine.createPaginationContext(
+ PaginationContext paginationContext = paginationContextEngine.createPaginationContext(
new TopProjectionSegment(0, 10, null, name), Collections.singletonList(expression), Collections.emptyList());
assertTrue(paginationContext.getOffsetSegment().isPresent());
PaginationValueSegment paginationValueSegment = paginationContext.getOffsetSegment().get();
diff --git a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
index 3453f7c02d1..b55cda8d602 100644
--- a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
+++ b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/ColumnProjectionTest.java
@@ -88,18 +88,6 @@ class ColumnProjectionTest {
assertFalse(new ColumnProjection(new IdentifierValue("owner"), new IdentifierValue("name"), new IdentifierValue("alias"), databaseType).getRightParentheses().isPresent());
}
- @Test
- void assertGetColumnNameWithMySQL() {
- DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
- assertThat(new ColumnProjection(null, "name", "alias", databaseType).getColumnName(), is("name"));
- }
-
- @Test
- void assertGetColumnNameWithPostgreSQL() {
- DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
- assertThat(new ColumnProjection(null, "name", "alias", databaseType).getColumnName(), is("alias"));
- }
-
@Test
void assertGetColumnNameWithAlias() {
assertThat(new ColumnProjection(null, "name", "alias", databaseType).getColumnName(), is("alias"));