This is an automated email from the ASF dual-hosted git repository.
panjuan 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 c160c9c optimize encrypt community pr logic (#13611)
c160c9c is described below
commit c160c9c0896ececd9078c3ea799aa9640eaee5b7
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Nov 15 16:31:59 2021 +0800
optimize encrypt community pr logic (#13611)
* refactor EncryptConditionEngine
* refactor EncryptPredicateColumnTokenGenerator
* refactor EncryptProjectionTokenGenerator
---
.../rewrite/condition/EncryptConditionEngine.java | 84 +++++++++-------------
.../impl/EncryptPredicateColumnTokenGenerator.java | 70 +++++++-----------
.../impl/EncryptProjectionTokenGenerator.java | 14 ++--
.../rewrite/token/generator/impl/SubqueryEnum.java | 6 +-
4 files changed, 65 insertions(+), 109 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index 4b53b0b..0b50a23 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -35,21 +35,21 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.Expressi
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.SimpleExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubqueryExpressionSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.AndPredicate;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.common.util.ColumnExtractor;
import
org.apache.shardingsphere.sql.parser.sql.common.util.ExpressionExtractUtil;
-import
org.apache.shardingsphere.sql.parser.sql.common.util.SubqueryExtractUtil;
+import org.apache.shardingsphere.sql.parser.sql.common.util.WhereExtractUtil;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
+import java.util.TreeSet;
import java.util.stream.Collectors;
/**
@@ -58,42 +58,38 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public final class EncryptConditionEngine {
+ private static final Set<String> LOGICAL_OPERATOR = new
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+
private final EncryptRule encryptRule;
private final ShardingSphereSchema schema;
+ static {
+ LOGICAL_OPERATOR.add("AND");
+ LOGICAL_OPERATOR.add("&&");
+ LOGICAL_OPERATOR.add("OR");
+ LOGICAL_OPERATOR.add("||");
+ }
+
/**
* Create encrypt conditions.
*
* @param sqlStatementContext SQL statement context
* @return encrypt conditions
*/
- public Collection<EncryptCondition> createEncryptConditions(final
SQLStatementContext sqlStatementContext) {
+ public Collection<EncryptCondition> createEncryptConditions(final
SQLStatementContext<?> sqlStatementContext) {
Collection<EncryptCondition> result = new LinkedList<>();
-
result.addAll(createEncryptConditionsOnWhereSegment(sqlStatementContext));
- if (sqlStatementContext instanceof InsertStatementContext && null !=
((InsertStatementContext) sqlStatementContext).getInsertSelectContext()) {
- SelectStatementContext selectStatementContext =
((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext();
-
result.addAll(createEncryptConditionsOnWhereSegment(selectStatementContext));
- }
- if (sqlStatementContext instanceof SelectStatementContext) {
- SelectStatementContext selectStatementContext =
(SelectStatementContext) sqlStatementContext;
-
result.addAll(createEncryptConditionsOnSubquerySegment(selectStatementContext));
+ for (WhereSegment each : getWhereSegments(sqlStatementContext)) {
+ Collection<AndPredicate> andPredicates =
ExpressionExtractUtil.getAndPredicates(each.getExpr());
+ Map<String, String> columnTableNames =
getColumnTableNames(sqlStatementContext, andPredicates);
+ String schemaName =
DMLStatementContextHelper.getSchemaName(sqlStatementContext);
+ for (AndPredicate predicate : andPredicates) {
+ result.addAll(createEncryptConditions(schemaName,
predicate.getPredicates(), columnTableNames));
+ }
}
return result;
}
- private Collection<EncryptCondition> createEncryptConditions(final
SelectStatementContext selectStatementContext, final SubquerySegment
subquerySegment) {
- SelectStatementContext subSelectStatementContext = new
SelectStatementContext(selectStatementContext.getMetaDataMap(),
selectStatementContext.getParameters(), subquerySegment.getSelect(),
- selectStatementContext.getSchemaName());
- return createEncryptConditions(subSelectStatementContext);
- }
-
- private Collection<EncryptCondition> createEncryptConditions(final
SelectStatementContext selectStatementContext, final SubqueryTableSegment
subqueryTableSegment) {
- SelectStatementContext subSelectStatementContext = new
SelectStatementContext(selectStatementContext.getMetaDataMap(),
selectStatementContext.getParameters(),
- subqueryTableSegment.getSubquery().getSelect(),
selectStatementContext.getSchemaName());
- return createEncryptConditions(subSelectStatementContext);
- }
-
private Collection<EncryptCondition> createEncryptConditions(final String
schemaName, final Collection<ExpressionSegment> predicates, final Map<String,
String> columnTableNames) {
Collection<EncryptCondition> result = new LinkedList<>();
Collection<Integer> stopIndexes = new HashSet<>();
@@ -119,13 +115,10 @@ public final class EncryptConditionEngine {
private Optional<EncryptCondition> createEncryptCondition(final
ExpressionSegment expression, final String tableName) {
if (expression instanceof BinaryOperationExpression) {
String operator = ((BinaryOperationExpression)
expression).getOperator();
- boolean logical = "and".equalsIgnoreCase(operator) ||
"&&".equalsIgnoreCase(operator) || "OR".equalsIgnoreCase(operator) ||
"||".equalsIgnoreCase(operator);
- if (!logical) {
+ if (!LOGICAL_OPERATOR.contains(operator)) {
ExpressionSegment rightValue = ((BinaryOperationExpression)
expression).getRight();
- return isSupportedOperator(((BinaryOperationExpression)
expression).getOperator()) ? createCompareEncryptCondition(tableName,
(BinaryOperationExpression) expression, rightValue)
- : Optional.empty();
+ return isSupportedOperator(operator) ?
createCompareEncryptCondition(tableName, (BinaryOperationExpression)
expression, rightValue) : Optional.empty();
}
-
}
if (expression instanceof InExpression) {
return createInEncryptCondition(tableName, (InExpression)
expression, ((InExpression) expression).getRight());
@@ -136,30 +129,17 @@ public final class EncryptConditionEngine {
return Optional.empty();
}
- private Collection<EncryptCondition>
createEncryptConditionsOnSubquerySegment(final SelectStatementContext
selectStatementContext) {
- if (!selectStatementContext.isContainsSubquery()) {
- return Collections.emptyList();
+ private Collection<WhereSegment> getWhereSegments(final
SQLStatementContext<?> sqlStatementContext) {
+ Collection<WhereSegment> result = new LinkedList<>();
+ if (sqlStatementContext instanceof WhereAvailable) {
+ ((WhereAvailable)
sqlStatementContext).getWhere().ifPresent(result::add);
}
- Collection<EncryptCondition> result = new LinkedList<>();
-
result.addAll(SubqueryExtractUtil.getSubquerySegments(selectStatementContext.getSqlStatement()).stream().map(
- each -> createEncryptConditions(selectStatementContext,
each)).flatMap(Collection::stream).collect(Collectors.toList()));
- return result;
- }
-
- private Collection<EncryptCondition>
createEncryptConditionsOnWhereSegment(final SQLStatementContext
sqlStatementContext) {
- Collection<EncryptCondition> result = new LinkedList<>();
- if (!(sqlStatementContext instanceof WhereAvailable)) {
- return Collections.emptyList();
- }
- Optional<WhereSegment> whereSegment = ((WhereAvailable)
sqlStatementContext).getWhere();
- if (!whereSegment.isPresent()) {
- return Collections.emptyList();
+ if (sqlStatementContext instanceof SelectStatementContext) {
+
result.addAll(WhereExtractUtil.getSubqueryWhereSegments((SelectStatement)
sqlStatementContext.getSqlStatement()));
+
result.addAll(WhereExtractUtil.getJoinWhereSegments((SelectStatement)
sqlStatementContext.getSqlStatement()));
}
- Collection<AndPredicate> andPredicates =
ExpressionExtractUtil.getAndPredicates(whereSegment.get().getExpr());
- Map<String, String> columnTableNames =
getColumnTableNames(sqlStatementContext, andPredicates);
- String schemaName =
DMLStatementContextHelper.getSchemaName(sqlStatementContext);
- for (AndPredicate each : andPredicates) {
- result.addAll(createEncryptConditions(schemaName,
each.getPredicates(), columnTableNames));
+ if (sqlStatementContext instanceof InsertStatementContext && null !=
((InsertStatementContext) sqlStatementContext).getInsertSelectContext()) {
+ result.addAll(getWhereSegments(((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext()));
}
return result;
}
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java
index 9f6816e..c9a1af0 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptPredicateColumnTokenGenerator.java
@@ -35,6 +35,7 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.Column
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.AndPredicate;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.common.util.ColumnExtractor;
import
org.apache.shardingsphere.sql.parser.sql.common.util.ExpressionExtractUtil;
import org.apache.shardingsphere.sql.parser.sql.common.util.WhereExtractUtil;
@@ -58,20 +59,27 @@ public final class EncryptPredicateColumnTokenGenerator
extends BaseEncryptSQLTo
private boolean queryWithCipherColumn;
+ @SuppressWarnings("rawtypes")
@Override
protected boolean isGenerateSQLTokenForEncrypt(final SQLStatementContext
sqlStatementContext) {
- return (sqlStatementContext instanceof WhereAvailable &&
((WhereAvailable) sqlStatementContext).getWhere().isPresent())
- || (sqlStatementContext instanceof SelectStatementContext &&
(((SelectStatementContext) sqlStatementContext).isContainsJoinQuery()
- || ((SelectStatementContext)
sqlStatementContext).isContainsSubquery()))
- || ((sqlStatementContext instanceof InsertStatementContext) &&
null != ((InsertStatementContext)
sqlStatementContext).getInsertSelectContext());
+ boolean containsJoinQueryOrSubquery = sqlStatementContext instanceof
SelectStatementContext
+ && (((SelectStatementContext)
sqlStatementContext).isContainsJoinQuery() || ((SelectStatementContext)
sqlStatementContext).isContainsSubquery());
+ boolean containsInsertSelectContext = (sqlStatementContext instanceof
InsertStatementContext) && null != ((InsertStatementContext)
sqlStatementContext).getInsertSelectContext();
+ return containsJoinQueryOrSubquery || containsInsertSelectContext ||
(sqlStatementContext instanceof WhereAvailable && ((WhereAvailable)
sqlStatementContext).getWhere().isPresent());
}
+ @SuppressWarnings("rawtypes")
@Override
public Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SQLStatementContext sqlStatementContext) {
- Collection<WhereSegment> whereSegments =
getWhereSegments(sqlStatementContext);
- Collection<AndPredicate> andPredicates =
whereSegments.stream().flatMap(each ->
ExpressionExtractUtil.getAndPredicates(each.getExpr()).stream()).collect(Collectors.toList());
- Map<String, String> columnTableNames =
getColumnTableNames(sqlStatementContext, andPredicates, whereSegments);
- return andPredicates.stream().flatMap(each ->
generateSQLTokens(sqlStatementContext, each.getPredicates(),
columnTableNames).stream()).collect(Collectors.toCollection(LinkedHashSet::new));
+ Collection<SubstitutableColumnNameToken> result = new
LinkedHashSet<>();
+ for (WhereSegment each : getWhereSegments(sqlStatementContext)) {
+ Collection<AndPredicate> andPredicates =
ExpressionExtractUtil.getAndPredicates(each.getExpr());
+ Map<String, String> columnTableNames =
getColumnTableNames(sqlStatementContext, andPredicates);
+ for (AndPredicate predicate : andPredicates) {
+ result.addAll(generateSQLTokens(sqlStatementContext,
predicate.getPredicates(), columnTableNames));
+ }
+ }
+ return result;
}
private Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SQLStatementContext sqlStatementContext, final Collection<ExpressionSegment>
predicates,
@@ -110,52 +118,22 @@ public final class EncryptPredicateColumnTokenGenerator
extends BaseEncryptSQLTo
private Collection<WhereSegment> getWhereSegments(final
SQLStatementContext<?> sqlStatementContext) {
Collection<WhereSegment> result = new LinkedList<>();
- result.addAll(getWhereSegmentsFromWhereAvailable(sqlStatementContext));
+ if (sqlStatementContext instanceof WhereAvailable) {
+ ((WhereAvailable)
sqlStatementContext).getWhere().ifPresent(result::add);
+ }
if (sqlStatementContext instanceof SelectStatementContext) {
- SelectStatementContext selectStatementContext =
(SelectStatementContext) sqlStatementContext;
- result.addAll(getWhereSegmentsOnJoinQuery(selectStatementContext));
- result.addAll(getWhereSegmentsOnSubquery(selectStatementContext));
+
result.addAll(WhereExtractUtil.getSubqueryWhereSegments((SelectStatement)
sqlStatementContext.getSqlStatement()));
+
result.addAll(WhereExtractUtil.getJoinWhereSegments((SelectStatement)
sqlStatementContext.getSqlStatement()));
}
- if (sqlStatementContext instanceof InsertStatementContext && null !=
((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext()) {
- SelectStatementContext selectStatementContext =
((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext();
-
result.addAll(getWhereSegmentsFromWhereAvailable(selectStatementContext));
+ if (sqlStatementContext instanceof InsertStatementContext && null !=
((InsertStatementContext) sqlStatementContext).getInsertSelectContext()) {
+ result.addAll(getWhereSegments(((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext()));
}
return result;
}
- private Collection<WhereSegment> getWhereSegmentsOnSubquery(final
SelectStatementContext selectStatementContext) {
- if (!selectStatementContext.isContainsSubquery()) {
- return Collections.emptyList();
- }
- Collection<WhereSegment> result = new LinkedList<>();
- selectStatementContext.getSubquerySegments().forEach(each -> {
- SelectStatementContext subquerySelectStatementContext = new
SelectStatementContext(selectStatementContext.getMetaDataMap(),
- selectStatementContext.getParameters(), each.getSelect(),
selectStatementContext.getSchemaName());
-
result.addAll(getWhereSegmentsFromWhereAvailable(subquerySelectStatementContext));
-
result.addAll(getWhereSegmentsOnJoinQuery(subquerySelectStatementContext));
- });
- return result;
- }
-
- private Collection<WhereSegment> getWhereSegmentsFromWhereAvailable(final
SQLStatementContext<?> sqlStatementContext) {
- if (sqlStatementContext instanceof WhereAvailable && ((WhereAvailable)
sqlStatementContext).getWhere().isPresent()) {
- return Collections.singletonList(((WhereAvailable)
sqlStatementContext).getWhere().get());
- }
- return Collections.emptyList();
- }
-
- private Collection<WhereSegment> getWhereSegmentsOnJoinQuery(final
SelectStatementContext selectStatementContext) {
- if (!selectStatementContext.isContainsJoinQuery()) {
- return Collections.emptyList();
- }
- return
WhereExtractUtil.getJoinWhereSegments(selectStatementContext.getSqlStatement());
- }
-
- private Map<String, String> getColumnTableNames(final
SQLStatementContext<?> sqlStatementContext, final Collection<AndPredicate>
andPredicates,
- final
Collection<WhereSegment> whereSegments) {
+ private Map<String, String> getColumnTableNames(final
SQLStatementContext<?> sqlStatementContext, final Collection<AndPredicate>
andPredicates) {
Collection<ColumnSegment> columns =
andPredicates.stream().flatMap(each -> each.getPredicates().stream())
.flatMap(each ->
ColumnExtractor.extract(each).stream()).filter(Objects::nonNull).collect(Collectors.toList());
- columns.addAll(whereSegments.stream().flatMap(each ->
ColumnExtractor.extract(each.getExpr()).stream()).collect(Collectors.toList()));
return sqlStatementContext.getTablesContext().findTableName(columns,
schema);
}
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
index 2ff23be..df3ac6f 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
@@ -64,24 +64,26 @@ public final class EncryptProjectionTokenGenerator extends
BaseEncryptSQLTokenGe
private List<SQLToken> previousSQLTokens;
+ @SuppressWarnings("rawtypes")
@Override
protected boolean isGenerateSQLTokenForEncrypt(final SQLStatementContext
sqlStatementContext) {
return (sqlStatementContext instanceof SelectStatementContext &&
!((SelectStatementContext) sqlStatementContext).getAllTables().isEmpty())
|| ((sqlStatementContext instanceof InsertStatementContext) &&
null != ((InsertStatementContext)
sqlStatementContext).getInsertSelectContext());
}
+ @SuppressWarnings("rawtypes")
@Override
public Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SQLStatementContext sqlStatementContext) {
Collection<SubstitutableColumnNameToken> result = new
LinkedHashSet<>();
SubqueryTableContext subqueryTableContext = new SubqueryTableContext();
if (sqlStatementContext instanceof InsertStatementContext) {
- result.addAll(generateSQLTokens(((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext(),
Optional.empty(), SubqueryEnum.INSERTSELECT,
+ result.addAll(generateSQLTokens(((InsertStatementContext)
sqlStatementContext).getInsertSelectContext().getSelectStatementContext(),
Optional.empty(), SubqueryEnum.INSERT_SELECT,
subqueryTableContext));
}
if (sqlStatementContext instanceof SelectStatementContext) {
SelectStatementContext selectStatementContext =
(SelectStatementContext) sqlStatementContext;
result.addAll(generateSQLTokens(selectStatementContext,
subqueryTableContext));
- result.addAll(generateSQLTokens(selectStatementContext,
Optional.empty(), SubqueryEnum.None, subqueryTableContext));
+ result.addAll(generateSQLTokens(selectStatementContext,
Optional.empty(), SubqueryEnum.NONE, subqueryTableContext));
}
return result;
}
@@ -109,7 +111,7 @@ public final class EncryptProjectionTokenGenerator extends
BaseEncryptSQLTokenGe
private Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SelectStatementContext selectStatementContext, final SubqueryTableSegment
subqueryTableSegment,
final
SubqueryTableContext subqueryTableContext) {
return generateSQLTokens(new
SelectStatementContext(selectStatementContext.getMetaDataMap(),
selectStatementContext.getParameters(),
subqueryTableSegment.getSubquery().getSelect(),
- selectStatementContext.getSchemaName()),
subqueryTableSegment.getAlias(), SubqueryEnum.NESTEDPROJECTIONTABSEGMENT,
subqueryTableContext);
+ selectStatementContext.getSchemaName()),
subqueryTableSegment.getAlias(), SubqueryEnum.NESTED_PROJECTION_TABLE_SEGMENT,
subqueryTableContext);
}
private Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SelectStatementContext selectStatementContext, final Optional<String> alias,
@@ -230,20 +232,20 @@ public final class EncryptProjectionTokenGenerator
extends BaseEncryptSQLTokenGe
private Collection<ColumnProjection> getColumnProjections(final
ColumnProjectionSegment segment, final String tableName, final Optional<String>
alias, final String encryptColumnName,
final
SubqueryEnum subqueryEnum, final SubqueryTableContext subqueryTableContext) {
Collection<ColumnProjection> result = new LinkedList<>();
- if (SubqueryEnum.INSERTSELECT.equals(subqueryEnum)) {
+ if (SubqueryEnum.INSERT_SELECT.equals(subqueryEnum)) {
result.addAll(getColumnProjectionsForInsertSelect(segment,
tableName, encryptColumnName));
}
if (SubqueryEnum.PROJECTION.equals(subqueryEnum)) {
result.add(columnProjection(null, encryptColumnName, null));
}
- if (SubqueryEnum.NESTEDPROJECTIONTABSEGMENT.equals(subqueryEnum)) {
+ if (SubqueryEnum.NESTED_PROJECTION_TABLE_SEGMENT.equals(subqueryEnum))
{
result.add(columnProjection(null, encryptColumnName, null));
result.addAll(getColumnProjectionsForSubqueryProjectionOrTabSegment(segment,
tableName, alias, subqueryTableContext));
}
if (SubqueryEnum.EXPRESSION.equals(subqueryEnum)) {
result.addAll(getColumnProjectionsForInExpression(segment,
tableName));
}
- if (SubqueryEnum.None.equals(subqueryEnum)) {
+ if (SubqueryEnum.NONE.equals(subqueryEnum)) {
result.add(columnProjection(null, encryptColumnName,
segment.getAlias().orElse(segment.getColumn().getIdentifier().getValue())));
}
return result;
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/SubqueryEnum.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/SubqueryEnum.java
index 6c9040d..e5891f8 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/SubqueryEnum.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/SubqueryEnum.java
@@ -21,9 +21,5 @@ package
org.apache.shardingsphere.encrypt.rewrite.token.generator.impl;
* Subquery enum.
*/
public enum SubqueryEnum {
- None,
- INSERTSELECT,
- PROJECTION,
- NESTEDPROJECTIONTABSEGMENT,
- EXPRESSION
+ NONE, INSERT_SELECT, PROJECTION, NESTED_PROJECTION_TABLE_SEGMENT,
EXPRESSION
}