You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/06/23 09:38:54 UTC
[shardingsphere] branch master updated: Refactor EncryptAlterTableTokenGenerator (#26507)
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 ad6c1e8b40f Refactor EncryptAlterTableTokenGenerator (#26507)
ad6c1e8b40f is described below
commit ad6c1e8b40f6090b70f808a2c94c1ad6a0db044c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Jun 23 17:38:46 2023 +0800
Refactor EncryptAlterTableTokenGenerator (#26507)
---
.../token/generator/EncryptAlterTableTokenGenerator.java | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
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 1e9687cea32..a85c902184d 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
@@ -172,13 +172,14 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
private Collection<? extends SQLToken> getChangeColumnTokens(final EncryptTable encryptTable, final ChangeColumnDefinitionSegment segment) {
isSameEncryptColumn(encryptTable, segment);
- if (!encryptTable.isEncryptColumn(segment.getPreviousColumn().getIdentifier().getValue())
- || !encryptTable.isEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue())) {
+ String columnName = segment.getColumnDefinition().getColumnName().getIdentifier().getValue();
+ String previousColumnName = segment.getColumnDefinition().getColumnName().getIdentifier().getValue();
+ if (!encryptTable.isEncryptColumn(columnName) || !encryptTable.isEncryptColumn(previousColumnName)) {
return Collections.emptyList();
}
Collection<SQLToken> result = new LinkedList<>();
result.addAll(getPreviousColumnTokens(encryptTable, segment));
- result.addAll(getColumnTokens(encryptTable, segment));
+ result.addAll(getColumnTokens(encryptTable.getEncryptColumn(columnName), encryptTable.getEncryptColumn(previousColumnName), segment));
return result;
}
@@ -205,13 +206,11 @@ public final class EncryptAlterTableTokenGenerator implements CollectionSQLToken
return previousColumn.getAssistedQuery().isPresent() || !currentColumn.getAssistedQuery().isPresent();
}
- private Collection<? extends SQLToken> getColumnTokens(final EncryptTable encryptTable, final ChangeColumnDefinitionSegment segment) {
+ private Collection<? extends SQLToken> getColumnTokens(final EncryptColumn encryptColumn, final EncryptColumn previousEncryptColumn, final ChangeColumnDefinitionSegment segment) {
Collection<SQLToken> result = new LinkedList<>();
result.add(new RemoveToken(segment.getColumnDefinition().getColumnName().getStartIndex(), segment.getColumnDefinition().getColumnName().getStopIndex()));
result.add(new EncryptAlterTableToken(segment.getColumnDefinition().getColumnName().getStopIndex() + 1, segment.getColumnDefinition().getColumnName().getStopIndex(),
- encryptTable.getEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue()).getCipher().getName(), null));
- EncryptColumn previousEncryptColumn = encryptTable.getEncryptColumn(segment.getPreviousColumn().getIdentifier().getValue());
- EncryptColumn encryptColumn = encryptTable.getEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
+ encryptColumn.getCipher().getName(), null));
previousEncryptColumn.getAssistedQuery()
.map(optional -> new EncryptAlterTableToken(segment.getStopIndex() + 1, segment.getColumnDefinition().getColumnName().getStopIndex(),
encryptColumn.getAssistedQuery().map(AssistedQueryColumnItem::getName).orElse(""), ", CHANGE COLUMN " + optional.getName()))