This is an automated email from the ASF dual-hosted git repository.

tuichenchuxin 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 f3ae9f59730 Optimize show create table decorate logic (#19416)
f3ae9f59730 is described below

commit f3ae9f597302b764f4114c75bd2821b42f660431
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Jul 21 14:38:08 2022 +0800

    Optimize show create table decorate logic (#19416)
---
 .../merge/dal/show/EncryptShowCreateTableMergedResult.java        | 6 +++---
 .../dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java | 8 ++++----
 .../dal/show/MergedEncryptShowCreateTableMergedResultTest.java    | 8 ++++----
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
index 1fd5a897c15..6555980741b 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
@@ -88,12 +88,12 @@ public abstract class EncryptShowCreateTableMergedResult 
implements MergedResult
             return Optional.empty();
         }
         Optional<String> plainColumn = encryptColumn.get().getPlainColumn();
-        if (plainColumn.isPresent() && 
columnDefinition.contains(plainColumn.get())) {
-            return Optional.of(columnDefinition.replace(plainColumn.get(), 
logicColumn));
-        }
         if (columnDefinition.contains(encryptColumn.get().getCipherColumn())) {
             return plainColumn.isPresent() ? Optional.empty() : 
Optional.of(columnDefinition.replace(encryptColumn.get().getCipherColumn(), 
logicColumn));
         }
+        if (plainColumn.isPresent() && 
columnDefinition.contains(plainColumn.get())) {
+            return Optional.of(columnDefinition.replace(plainColumn.get(), 
logicColumn));
+        }
         return Optional.of(columnDefinition);
     }
     
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
index 91a2fb7cacd..672fef35f1a 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
@@ -63,9 +63,9 @@ public final class 
DecoratedEncryptShowCreateTableMergedResultTest {
         when(mergedResult.next()).thenReturn(true).thenReturn(false);
         when(mergedResult.getValue(2, String.class)).thenReturn(
                 "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, "
-                        + "`user_id_plain` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
+                        + "`user_id` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         DecoratedEncryptShowCreateTableMergedResult actual =
-                
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", null, "user_id_plain", 
null, false)));
+                
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", null, "user_id", null, 
false)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
@@ -88,10 +88,10 @@ public final class 
DecoratedEncryptShowCreateTableMergedResultTest {
     public void assertGetValueWhenConfigPlainColumnAndAssistedQueryColumn() 
throws SQLException {
         when(mergedResult.next()).thenReturn(true).thenReturn(false);
         when(mergedResult.getValue(2, String.class)).thenReturn(
-                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, `user_id_plain` VARCHAR(100) NOT NULL, "
+                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, `user_id` VARCHAR(100) NOT NULL, "
                         + "`user_id_assisted` VARCHAR(100) NOT NULL, 
`order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         DecoratedEncryptShowCreateTableMergedResult actual =
-                
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", "user_id_assisted", 
"user_id_plain", null, false)));
+                
createDecoratedEncryptShowCreateTableMergedResult(mergedResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", "user_id_assisted", 
"user_id", null, false)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
index 3cd201c17ca..5f12009a73c 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
@@ -63,9 +63,9 @@ public final class 
MergedEncryptShowCreateTableMergedResultTest {
         when(queryResult.next()).thenReturn(true).thenReturn(false);
         when(queryResult.getValue(2, String.class)).thenReturn(
                 "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, "
-                        + "`user_id_plain` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
+                        + "`user_id` VARCHAR(100) NOT NULL, `order_id` 
VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         MergedEncryptShowCreateTableMergedResult actual =
-                createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", null, "user_id_plain", 
null, false)));
+                createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", null, "user_id", null, 
false)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));
@@ -88,10 +88,10 @@ public final class 
MergedEncryptShowCreateTableMergedResultTest {
     public void assertGetValueWhenConfigPlainColumnAndAssistedQueryColumn() 
throws SQLException {
         when(queryResult.next()).thenReturn(true).thenReturn(false);
         when(queryResult.getValue(2, String.class)).thenReturn(
-                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, `user_id_plain` VARCHAR(100) NOT NULL, "
+                "CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id_cipher` 
VARCHAR(100) NOT NULL, `user_id` VARCHAR(100) NOT NULL, "
                         + "`user_id_assisted` VARCHAR(100) NOT NULL, 
`order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4;");
         MergedEncryptShowCreateTableMergedResult actual =
-                createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", "user_id_assisted", 
"user_id_plain", null, false)));
+                createMergedEncryptShowCreateTableMergedResult(queryResult, 
mockEncryptRule(new EncryptColumn("user_id_cipher", "user_id_assisted", 
"user_id", null, false)));
         assertTrue(actual.next());
         assertThat(actual.getValue(2, String.class),
                 is("CREATE TABLE `t_encrypt` (`id` INT NOT NULL, `user_id` 
VARCHAR(100) NOT NULL, `order_id` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`)) 
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"));

Reply via email to