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 2efaab8ed0c Revise javadoc on extractors (#33763)
2efaab8ed0c is described below
commit 2efaab8ed0cedcaa3f383c1d8bb84b272080c25a
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Nov 21 20:27:19 2024 +0800
Revise javadoc on extractors (#33763)
* Revise javadoc on extractors
* Revise javadoc on extractors
---
.../EncryptPredicateColumnSupportedChecker.java | 2 +-
.../rewrite/condition/EncryptConditionEngine.java | 2 +-
.../EncryptPredicateColumnTokenGenerator.java | 2 +-
...DeleteStatementDataSourceMappingsRetriever.java | 2 +-
...SelectStatementDataSourceMappingsRetriever.java | 2 +-
...UpdateStatementDataSourceMappingsRetriever.java | 2 +-
.../engine/WhereClauseShardingConditionEngine.java | 2 +-
.../shardingsphere/sharding/rule/ShardingRule.java | 2 +-
.../engine/RowNumberPaginationContextEngine.java | 2 +-
.../engine/TopPaginationContextEngine.java | 2 +-
.../statement/dml/SelectStatementContext.java | 6 ++--
.../statement/core/extractor/ColumnExtractor.java | 16 ++++-----
.../core/extractor/ExpressionExtractor.java | 26 +++++++-------
.../core/extractor/SubqueryExtractor.java | 8 ++---
.../statement/core/extractor/WhereExtractor.java | 28 +++++++--------
.../sql/parser/statement/core/util/SQLUtils.java | 4 +--
.../core/extractor/ExpressionExtractorTest.java | 8 ++---
.../core/extractor/SubqueryExtractorTest.java | 42 +++++++++++-----------
.../core/extractor/WhereExtractorTest.java | 14 ++++----
19 files changed, 86 insertions(+), 86 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/predicate/EncryptPredicateColumnSupportedChecker.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/predicate/EncryptPredicateColumnSupportedChecker.java
index 8650e8fd1ff..73e9fbfc242 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/predicate/EncryptPredicateColumnSupportedChecker.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/predicate/EncryptPredicateColumnSupportedChecker.java
@@ -77,7 +77,7 @@ public final class EncryptPredicateColumnSupportedChecker
implements SupportedSQ
private boolean includesLike(final Collection<WhereSegment> whereSegments,
final ColumnSegment targetColumnSegment) {
for (WhereSegment each : whereSegments) {
- Collection<AndPredicate> andPredicates =
ExpressionExtractor.getAndPredicates(each.getExpr());
+ Collection<AndPredicate> andPredicates =
ExpressionExtractor.extractAndPredicates(each.getExpr());
for (AndPredicate andPredicate : andPredicates) {
if (isLikeColumnSegment(andPredicate, targetColumnSegment)) {
return true;
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index 24d661a590e..db6cb8b5495 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -99,7 +99,7 @@ public final class EncryptConditionEngine {
ShardingSphereSchema schema = ((TableAvailable)
sqlStatementContext).getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
Map<String, String> expressionTableNames = ((TableAvailable)
sqlStatementContext).getTablesContext().findTableNames(columnSegments, schema);
for (WhereSegment each : whereSegments) {
- Collection<AndPredicate> andPredicates =
ExpressionExtractor.getAndPredicates(each.getExpr());
+ Collection<AndPredicate> andPredicates =
ExpressionExtractor.extractAndPredicates(each.getExpr());
for (AndPredicate predicate : andPredicates) {
addEncryptConditions(result, predicate.getPredicates(),
expressionTableNames);
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
index 00de7be6437..b1b9c1b6906 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
@@ -113,7 +113,7 @@ public final class EncryptPredicateColumnTokenGenerator
implements CollectionSQL
private boolean includesLike(final Collection<WhereSegment> whereSegments,
final ColumnSegment targetColumnSegment) {
for (WhereSegment each : whereSegments) {
- Collection<AndPredicate> andPredicates =
ExpressionExtractor.getAndPredicates(each.getExpr());
+ Collection<AndPredicate> andPredicates =
ExpressionExtractor.extractAndPredicates(each.getExpr());
for (AndPredicate andPredicate : andPredicates) {
if (isLikeColumnSegment(andPredicate, targetColumnSegment)) {
return true;
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowDeleteStatementDataSourceMappingsRetriever.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowDeleteStatementDataSourceMappingsRetriever.java
index 3c0ebb2d7da..eb0517c4d61 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowDeleteStatementDataSourceMappingsRetriever.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowDeleteStatementDataSourceMappingsRetriever.java
@@ -61,7 +61,7 @@ public final class
ShadowDeleteStatementDataSourceMappingsRetriever extends Shad
private Collection<ExpressionSegment> getWhereSegment() {
Collection<ExpressionSegment> result = new LinkedList<>();
for (WhereSegment each : sqlStatementContext.getWhereSegments()) {
- for (AndPredicate predicate :
ExpressionExtractor.getAndPredicates(each.getExpr())) {
+ for (AndPredicate predicate :
ExpressionExtractor.extractAndPredicates(each.getExpr())) {
result.addAll(predicate.getPredicates());
}
}
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowSelectStatementDataSourceMappingsRetriever.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowSelectStatementDataSourceMappingsRetriever.java
index 8c7e31feeb6..1eed56d03ee 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowSelectStatementDataSourceMappingsRetriever.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowSelectStatementDataSourceMappingsRetriever.java
@@ -68,7 +68,7 @@ public final class
ShadowSelectStatementDataSourceMappingsRetriever extends Shad
private Collection<ExpressionSegment> getWhereSegment() {
Collection<ExpressionSegment> result = new LinkedList<>();
for (WhereSegment each : sqlStatementContext.getWhereSegments()) {
- for (AndPredicate predicate :
ExpressionExtractor.getAndPredicates(each.getExpr())) {
+ for (AndPredicate predicate :
ExpressionExtractor.extractAndPredicates(each.getExpr())) {
result.addAll(predicate.getPredicates());
}
}
diff --git
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowUpdateStatementDataSourceMappingsRetriever.java
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowUpdateStatementDataSourceMappingsRetriever.java
index 04be5042e2c..1f23bb5db7c 100644
---
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowUpdateStatementDataSourceMappingsRetriever.java
+++
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/retriever/dml/table/column/impl/ShadowUpdateStatementDataSourceMappingsRetriever.java
@@ -65,7 +65,7 @@ public final class
ShadowUpdateStatementDataSourceMappingsRetriever extends Shad
private Collection<ExpressionSegment> getWhereSegment() {
Collection<ExpressionSegment> result = new LinkedList<>();
for (WhereSegment each : sqlStatementContext.getWhereSegments()) {
- for (AndPredicate predicate :
ExpressionExtractor.getAndPredicates(each.getExpr())) {
+ for (AndPredicate predicate :
ExpressionExtractor.extractAndPredicates(each.getExpr())) {
result.addAll(predicate.getPredicates());
}
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
index 8634f9b1340..7613839e394 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
@@ -93,7 +93,7 @@ public final class WhereClauseShardingConditionEngine {
}
private Collection<ShardingCondition> createShardingConditions(final
ExpressionSegment expression, final List<Object> params, final Map<String,
String> columnExpressionTableNames) {
- Collection<AndPredicate> andPredicates =
ExpressionExtractor.getAndPredicates(expression);
+ Collection<AndPredicate> andPredicates =
ExpressionExtractor.extractAndPredicates(expression);
Collection<ShardingCondition> result = new LinkedList<>();
for (AndPredicate each : andPredicates) {
Map<Column, Collection<ShardingConditionValue>>
shardingConditionValues = createShardingConditionValueMap(each.getPredicates(),
params, columnExpressionTableNames);
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index f013c71c985..037f8c34982 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -582,7 +582,7 @@ public final class ShardingRule implements DatabaseRule {
Collection<String> databaseJoinConditionTables = new
HashSet<>(tableNames.size(), 1F);
Collection<String> tableJoinConditionTables = new
HashSet<>(tableNames.size(), 1F);
for (WhereSegment each : whereSegments) {
- Collection<AndPredicate> andPredicates =
ExpressionExtractor.getAndPredicates(each.getExpr());
+ Collection<AndPredicate> andPredicates =
ExpressionExtractor.extractAndPredicates(each.getExpr());
if (andPredicates.size() > 1) {
return false;
}
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
index 5d75f9618db..8e0e5ac24c9 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
@@ -74,7 +74,7 @@ public final class RowNumberPaginationContextEngine {
if (!rowNumberAlias.isPresent()) {
return new PaginationContext(null, null, params);
}
- Collection<AndPredicate> andPredicates =
expressions.stream().flatMap(each ->
ExpressionExtractor.getAndPredicates(each).stream()).collect(Collectors.toList());
+ Collection<AndPredicate> andPredicates =
expressions.stream().flatMap(each ->
ExpressionExtractor.extractAndPredicates(each).stream()).collect(Collectors.toList());
Collection<BinaryOperationExpression> rowNumberPredicates =
getRowNumberPredicates(andPredicates, rowNumberAlias.get());
return rowNumberPredicates.isEmpty() ? new PaginationContext(null,
null, params) : createPaginationWithRowNumber(rowNumberPredicates, params);
}
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngine.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngine.java
index a0811fe4167..0bbbec895c4 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngine.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/TopPaginationContextEngine.java
@@ -50,7 +50,7 @@ public final class TopPaginationContextEngine {
* @return pagination context
*/
public PaginationContext createPaginationContext(final
TopProjectionSegment topProjectionSegment, final Collection<ExpressionSegment>
expressions, final List<Object> params) {
- Collection<AndPredicate> andPredicates =
expressions.stream().flatMap(each ->
ExpressionExtractor.getAndPredicates(each).stream()).collect(Collectors.toList());
+ Collection<AndPredicate> andPredicates =
expressions.stream().flatMap(each ->
ExpressionExtractor.extractAndPredicates(each).stream()).collect(Collectors.toList());
Optional<ExpressionSegment> rowNumberPredicate = expressions.isEmpty()
? Optional.empty() : getRowNumberPredicate(andPredicates,
topProjectionSegment.getAlias());
Optional<PaginationValueSegment> offset =
rowNumberPredicate.isPresent() ?
createOffsetWithRowNumber(rowNumberPredicate.get()) : Optional.empty();
PaginationValueSegment rowCount = topProjectionSegment.getTop();
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
index c98ad5938df..b094b2e3dc7 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
@@ -130,8 +130,8 @@ public final class SelectStatementContext extends
CommonSQLStatementContext impl
private void extractWhereSegments(final Collection<WhereSegment>
whereSegments, final SelectStatement selectStatement) {
selectStatement.getWhere().ifPresent(whereSegments::add);
-
whereSegments.addAll(WhereExtractor.getSubqueryWhereSegments(selectStatement));
-
whereSegments.addAll(WhereExtractor.getJoinWhereSegments(selectStatement));
+
whereSegments.addAll(WhereExtractor.extractSubqueryWhereSegments(selectStatement));
+
whereSegments.addAll(WhereExtractor.extractJoinWhereSegments(selectStatement));
}
private Collection<TableSegment> getAllTableSegments(final
Collection<TableSegment> inheritedTables) {
@@ -187,7 +187,7 @@ public final class SelectStatementContext extends
CommonSQLStatementContext impl
private Map<Integer, SelectStatementContext> createSubqueryContexts(final
ShardingSphereMetaData metaData, final List<Object> params, final String
currentDatabaseName,
final
Collection<TableSegment> tableSegments) {
- Collection<SubquerySegment> subquerySegments =
SubqueryExtractor.getSubquerySegments(getSqlStatement(), false);
+ Collection<SubquerySegment> subquerySegments =
SubqueryExtractor.extractSubquerySegments(getSqlStatement(), false);
Map<Integer, SelectStatementContext> result = new
HashMap<>(subquerySegments.size(), 1F);
for (SubquerySegment each : subquerySegments) {
SelectStatementContext subqueryContext = new
SelectStatementContext(metaData, params, each.getSelect(), currentDatabaseName,
tableSegments);
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
index 2a141843b24..ae141557845 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
@@ -57,10 +57,10 @@ import java.util.LinkedList;
public final class ColumnExtractor {
/**
- * Extract column segment collection.
+ * Extract column segments from expression segment.
*
- * @param expression expression segment
- * @return column segment collection
+ * @param expression to be extracted expression segment
+ * @return column segments
*/
public static Collection<ColumnSegment> extract(final ExpressionSegment
expression) {
Collection<ColumnSegment> result = new LinkedList<>();
@@ -95,7 +95,7 @@ public final class ColumnExtractor {
*/
public static void extractColumnSegments(final Collection<ColumnSegment>
columnSegments, final Collection<WhereSegment> whereSegments) {
for (WhereSegment each : whereSegments) {
- for (AndPredicate andPredicate :
ExpressionExtractor.getAndPredicates(each.getExpr())) {
+ for (AndPredicate andPredicate :
ExpressionExtractor.extractAndPredicates(each.getExpr())) {
extractColumnSegments(columnSegments, andPredicate);
}
}
@@ -112,7 +112,7 @@ public final class ColumnExtractor {
*
* @param columnSegments column segments
* @param statement select statement
- * @param containsSubQuery whether contains sub query
+ * @param containsSubQuery whether contains subquery
*/
public static void extractFromSelectStatement(final
Collection<ColumnSegment> columnSegments, final SelectStatement statement,
final boolean containsSubQuery) {
extractFromProjections(columnSegments,
statement.getProjections().getProjections(), containsSubQuery);
@@ -124,7 +124,7 @@ public final class ColumnExtractor {
*
* @param columnSegments column segments
* @param statement select statement
- * @param containsSubQuery whether contains sub query
+ * @param containsSubQuery whether contains subquery
*/
public static void extractFromSelectStatementWithoutProjection(final
Collection<ColumnSegment> columnSegments, final SelectStatement statement,
final boolean containsSubQuery) {
statement.getFrom().ifPresent(optional ->
extractFromTable(columnSegments, optional, containsSubQuery));
@@ -141,7 +141,7 @@ public final class ColumnExtractor {
*
* @param columnSegments column segments
* @param projections projection segments
- * @param containsSubQuery contains sub query
+ * @param containsSubQuery contains subquery
*/
public static void extractFromProjections(final Collection<ColumnSegment>
columnSegments, final Collection<ProjectionSegment> projections, final boolean
containsSubQuery) {
for (ProjectionSegment each : projections) {
@@ -195,7 +195,7 @@ public final class ColumnExtractor {
*
* @param columnSegments column segments
* @param whereSegment where segment
- * @param containsSubQuery contains sub query
+ * @param containsSubQuery contains subquery
*/
public static void extractFromWhere(final Collection<ColumnSegment>
columnSegments, final WhereSegment whereSegment, final boolean
containsSubQuery) {
columnSegments.addAll(ExpressionExtractor.extractColumns(whereSegment.getExpr(),
containsSubQuery));
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractor.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractor.java
index d31123d41d7..dc7632d6a2a 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractor.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractor.java
@@ -59,12 +59,12 @@ import java.util.Optional;
public final class ExpressionExtractor {
/**
- * Get and predicate collection.
+ * Extract and predicates.
*
- * @param expression expression segment
- * @return and predicate collection
+ * @param expression to be extracted expression segment
+ * @return and predicates
*/
- public static Collection<AndPredicate> getAndPredicates(final
ExpressionSegment expression) {
+ public static Collection<AndPredicate> extractAndPredicates(final
ExpressionSegment expression) {
Collection<AndPredicate> result = new LinkedList<>();
extractAndPredicates(result, expression);
return result;
@@ -81,8 +81,8 @@ public final class ExpressionExtractor {
extractAndPredicates(result, binaryExpression.getLeft());
extractAndPredicates(result, binaryExpression.getRight());
} else if (logicalOperator.isPresent() && LogicalOperator.AND ==
logicalOperator.get()) {
- Collection<AndPredicate> predicates =
getAndPredicates(binaryExpression.getRight());
- for (AndPredicate each :
getAndPredicates(binaryExpression.getLeft())) {
+ Collection<AndPredicate> predicates =
extractAndPredicates(binaryExpression.getRight());
+ for (AndPredicate each :
extractAndPredicates(binaryExpression.getLeft())) {
extractCombinedAndPredicates(result, each, predicates);
}
} else {
@@ -106,10 +106,10 @@ public final class ExpressionExtractor {
}
/**
- * Get parameter marker expression collection.
+ * Get parameter marker expressions.
*
- * @param expressions expression collection
- * @return parameter marker expression collection
+ * @param expressions expressions
+ * @return parameter marker expressions
*/
public static List<ParameterMarkerExpressionSegment>
getParameterMarkerExpressions(final Collection<ExpressionSegment> expressions) {
List<ParameterMarkerExpressionSegment> result = new ArrayList<>();
@@ -155,11 +155,11 @@ public final class ExpressionExtractor {
}
/**
- * Extract columns.
+ * Extract column segments.
*
- * @param expression expression
- * @param containsSubQuery contains sub query or not
- * @return columns
+ * @param expression expression segment
+ * @param containsSubQuery contains subquery or not
+ * @return extracted column segments
*/
public static Collection<ColumnSegment> extractColumns(final
ExpressionSegment expression, final boolean containsSubQuery) {
if (expression instanceof ColumnSegment) {
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractor.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractor.java
index fa5aa02e98a..bee87f24d41 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractor.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractor.java
@@ -57,13 +57,13 @@ import java.util.List;
public final class SubqueryExtractor {
/**
- * Get subquery segment from SelectStatement.
+ * Extract subquery segment from select statement.
*
- * @param selectStatement SelectStatement
+ * @param selectStatement select statement
* @param needRecursive need recursive
- * @return subquery segment collection
+ * @return subquery segments
*/
- public static Collection<SubquerySegment> getSubquerySegments(final
SelectStatement selectStatement, final boolean needRecursive) {
+ public static Collection<SubquerySegment> extractSubquerySegments(final
SelectStatement selectStatement, final boolean needRecursive) {
List<SubquerySegment> result = new LinkedList<>();
SubqueryType parentSubqueryType =
selectStatement.getSubqueryType().orElse(null);
extractSubquerySegments(result, selectStatement, needRecursive,
parentSubqueryType);
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractor.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractor.java
index 0234b951e01..2ace47cc914 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractor.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractor.java
@@ -37,24 +37,24 @@ import java.util.LinkedList;
public final class WhereExtractor {
/**
- * Get join where segment from SelectStatement.
+ * Extract join where segment from select statement.
*
- * @param selectStatement SelectStatement
- * @return join where segment collection
+ * @param selectStatement to be extracted select statement
+ * @return extracted join where segments
*/
- public static Collection<WhereSegment> getJoinWhereSegments(final
SelectStatement selectStatement) {
- return
selectStatement.getFrom().map(WhereExtractor::getJoinWhereSegments).orElseGet(Collections::emptyList);
+ public static Collection<WhereSegment> extractJoinWhereSegments(final
SelectStatement selectStatement) {
+ return
selectStatement.getFrom().map(WhereExtractor::extractJoinWhereSegments).orElseGet(Collections::emptyList);
}
- private static Collection<WhereSegment> getJoinWhereSegments(final
TableSegment tableSegment) {
+ private static Collection<WhereSegment> extractJoinWhereSegments(final
TableSegment tableSegment) {
if (!(tableSegment instanceof JoinTableSegment) || null ==
((JoinTableSegment) tableSegment).getCondition()) {
return Collections.emptyList();
}
JoinTableSegment joinTableSegment = (JoinTableSegment) tableSegment;
Collection<WhereSegment> result = new LinkedList<>();
result.add(generateWhereSegment(joinTableSegment));
- result.addAll(getJoinWhereSegments(joinTableSegment.getLeft()));
- result.addAll(getJoinWhereSegments(joinTableSegment.getRight()));
+ result.addAll(extractJoinWhereSegments(joinTableSegment.getLeft()));
+ result.addAll(extractJoinWhereSegments(joinTableSegment.getRight()));
return result;
}
@@ -64,16 +64,16 @@ public final class WhereExtractor {
}
/**
- * Get subquery where segment from SelectStatement.
+ * Extract subquery where segment from SelectStatement.
*
- * @param selectStatement SelectStatement
- * @return subquery where segment collection
+ * @param selectStatement to be extracted select statement
+ * @return extracted subquery where segments
*/
- public static Collection<WhereSegment> getSubqueryWhereSegments(final
SelectStatement selectStatement) {
+ public static Collection<WhereSegment> extractSubqueryWhereSegments(final
SelectStatement selectStatement) {
Collection<WhereSegment> result = new LinkedList<>();
- for (SubquerySegment each :
SubqueryExtractor.getSubquerySegments(selectStatement, false)) {
+ for (SubquerySegment each :
SubqueryExtractor.extractSubquerySegments(selectStatement, false)) {
each.getSelect().getWhere().ifPresent(result::add);
- result.addAll(getJoinWhereSegments(each.getSelect()));
+ result.addAll(extractJoinWhereSegments(each.getSelect()));
}
return result;
}
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
index a8a784dd4e8..58bb8195795 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
@@ -248,8 +248,8 @@ public final class SQLUtils {
/**
* Trim the comment of SQL.
*
- * @param sql SQL to be trim
- * @return remove comment from SQL
+ * @param sql to be trimmed SQL
+ * @return trimmed SQL
*/
public static String trimComment(final String sql) {
String result = sql;
diff --git
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractorTest.java
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractorTest.java
index 3e22017f621..48dd5802c2a 100644
---
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractorTest.java
+++
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ExpressionExtractorTest.java
@@ -49,7 +49,7 @@ class ExpressionExtractorTest {
ColumnSegment left = new ColumnSegment(26, 33, new
IdentifierValue("order_id"));
ParameterMarkerExpressionSegment right = new
ParameterMarkerExpressionSegment(35, 35, 0);
ExpressionSegment expressionSegment = new
BinaryOperationExpression(26, 35, left, right, "=", "order_id=?");
- Collection<AndPredicate> actual =
ExpressionExtractor.getAndPredicates(expressionSegment);
+ Collection<AndPredicate> actual =
ExpressionExtractor.extractAndPredicates(expressionSegment);
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next().getPredicates().iterator().next(),
is(expressionSegment));
}
@@ -63,7 +63,7 @@ class ExpressionExtractorTest {
ParameterMarkerExpressionSegment parameterMarkerExpressionSegment2 =
new ParameterMarkerExpressionSegment(54, 54, 1);
ExpressionSegment rightExpressionSegment = new
BinaryOperationExpression(28, 39, columnSegment2,
parameterMarkerExpressionSegment2, "=", "status=?");
BinaryOperationExpression expression = new
BinaryOperationExpression(28, 54, leftExpressionSegment,
rightExpressionSegment, "AND", "order_id=? AND status=?");
- Collection<AndPredicate> actual =
ExpressionExtractor.getAndPredicates(expression);
+ Collection<AndPredicate> actual =
ExpressionExtractor.extractAndPredicates(expression);
assertThat(actual.size(), is(1));
AndPredicate andPredicate = actual.iterator().next();
assertThat(andPredicate.getPredicates().size(), is(2));
@@ -81,7 +81,7 @@ class ExpressionExtractorTest {
ParameterMarkerExpressionSegment parameterMarkerExpressionSegment2 =
new ParameterMarkerExpressionSegment(47, 47, 1);
ExpressionSegment expressionSegment2 = new
BinaryOperationExpression(40, 47, columnSegment2,
parameterMarkerExpressionSegment2, "=", "status=?");
BinaryOperationExpression expression = new
BinaryOperationExpression(28, 47, expressionSegment1, expressionSegment2, "OR",
"status=? OR status=?");
- Collection<AndPredicate> actual =
ExpressionExtractor.getAndPredicates(expression);
+ Collection<AndPredicate> actual =
ExpressionExtractor.extractAndPredicates(expression);
assertThat(actual.size(), is(2));
Iterator<AndPredicate> andPredicateIterator = actual.iterator();
AndPredicate andPredicate1 = andPredicateIterator.next();
@@ -101,7 +101,7 @@ class ExpressionExtractorTest {
ExpressionSegment subRightExpression = new
BinaryOperationExpression(0, 0, countColumn, countParameterExpression, "=",
"count=?");
BinaryOperationExpression rightExpression = new
BinaryOperationExpression(0, 0, subLeftExpression, subRightExpression, "AND",
"status=? AND count=?");
BinaryOperationExpression expression = new
BinaryOperationExpression(0, 0, leftExpression, rightExpression, "OR",
"status=? OR status=? AND count=?");
- Collection<AndPredicate> actual =
ExpressionExtractor.getAndPredicates(expression);
+ Collection<AndPredicate> actual =
ExpressionExtractor.extractAndPredicates(expression);
assertThat(actual.size(), is(2));
Iterator<AndPredicate> iterator = actual.iterator();
AndPredicate andPredicate1 = iterator.next();
diff --git
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractorTest.java
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractorTest.java
index 49fa97f09a3..aeb6281de50 100644
---
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractorTest.java
+++
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/SubqueryExtractorTest.java
@@ -54,7 +54,7 @@ import static org.mockito.Mockito.when;
class SubqueryExtractorTest {
@Test
- void assertGetSubquerySegmentsInWhere() {
+ void assertExtractSubquerySegmentsInWhere() {
SelectStatement subquerySelectStatement = mock(SelectStatement.class);
when(subquerySelectStatement.getFrom()).thenReturn(Optional.of(new
SimpleTableSegment(new TableNameSegment(73, 99, new
IdentifierValue("t_order")))));
ProjectionsSegment subqueryProjections = new ProjectionsSegment(59,
66);
@@ -72,14 +72,14 @@ class SubqueryExtractorTest {
SubqueryExpressionSegment right = new SubqueryExpressionSegment(new
SubquerySegment(51, 100, subquerySelectStatement, ""));
WhereSegment whereSegment = new WhereSegment(34, 100, new
BinaryOperationExpression(40, 100, left, right, "=", "order_id = (SELECT
order_id FROM t_order WHERE status = 'OK')"));
when(selectStatement.getWhere()).thenReturn(Optional.of(whereSegment));
- Collection<SubquerySegment> actual =
SubqueryExtractor.getSubquerySegments(selectStatement, true);
+ Collection<SubquerySegment> actual =
SubqueryExtractor.extractSubquerySegments(selectStatement, true);
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(right.getSubquery()));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(1));
}
@Test
- void assertGetSubquerySegmentsInProjection() {
+ void assertExtractSubquerySegmentsInProjection() {
ColumnSegment left = new ColumnSegment(41, 48, new
IdentifierValue("order_id"));
ColumnSegment right = new ColumnSegment(52, 62, new
IdentifierValue("order_id"));
SelectStatement subquerySelectStatement = mock(SelectStatement.class);
@@ -90,14 +90,14 @@ class SubqueryExtractorTest {
ProjectionsSegment projections = new ProjectionsSegment(7, 79);
when(selectStatement.getProjections()).thenReturn(projections);
projections.getProjections().add(subqueryProjectionSegment);
- Collection<SubquerySegment> actual =
SubqueryExtractor.getSubquerySegments(selectStatement, true);
+ Collection<SubquerySegment> actual =
SubqueryExtractor.extractSubquerySegments(selectStatement, true);
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(), is(subquerySegment));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(1));
}
@Test
- void assertGetSubquerySegmentsInFrom1() {
+ void assertExtractSubquerySegmentsInFrom1() {
SelectStatement subquery = mock(SelectStatement.class);
ColumnSegment left = new ColumnSegment(59, 66, new
IdentifierValue("order_id"));
LiteralExpressionSegment right = new LiteralExpressionSegment(70, 70,
1);
@@ -112,14 +112,14 @@ class SubqueryExtractorTest {
projections.getProjections().add(new ColumnProjectionSegment(new
ColumnSegment(7, 16, new IdentifierValue("order_id"))));
SubqueryTableSegment subqueryTableSegment = new
SubqueryTableSegment(0, 0, new SubquerySegment(23, 71, subquery, ""));
when(selectStatement.getFrom()).thenReturn(Optional.of(subqueryTableSegment));
- Collection<SubquerySegment> actual =
SubqueryExtractor.getSubquerySegments(selectStatement, true);
+ Collection<SubquerySegment> actual =
SubqueryExtractor.extractSubquerySegments(selectStatement, true);
assertThat(actual.size(), is(1));
assertThat(actual.iterator().next(),
is(subqueryTableSegment.getSubquery()));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(1));
}
@Test
- void assertGetSubquerySegmentsInFrom2() {
+ void assertExtractSubquerySegmentsInFrom2() {
SelectStatement subqueryLeftSelectStatement =
mock(SelectStatement.class);
when(subqueryLeftSelectStatement.getFrom()).thenReturn(Optional.of(new
SimpleTableSegment(new TableNameSegment(65, 71, new
IdentifierValue("t_order")))));
ColumnSegment leftColumnSegment = new ColumnSegment(79, 84, new
IdentifierValue("status"));
@@ -157,31 +157,31 @@ class SubqueryExtractorTest {
from.setLeft(leftSubquerySegment);
from.setRight(rightSubquerySegment);
when(selectStatement.getFrom()).thenReturn(Optional.of(from));
- Collection<SubquerySegment> actual =
SubqueryExtractor.getSubquerySegments(selectStatement, true);
+ Collection<SubquerySegment> actual =
SubqueryExtractor.extractSubquerySegments(selectStatement, true);
assertThat(actual.size(), is(2));
Iterator<SubquerySegment> iterator = actual.iterator();
assertThat(iterator.next(), is(leftSubquerySegment.getSubquery()));
assertThat(iterator.next(), is(rightSubquerySegment.getSubquery()));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(2));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(2));
}
@Test
- void assertGetSubquerySegmentsWithMultiNestedSubquery() {
+ void assertExtractSubquerySegmentsWithMultiNestedSubquery() {
SelectStatement selectStatement = mock(SelectStatement.class);
SubquerySegment subquerySelect = createSubquerySegment();
when(selectStatement.getFrom()).thenReturn(Optional.of(new
SubqueryTableSegment(0, 0, subquerySelect)));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
true).size(), is(2));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
true).size(), is(2));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(1));
}
@Test
- void assertGetSubquerySegmentsWithCombineSegment() {
+ void assertExtractSubquerySegmentsWithCombineSegment() {
SelectStatement selectStatement = mock(SelectStatement.class);
SubquerySegment left = new SubquerySegment(0, 0,
mock(SelectStatement.class), "");
SubquerySegment right = createSubquerySegment();
when(selectStatement.getCombine()).thenReturn(Optional.of(new
CombineSegment(0, 0, left, CombineType.UNION, right)));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
true).size(), is(3));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(2));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
true).size(), is(3));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(2));
}
private SubquerySegment createSubquerySegment() {
@@ -193,7 +193,7 @@ class SubqueryExtractorTest {
}
@Test
- void assertGetSubquerySegmentsFromProjectionFunctionParams() {
+ void assertExtractSubquerySegmentsFromProjectionFunctionParams() {
SelectStatement selectStatement = mock(SelectStatement.class);
ProjectionsSegment projections = new ProjectionsSegment(0, 0);
when(selectStatement.getProjections()).thenReturn(projections);
@@ -201,7 +201,7 @@ class SubqueryExtractorTest {
functionSegment.getParameters().add(new SubqueryExpressionSegment(new
SubquerySegment(0, 0, mock(SelectStatement.class), "")));
ExpressionProjectionSegment expressionProjectionSegment = new
ExpressionProjectionSegment(0, 0, "", functionSegment);
projections.getProjections().add(expressionProjectionSegment);
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
true).size(), is(1));
- assertThat(SubqueryExtractor.getSubquerySegments(selectStatement,
false).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
true).size(), is(1));
+ assertThat(SubqueryExtractor.extractSubquerySegments(selectStatement,
false).size(), is(1));
}
}
diff --git
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractorTest.java
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractorTest.java
index c86e8a3775a..784a0040e29 100644
---
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractorTest.java
+++
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/WhereExtractorTest.java
@@ -44,26 +44,26 @@ import static org.mockito.Mockito.when;
class WhereExtractorTest {
@Test
- void assertGetJoinWhereSegmentsWithEmptySelectStatement() {
-
assertTrue(WhereExtractor.getJoinWhereSegments(mock(SelectStatement.class)).isEmpty());
+ void assertExtractJoinWhereSegmentsWithEmptySelectStatement() {
+
assertTrue(WhereExtractor.extractJoinWhereSegments(mock(SelectStatement.class)).isEmpty());
}
@Test
- void assertGetJoinWhereSegments() {
+ void assertExtractJoinWhereSegments() {
JoinTableSegment tableSegment = new JoinTableSegment();
ColumnSegment left = new ColumnSegment(57, 67, new
IdentifierValue("order_id"));
ColumnSegment right = new ColumnSegment(71, 80, new
IdentifierValue("order_id"));
tableSegment.setCondition(new BinaryOperationExpression(1, 31, left,
right, "=", "oi.order_id = o.order_id"));
SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getFrom()).thenReturn(Optional.of(tableSegment));
- Collection<WhereSegment> joinWhereSegments =
WhereExtractor.getJoinWhereSegments(selectStatement);
+ Collection<WhereSegment> joinWhereSegments =
WhereExtractor.extractJoinWhereSegments(selectStatement);
assertThat(joinWhereSegments.size(), is(1));
WhereSegment actual = joinWhereSegments.iterator().next();
assertThat(actual.getExpr(), is(tableSegment.getCondition()));
}
@Test
- void assertGetSubqueryWhereSegmentsFromSubqueryTableSegment() {
+ void assertExtractSubqueryWhereSegmentsFromSubqueryTableSegment() {
SelectStatement subQuerySelectStatement = mock(SelectStatement.class);
ColumnSegment left = new ColumnSegment(41, 48, new
IdentifierValue("order_id"));
ColumnSegment right = new ColumnSegment(52, 62, new
IdentifierValue("order_id"));
@@ -73,7 +73,7 @@ class WhereExtractorTest {
projections.getProjections().add(new SubqueryProjectionSegment(new
SubquerySegment(7, 63, subQuerySelectStatement, ""), "(SELECT status FROM
t_order WHERE order_id = oi.order_id)"));
SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getProjections()).thenReturn(projections);
- Collection<WhereSegment> subqueryWhereSegments =
WhereExtractor.getSubqueryWhereSegments(selectStatement);
+ Collection<WhereSegment> subqueryWhereSegments =
WhereExtractor.extractSubqueryWhereSegments(selectStatement);
WhereSegment actual = subqueryWhereSegments.iterator().next();
Preconditions.checkState(subQuerySelectStatement.getWhere().isPresent());
assertThat(actual.getExpr(),
is(subQuerySelectStatement.getWhere().get().getExpr()));
@@ -91,7 +91,7 @@ class WhereExtractorTest {
when(subQuerySelectStatement.getFrom()).thenReturn(Optional.of(joinTableSegment));
SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getFrom()).thenReturn(Optional.of(new
SubqueryTableSegment(0, 0, new SubquerySegment(20, 84, subQuerySelectStatement,
""))));
- Collection<WhereSegment> subqueryWhereSegments =
WhereExtractor.getSubqueryWhereSegments(selectStatement);
+ Collection<WhereSegment> subqueryWhereSegments =
WhereExtractor.extractSubqueryWhereSegments(selectStatement);
WhereSegment actual = subqueryWhereSegments.iterator().next();
assertThat(actual.getExpr(), is(joinTableSegment.getCondition()));
}