You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2023/06/15 10:47:39 UTC
[shardingsphere] branch master updated: Add EncryptTable.isEncryptColumn() (#26371)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 22ee86b72e1 Add EncryptTable.isEncryptColumn() (#26371)
22ee86b72e1 is described below
commit 22ee86b72e158bd150075d88b42c0b8fed193594
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Jun 15 18:47:33 2023 +0800
Add EncryptTable.isEncryptColumn() (#26371)
* Add EncryptTable.isEncryptColumn()
* Refactor EncryptProjectionTokenGenerator
* Refactor PostgreSQLComParseExecutorTest
* Refactor RDLBackendHandlerFactoryTest
* Refactor PostgreSQLStatementVisitor
* Refactor OpenGaussStatementVisitor
* Refactor MySQLStatementVisitor
---
.../merge/dql/EncryptAlgorithmMetaData.java | 2 +-
.../EncryptAssignmentParameterRewriter.java | 3 +-
...OnDuplicateKeyUpdateValueParameterRewriter.java | 9 ++----
.../generator/EncryptAlterTableTokenGenerator.java | 35 ++++++++++------------
.../generator/EncryptAssignmentTokenGenerator.java | 2 +-
.../EncryptCreateTableTokenGenerator.java | 5 +---
.../EncryptIndexColumnTokenGenerator.java | 4 ++-
.../generator/EncryptProjectionTokenGenerator.java | 5 +---
.../EncryptInsertOnUpdateTokenGenerator.java | 16 +++++-----
.../insert/EncryptInsertValuesTokenGenerator.java | 8 +++--
.../shardingsphere/encrypt/rule/EncryptRule.java | 19 ++++++++++++
.../shardingsphere/encrypt/rule/EncryptTable.java | 10 +++++++
.../merge/dql/EncryptAlgorithmMetaDataTest.java | 5 +++-
.../EncryptAlterTableTokenGeneratorTest.java | 6 ++--
.../EncryptAssignmentTokenGeneratorTest.java | 4 ++-
.../EncryptCreateTableTokenGeneratorTest.java | 3 +-
.../EncryptProjectionTokenGeneratorTest.java | 6 +---
.../EncryptInsertOnUpdateTokenGeneratorTest.java | 4 +--
...lterReadwriteSplittingRuleStatementUpdater.java | 3 +-
.../visitor/statement/MySQLStatementVisitor.java | 6 +---
.../statement/OpenGaussStatementVisitor.java | 3 +-
.../statement/PostgreSQLStatementVisitor.java | 3 +-
.../distsql/rdl/RDLBackendHandlerFactoryTest.java | 4 +--
.../parse/PostgreSQLComParseExecutorTest.java | 2 +-
24 files changed, 90 insertions(+), 77 deletions(-)
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
index 293a5784eaf..9cbcf6e0d79 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
@@ -99,7 +99,7 @@ public final class EncryptAlgorithmMetaData {
return Optional.of(tableName);
}
for (String each : selectStatementContext.getTablesContext().getTableNames()) {
- if (encryptRule.findStandardEncryptor(each, columnProjection.getName()).isPresent()) {
+ if (encryptRule.findEncryptTable(each).map(optional -> optional.isEncryptColumn(columnProjection.getName())).orElse(false)) {
return Optional.of(each);
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
index 956e7b6a954..17f4428db08 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
@@ -72,7 +72,8 @@ public final class EncryptAssignmentParameterRewriter implements ParameterRewrit
String tableName = ((TableAvailable) sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName));
for (AssignmentSegment each : getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments()) {
- if (each.getValue() instanceof ParameterMarkerExpressionSegment && encryptRule.findStandardEncryptor(tableName, each.getColumns().get(0).getIdentifier().getValue()).isPresent()) {
+ String columnName = each.getColumns().get(0).getIdentifier().getValue();
+ if (each.getValue() instanceof ParameterMarkerExpressionSegment && encryptRule.findEncryptTable(tableName).map(optional -> optional.isEncryptColumn(columnName)).orElse(false)) {
StandardParameterBuilder standardParamBuilder = paramBuilder instanceof StandardParameterBuilder
? (StandardParameterBuilder) paramBuilder
: ((GroupedParameterBuilder) paramBuilder).getParameterBuilders().get(0);
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
index 4e53a79b725..ab971a5e64d 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
@@ -19,14 +19,13 @@ package org.apache.shardingsphere.encrypt.rewrite.parameter.rewriter;
import com.google.common.base.Preconditions;
import lombok.Setter;
+import org.apache.shardingsphere.encrypt.api.context.EncryptContext;
import org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
-import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.context.EncryptContextBuilder;
import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.api.context.EncryptContext;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.infra.binder.segment.insert.values.OnDuplicateUpdateContext;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -60,7 +59,6 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
&& InsertStatementHandler.getOnDuplicateKeyColumnsSegment(((InsertStatementContext) sqlStatementContext).getSqlStatement()).isPresent();
}
- @SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void rewrite(final ParameterBuilder paramBuilder, final SQLStatementContext sqlStatementContext, final List<Object> params) {
InsertStatementContext insertStatementContext = (InsertStatementContext) sqlStatementContext;
@@ -70,8 +68,7 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName));
for (int index = 0; index < onDuplicateKeyUpdateValueContext.getValueExpressions().size(); index++) {
String encryptLogicColumnName = onDuplicateKeyUpdateValueContext.getColumn(index).getIdentifier().getValue();
- Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(tableName, encryptLogicColumnName);
- if (!encryptor.isPresent()) {
+ if (!encryptRule.findEncryptTable(tableName).map(optional -> optional.isEncryptColumn(encryptLogicColumnName)).orElse(false)) {
continue;
}
Object plainValue = onDuplicateKeyUpdateValueContext.getValue(index);
@@ -79,7 +76,7 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
return;
}
EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, tableName, encryptLogicColumnName);
- Object cipherColumnValue = encryptor.get().encrypt(plainValue, encryptContext);
+ Object cipherColumnValue = encryptRule.encrypt(databaseName, schemaName, tableName, encryptLogicColumnName, plainValue);
groupedParamBuilder.getGenericParameterBuilder().addReplacedParameters(index, cipherColumnValue);
Collection<Object> addedParams = buildAddedParams(tableName, encryptLogicColumnName, plainValue, encryptContext);
if (!addedParams.isEmpty()) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
index 6e94400adee..b18a640eb76 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
@@ -87,13 +87,11 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
return result;
}
- @SuppressWarnings("rawtypes")
private Collection<SQLToken> getAddColumnTokens(final EncryptTable encryptTable, final AddColumnDefinitionSegment addColumnDefinitionSegment) {
Collection<SQLToken> result = new LinkedList<>();
for (ColumnDefinitionSegment each : addColumnDefinitionSegment.getColumnDefinitions()) {
String columnName = each.getColumnName().getIdentifier().getValue();
- Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(encryptTable.getTable(), columnName);
- if (encryptor.isPresent()) {
+ if (encryptTable.isEncryptColumn(columnName)) {
result.addAll(getAddColumnTokens(encryptTable, columnName, addColumnDefinitionSegment, each));
}
}
@@ -114,20 +112,22 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
return result;
}
- @SuppressWarnings("rawtypes")
private Optional<SQLToken> getAddColumnPositionToken(final EncryptTable encryptTable, final AddColumnDefinitionSegment addColumnDefinitionSegment) {
- Optional<StandardEncryptAlgorithm> encryptor = addColumnDefinitionSegment.getColumnPosition().filter(optional -> null != optional.getColumnName())
- .flatMap(optional -> encryptRule.findStandardEncryptor(encryptTable.getTable(), optional.getColumnName().getIdentifier().getValue()));
- return encryptor.isPresent() ? Optional.of(getPositionColumnToken(encryptTable, addColumnDefinitionSegment.getColumnPosition().get())) : Optional.empty();
+ Optional<ColumnPositionSegment> columnPositionSegment = addColumnDefinitionSegment.getColumnPosition().filter(optional -> null != optional.getColumnName());
+ if (columnPositionSegment.isPresent()) {
+ String columnName = columnPositionSegment.get().getColumnName().getIdentifier().getValue();
+ if (encryptTable.isEncryptColumn(columnName)) {
+ return Optional.of(getPositionColumnToken(encryptTable, addColumnDefinitionSegment.getColumnPosition().get()));
+ }
+ }
+ return Optional.empty();
}
- @SuppressWarnings("rawtypes")
private Collection<SQLToken> getModifyColumnTokens(final EncryptTable encryptTable, final Collection<ModifyColumnDefinitionSegment> columnDefinitionSegments) {
Collection<SQLToken> result = new LinkedList<>();
for (ModifyColumnDefinitionSegment each : columnDefinitionSegments) {
String columnName = each.getColumnDefinition().getColumnName().getIdentifier().getValue();
- Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(encryptTable.getTable(), columnName);
- if (encryptor.isPresent()) {
+ if (encryptTable.isEncryptColumn(columnName)) {
result.addAll(getModifyColumnTokens(encryptTable, columnName, each));
}
each.getColumnPosition().flatMap(optional -> getColumnPositionToken(encryptTable, optional)).ifPresent(result::add);
@@ -153,11 +153,10 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
encryptTable.getCipherColumn(positionSegment.getColumnName().getIdentifier().getValue()), null);
}
- @SuppressWarnings("rawtypes")
private Optional<SQLToken> getColumnPositionToken(final EncryptTable encryptTable, final ColumnPositionSegment columnPositionSegment) {
- Optional<StandardEncryptAlgorithm> encryptor = Optional.of(columnPositionSegment).filter(optional -> null != optional.getColumnName())
- .flatMap(optional -> encryptRule.findStandardEncryptor(encryptTable.getTable(), optional.getColumnName().getIdentifier().getValue()));
- return encryptor.isPresent() ? Optional.of(getPositionColumnToken(encryptTable, columnPositionSegment)) : Optional.empty();
+ return null != columnPositionSegment.getColumnName() && encryptTable.isEncryptColumn(columnPositionSegment.getColumnName().getIdentifier().getValue())
+ ? Optional.of(getPositionColumnToken(encryptTable, columnPositionSegment))
+ : Optional.empty();
}
private Collection<SQLToken> getChangeColumnTokens(final EncryptTable encryptTable, final Collection<ChangeColumnDefinitionSegment> changeColumnDefinitions) {
@@ -171,8 +170,8 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
private Collection<? extends SQLToken> getChangeColumnTokens(final EncryptTable encryptTable, final ChangeColumnDefinitionSegment segment) {
isSameEncryptColumn(encryptTable, segment);
- if (!encryptRule.findStandardEncryptor(encryptTable.getTable(), segment.getPreviousColumn().getIdentifier().getValue()).isPresent()
- || !encryptRule.findStandardEncryptor(encryptTable.getTable(), segment.getColumnDefinition().getColumnName().getIdentifier().getValue()).isPresent()) {
+ if (!encryptTable.isEncryptColumn(segment.getPreviousColumn().getIdentifier().getValue())
+ || !encryptTable.isEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue())) {
return Collections.emptyList();
}
Collection<SQLToken> result = new LinkedList<>();
@@ -242,13 +241,11 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
return result;
}
- @SuppressWarnings("rawtypes")
private Collection<SQLToken> getDropColumnTokens(final EncryptTable encryptTable, final DropColumnDefinitionSegment dropColumnDefinitionSegment) {
Collection<SQLToken> result = new LinkedList<>();
for (ColumnSegment each : dropColumnDefinitionSegment.getColumns()) {
String columnName = each.getQualifiedName();
- Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(encryptTable.getTable(), columnName);
- if (encryptor.isPresent()) {
+ if (encryptTable.isEncryptColumn(columnName)) {
result.addAll(getDropColumnTokens(encryptTable, columnName, each, dropColumnDefinitionSegment));
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index fbd05c961b2..cca7acdeebd 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -70,7 +70,7 @@ public final class EncryptAssignmentTokenGenerator implements CollectionSQLToken
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), databaseName));
for (AssignmentSegment each : getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments()) {
- if (encryptRule.findStandardEncryptor(tableName, each.getColumns().get(0).getIdentifier().getValue()).isPresent()) {
+ if (encryptTable.isEncryptColumn(each.getColumns().get(0).getIdentifier().getValue())) {
generateSQLToken(schemaName, encryptTable, each).ifPresent(result::add);
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
index c228b6bb21b..46b0160dd68 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
import lombok.Setter;
-import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
@@ -53,7 +52,6 @@ public final class EncryptCreateTableTokenGenerator implements CollectionSQLToke
return sqlStatementContext instanceof CreateTableStatementContext && !(((CreateTableStatementContext) sqlStatementContext).getSqlStatement()).getColumnDefinitions().isEmpty();
}
- @SuppressWarnings("rawtypes")
@Override
public Collection<SQLToken> generateSQLTokens(final CreateTableStatementContext createTableStatementContext) {
Collection<SQLToken> result = new LinkedList<>();
@@ -63,8 +61,7 @@ public final class EncryptCreateTableTokenGenerator implements CollectionSQLToke
for (int index = 0; index < columns.size(); index++) {
ColumnDefinitionSegment each = columns.get(index);
String columnName = each.getColumnName().getIdentifier().getValue();
- Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(tableName, columnName);
- if (encryptor.isPresent()) {
+ if (encryptTable.isEncryptColumn(columnName)) {
result.addAll(getColumnTokens(encryptTable, columnName, each, columns, index));
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
index 63210ac158a..3a9af83048a 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
@@ -61,7 +61,9 @@ public final class EncryptIndexColumnTokenGenerator implements CollectionSQLToke
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
Collection<SQLToken> result = new LinkedList<>();
for (ColumnSegment each : ((IndexAvailable) sqlStatementContext).getIndexColumns()) {
- encryptRule.findStandardEncryptor(tableName, each.getIdentifier().getValue()).flatMap(optional -> getColumnToken(encryptTable, each)).ifPresent(result::add);
+ if (encryptTable.isEncryptColumn(each.getIdentifier().getValue())) {
+ getColumnToken(encryptTable, each).ifPresent(result::add);
+ }
}
return result;
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
index 5433c1cf0d5..606f402d429 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
@@ -93,10 +93,7 @@ public final class EncryptProjectionTokenGenerator implements CollectionSQLToken
continue;
}
Optional<EncryptTable> encryptTable = encryptRule.findEncryptTable(tableName);
- if (!encryptTable.isPresent()) {
- continue;
- }
- if (encryptTable.get().findEncryptColumn(columnProjection.getName()).isPresent()) {
+ if (encryptTable.isPresent() && encryptTable.get().isEncryptColumn(columnProjection.getName())) {
sqlTokens.add(generateSQLToken(encryptTable.get(), columnSegment, columnProjection, subqueryType));
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
index e7c5413f7f7..dcec58ee92e 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
@@ -76,16 +76,16 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
Collection<SQLToken> result = new LinkedList<>();
for (AssignmentSegment each : onDuplicateKeyColumnsSegments) {
- boolean leftEncryptorPresent = encryptRule.findStandardEncryptor(tableName, each.getColumns().get(0).getIdentifier().getValue()).isPresent();
+ boolean leftColumnIsEncrypt = encryptTable.isEncryptColumn(each.getColumns().get(0).getIdentifier().getValue());
if (each.getValue() instanceof FunctionSegment && "VALUES".equalsIgnoreCase(((FunctionSegment) each.getValue()).getFunctionName())) {
Optional<ExpressionSegment> rightColumnSegment = ((FunctionSegment) each.getValue()).getParameters().stream().findFirst();
Preconditions.checkState(rightColumnSegment.isPresent());
- boolean rightEncryptorPresent = encryptRule.findStandardEncryptor(tableName, ((ColumnSegment) rightColumnSegment.get()).getIdentifier().getValue()).isPresent();
- if (!leftEncryptorPresent && !rightEncryptorPresent) {
+ boolean rightColumnIsEncrypt = encryptTable.isEncryptColumn(((ColumnSegment) rightColumnSegment.get()).getIdentifier().getValue());
+ if (!leftColumnIsEncrypt && !rightColumnIsEncrypt) {
continue;
}
}
- if (!leftEncryptorPresent) {
+ if (!leftColumnIsEncrypt) {
continue;
}
generateSQLToken(schemaName, encryptTable, each).ifPresent(result::add);
@@ -130,13 +130,13 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
Preconditions.checkState(valueColumnSegment.isPresent());
String valueColumn = ((ColumnSegment) valueColumnSegment.get()).getIdentifier().getValue();
EncryptFunctionAssignmentToken result = new EncryptFunctionAssignmentToken(columnSegment.getStartIndex(), assignmentSegment.getStopIndex());
- boolean cipherColumnPresent = encryptRule.findStandardEncryptor(encryptTable.getTable(), column).isPresent();
- boolean cipherValueColumnPresent = encryptRule.findStandardEncryptor(encryptTable.getTable(), valueColumn).isPresent();
- if (cipherColumnPresent && cipherValueColumnPresent) {
+ boolean isEncryptColumn = encryptTable.isEncryptColumn(column);
+ boolean isEncryptValueColumn = encryptTable.isEncryptColumn(valueColumn);
+ if (isEncryptColumn && isEncryptValueColumn) {
String cipherColumn = encryptTable.getCipherColumn(column);
String cipherValueColumn = encryptTable.getCipherColumn(valueColumn);
result.addAssignment(cipherColumn, "VALUES(" + cipherValueColumn + ")");
- } else if (cipherColumnPresent != cipherValueColumnPresent) {
+ } else if (isEncryptColumn != isEncryptValueColumn) {
throw new UnsupportedEncryptSQLException(String.format("%s=VALUES(%s)", column, valueColumn));
}
Optional<String> assistedQueryColumn = encryptTable.findAssistedQueryColumn(column);
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
index 6203294f5a1..345df6c002c 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
+import com.google.common.base.Preconditions;
import lombok.Setter;
import org.apache.shardingsphere.encrypt.api.context.EncryptContext;
import org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
@@ -135,15 +136,16 @@ public final class EncryptInsertValuesTokenGenerator implements OptionalSQLToken
Iterator<String> descendingColumnNames = insertStatementContext.getDescendingColumnNames();
while (descendingColumnNames.hasNext()) {
String columnName = descendingColumnNames.next();
- Optional<StandardEncryptAlgorithm> standardEncryptor = encryptRule.findStandardEncryptor(encryptTable.getTable(), columnName);
- if (!standardEncryptor.isPresent()) {
+ if (!encryptTable.isEncryptColumn(columnName)) {
continue;
}
int columnIndex = useDefaultInsertColumnsToken.map(optional -> ((UseDefaultInsertColumnsToken) optional).getColumns().indexOf(columnName))
.orElseGet(() -> insertStatementContext.getColumnNames().indexOf(columnName));
Object originalValue = insertValueContext.getLiteralValue(columnIndex).orElse(null);
EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, encryptTable.getTable(), columnName);
- setCipherColumn(insertValueToken, standardEncryptor.get(), columnIndex, encryptContext, insertValueContext.getValueExpressions().get(columnIndex), originalValue);
+ Optional<StandardEncryptAlgorithm> encryptor = encryptRule.findStandardEncryptor(encryptTable.getTable(), columnName);
+ Preconditions.checkState(encryptor.isPresent());
+ setCipherColumn(insertValueToken, encryptor.get(), columnIndex, encryptContext, insertValueContext.getValueExpressions().get(columnIndex), originalValue);
int indexDelta = 1;
if (encryptRule.findAssistedQueryEncryptor(encryptTable.getTable(), columnName).isPresent()) {
addAssistedQueryColumn(encryptTable, insertValueToken,
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index 692131c8240..1b9bd2a8fb6 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -171,6 +171,25 @@ public final class EncryptRule implements DatabaseRule, TableContainedRule {
return findEncryptTable(tableName).flatMap(optional -> optional.findLikeQueryEncryptorName(logicColumnName).map(likeEncryptors::get));
}
+ /**
+ * Encrypt.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param tableName table name
+ * @param logicColumnName logic column name
+ * @param originalValue original value
+ * @return encrypted values
+ */
+ @SuppressWarnings("unchecked")
+ public Object encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final Object originalValue) {
+ @SuppressWarnings("rawtypes")
+ Optional<StandardEncryptAlgorithm> encryptor = findStandardEncryptor(tableName, logicColumnName);
+ ShardingSpherePreconditions.checkState(encryptor.isPresent(), () -> new MissingEncryptorException(tableName, logicColumnName, "STANDARD"));
+ EncryptContext context = EncryptContextBuilder.build(databaseName, schemaName, tableName, logicColumnName);
+ return null == originalValue ? null : encryptor.get().encrypt(originalValue, context);
+ }
+
/**
* Encrypt.
*
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
index 36f5a6c80de..78fb07cd8f2 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
@@ -122,6 +122,16 @@ public final class EncryptTable {
throw new EncryptLogicColumnNotFoundException(cipherColumnName);
}
+ /**
+ * Is encrypt column or not.
+ *
+ * @param logicColumnName logic column name
+ * @return encrypt column or not
+ */
+ public boolean isEncryptColumn(final String logicColumnName) {
+ return columns.containsKey(logicColumnName);
+ }
+
/**
* Is cipher column or not.
*
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java
index 873ae5b50cd..20a8bbb2bfc 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaDataTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.encrypt.merge.dql;
import org.apache.shardingsphere.encrypt.api.context.EncryptContext;
import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
import org.apache.shardingsphere.infra.binder.segment.select.projection.ProjectionsContext;
import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
@@ -129,7 +130,9 @@ class EncryptAlgorithmMetaDataTest {
void assertFindEncryptContextByStatementContext() {
when(tablesContext.findTableNamesByColumnProjection(Collections.singletonList(columnProjection), schema)).thenReturn(Collections.emptyMap());
when(tablesContext.getTableNames()).thenReturn(Arrays.asList("t_user", "t_user_item", "t_order_item"));
- when(encryptRule.findStandardEncryptor("t_order_item", "id")).thenReturn(Optional.of(encryptAlgorithm));
+ EncryptTable encryptTable = mock(EncryptTable.class);
+ when(encryptTable.isEncryptColumn("id")).thenReturn(true);
+ when(encryptRule.findEncryptTable("t_order_item")).thenReturn(Optional.of(encryptTable));
EncryptAlgorithmMetaData encryptAlgorithmMetaData = new EncryptAlgorithmMetaData(database, encryptRule, selectStatementContext);
Optional<EncryptContext> actual = encryptAlgorithmMetaData.findEncryptContext(1);
assertTrue(actual.isPresent());
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
index dc8834b228d..b3844207ac9 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
-import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
@@ -61,20 +60,19 @@ class EncryptAlterTableTokenGeneratorTest {
EncryptRule result = mock(EncryptRule.class);
EncryptTable encryptTable = mockEncryptTable();
when(result.getEncryptTable("t_encrypt")).thenReturn(encryptTable);
- StandardEncryptAlgorithm<?, ?> encryptAlgorithm = mock(StandardEncryptAlgorithm.class);
- when(result.findStandardEncryptor("t_encrypt", "certificate_number")).thenReturn(Optional.of(encryptAlgorithm));
- when(result.findStandardEncryptor("t_encrypt", "certificate_number_new")).thenReturn(Optional.of(encryptAlgorithm));
return result;
}
private EncryptTable mockEncryptTable() {
EncryptTable result = mock(EncryptTable.class);
when(result.getTable()).thenReturn("t_encrypt");
+ when(result.isEncryptColumn("certificate_number")).thenReturn(true);
when(result.getCipherColumn("certificate_number")).thenReturn("cipher_certificate_number");
when(result.findAssistedQueryColumn("certificate_number")).thenReturn(Optional.of("assisted_certificate_number"));
when(result.findLikeQueryColumn("certificate_number")).thenReturn(Optional.of("like_certificate_number"));
when(result.getLogicColumns()).thenReturn(Collections.singleton("t_encrypt"));
when(result.getEncryptColumn("certificate_number")).thenReturn(mockEncryptColumn());
+ when(result.isEncryptColumn("certificate_number_new")).thenReturn(true);
when(result.getCipherColumn("certificate_number_new")).thenReturn("cipher_certificate_number_new");
when(result.getEncryptColumn("certificate_number_new")).thenReturn(mockNewEncryptColumn());
return result;
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
index 1ffbfea6bf0..42a4d5d2afa 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
@@ -79,7 +79,9 @@ class EncryptAssignmentTokenGeneratorTest {
private EncryptRule mockEncryptRule() {
EncryptRule result = mock(EncryptRule.class, RETURNS_DEEP_STUBS);
- when(result.findEncryptTable("table")).thenReturn(Optional.of(mock(EncryptTable.class)));
+ EncryptTable encryptTable = mock(EncryptTable.class);
+ when(encryptTable.isEncryptColumn("columns")).thenReturn(true);
+ when(result.getEncryptTable("table")).thenReturn(encryptTable);
when(result.findStandardEncryptor("table", "columns")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
return result;
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
index 8f431536737..e1bb6facf72 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
-import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
@@ -57,7 +56,6 @@ class EncryptCreateTableTokenGeneratorTest {
private EncryptRule mockEncryptRule() {
EncryptRule result = mock(EncryptRule.class);
- when(result.findStandardEncryptor("t_encrypt", "certificate_number")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
EncryptTable encryptTable = mockEncryptTable();
when(result.getEncryptTable("t_encrypt")).thenReturn(encryptTable);
return result;
@@ -67,6 +65,7 @@ class EncryptCreateTableTokenGeneratorTest {
EncryptTable result = mock(EncryptTable.class);
EncryptColumn column = mockEncryptColumn();
when(result.getLogicColumns()).thenReturn(Collections.singletonList("t_encrypt"));
+ when(result.isEncryptColumn("certificate_number")).thenReturn(true);
when(result.getCipherColumn("certificate_number")).thenReturn(column.getCipher().getName());
when(result.findAssistedQueryColumn("certificate_number")).thenReturn(column.getAssistedQuery().map(EncryptColumnItem::getName));
when(result.findLikeQueryColumn("certificate_number")).thenReturn(column.getLikeQuery().map(EncryptColumnItem::getName));
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
index d4d9bb9bf67..5eba82c04d3 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
@@ -17,8 +17,6 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
-import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
-import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
@@ -68,9 +66,7 @@ class EncryptProjectionTokenGeneratorTest {
when(encryptTable2.getLogicColumns()).thenReturn(Collections.singleton("mobile"));
when(result.findEncryptTable("doctor")).thenReturn(Optional.of(encryptTable1));
when(result.findEncryptTable("doctor1")).thenReturn(Optional.of(encryptTable2));
- EncryptColumn column = new EncryptColumn("mobile", new EncryptColumnItem("mobile", "standard_encryptor"));
- column.setLikeQuery(new EncryptColumnItem("mobile", "like_encryptor"));
- when(encryptTable1.findEncryptColumn("mobile")).thenReturn(Optional.of(column));
+ when(encryptTable1.isEncryptColumn("mobile")).thenReturn(true);
return result;
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
index a7ba48e0a12..424ec3fa820 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
-import org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAssignmentToken;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
@@ -65,8 +64,6 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
EncryptRule result = mock(EncryptRule.class);
EncryptTable encryptTable = mockEncryptTable();
when(result.getEncryptTable("t_user")).thenReturn(encryptTable);
- when(result.findStandardEncryptor("t_user", "mobile")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
- when(result.findStandardEncryptor("t_user", "cipher_mobile")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
when(result.encrypt(null, "db_test", "t_user", "mobile", Collections.singletonList(0))).thenReturn(Collections.singletonList("encryptValue"));
return result;
}
@@ -74,6 +71,7 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
private static EncryptTable mockEncryptTable() {
EncryptTable result = mock(EncryptTable.class);
when(result.getTable()).thenReturn("t_user");
+ when(result.isEncryptColumn("mobile")).thenReturn(true);
when(result.getCipherColumn("mobile")).thenReturn("cipher_mobile");
return result;
}
diff --git a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleStatementUpdater.java b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleStatementUpdater.java
index 0cfa36e952f..0b448300759 100644
--- a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleStatementUpdater.java
+++ b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/AlterReadwriteSplittingRuleStatementUpdater.java
@@ -51,7 +51,8 @@ public final class AlterReadwriteSplittingRuleStatementUpdater implements RuleDe
}
@Override
- public ReadwriteSplittingRuleConfiguration buildToBeDroppedRuleConfiguration(final ReadwriteSplittingRuleConfiguration currentRuleConfig,
+ public ReadwriteSplittingRuleConfiguration buildToBeDroppedRuleConfiguration(
+ final ReadwriteSplittingRuleConfiguration currentRuleConfig,
final ReadwriteSplittingRuleConfiguration toBeAlteredRuleConfig) {
Collection<ReadwriteSplittingDataSourceRuleConfiguration> dataSources = new LinkedList<>();
Map<String, AlgorithmConfiguration> loadBalancers = new HashMap<>();
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
index 0e451c404a1..d83554aa708 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -606,15 +606,11 @@ public abstract class MySQLStatementVisitor extends MySQLStatementBaseVisitor<AS
}
if (null != ctx.notOperator()) {
ASTNode expression = visit(ctx.simpleExpr(0));
- Boolean notSign = false;
if (expression instanceof ExistsSubqueryExpression) {
((ExistsSubqueryExpression) expression).setNot(true);
return expression;
}
- if ("!".equalsIgnoreCase(ctx.notOperator().getText())) {
- notSign = true;
- }
- return new NotExpression(startIndex, stopIndex, (ExpressionSegment) expression, notSign);
+ return new NotExpression(startIndex, stopIndex, (ExpressionSegment) expression, "!".equalsIgnoreCase(ctx.notOperator().getText()));
}
if (null != ctx.LP_() && 1 == ctx.expr().size()) {
return visit(ctx.expr(0));
diff --git a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index f2df0c2afc3..67d46621847 100644
--- a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++ b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -1030,8 +1030,7 @@ public abstract class OpenGaussStatementVisitor extends OpenGaussStatementBaseVi
}
private Collection<ExpressionSegment> getWindowSpecification(final WindowSpecificationContext ctx) {
- Collection<ExpressionSegment> result = createInsertValuesSegments(ctx.partitionClause().exprList());
- return result;
+ return createInsertValuesSegments(ctx.partitionClause().exprList());
}
@Override
diff --git a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index 6226534a751..9a084ecdbee 100644
--- a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++ b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -994,8 +994,7 @@ public abstract class PostgreSQLStatementVisitor extends PostgreSQLStatementPars
}
private Collection<ExpressionSegment> getWindowSpecification(final WindowSpecificationContext ctx) {
- Collection<ExpressionSegment> result = createInsertValuesSegments(ctx.partitionClause().exprList());
- return result;
+ return createInsertValuesSegments(ctx.partitionClause().exprList());
}
@Override
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
index d70d350bbee..d7375cc04d1 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
@@ -50,8 +50,8 @@ class RDLBackendHandlerFactoryTest {
assertThat(RDLBackendHandlerFactory.newInstance(mock(UnregisterStorageUnitStatement.class), mock(ConnectionSession.class)), instanceOf(UnregisterStorageUnitBackendHandler.class));
}
- // TODO enable this when metadata structure adjustment completed.
- @Disabled
+ // TODO
+ @Disabled("enable this when metadata structure adjustment completed")
@Test
void assertNewInstanceWithRuleDefinitionStatement() {
assertThat(RDLBackendHandlerFactory.newInstance(mock(RuleDefinitionStatement.class), mock(ConnectionSession.class)), instanceOf(RuleDefinitionBackendHandler.class));
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index ada9e711e68..2696317f120 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -116,7 +116,7 @@ class PostgreSQLComParseExecutorTest {
}
@Test
- void assetExecuteWithNonOrderedParameterizedSQL() throws ReflectiveOperationException {
+ void assertExecuteWithNonOrderedParameterizedSQL() throws ReflectiveOperationException {
final String rawSQL = "update t_test set name=$2 where id=$1";
final String expectedSQL = "update t_test set name=? where id=?";
final String statementId = "S_2";