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 <[email protected]>
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()))