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

zhaojinchao 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 9c9de6db36a Refactor EncryptSQLException's impl (#30846)
9c9de6db36a is described below

commit 9c9de6db36abe1adc3ec36ed98d358681f0804d4
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Apr 11 12:18:30 2024 +0800

    Refactor EncryptSQLException's impl (#30846)
    
    * Refactor EncryptSQLException's impl
    
    * Refactor EncryptSQLException's impl
---
 .../user-manual/error-code/sql-error-code.cn.md    | 20 ++++++-------
 .../user-manual/error-code/sql-error-code.en.md    | 20 ++++++-------
 .../checker/EncryptRuleConfigurationChecker.java   | 11 ++++----
 ...ncryptAssistedQueryColumnNotFoundException.java | 33 ----------------------
 .../metadata/EncryptColumnAlterException.java      |  2 +-
 .../metadata/EncryptColumnNotFoundException.java   |  2 +-
 .../EncryptLikeQueryColumnNotFoundException.java   | 33 ----------------------
 .../EncryptLogicColumnNotFoundException.java       |  2 +-
 .../metadata/EncryptTableNotFoundException.java    |  2 +-
 .../MismatchedEncryptAlgorithmTypeException.java   |  5 ++--
 ... => MissingRequiredEncryptColumnException.java} |  8 +++---
 .../shardingsphere/encrypt/rule/EncryptRule.java   |  2 +-
 .../encrypt/rule/EncryptRuleTest.java              |  2 +-
 13 files changed, 35 insertions(+), 107 deletions(-)

diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md 
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 607c4269961..a8a745dff53 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -214,17 +214,15 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 
 ### 数据加密
 
-| Vendor Code | SQL State | 错误信息                                               
                                                |
-|-------------|-----------|----------------------------------------------------------------------------------------------------|
-| 21000       | 44000     | Can not find logic encrypt column by \`%s\`.       
                                                |
-| 21001       | 44000     | Fail to find encrypt column \`%s\` from table 
\`%s\`.                                              |
-| 21002       | 44000     | Altered column \`%s\` must use same encrypt 
algorithm with previous column \`%s\` in table \`%s\`. |
-| 21003       | 44000     | Cipher column of \`%s\` can not be null in 
database \`%s\`.                                        |
-| 21005       | 44000     | Assisted query column of \`%s\` can not be null in 
database \`%s\`.                                |
-| 21007       | 44000     | Like query column of \`%s\` can not be null in 
database \`%s\`.                                    |
-| 21009       | 44000     | Can not find encrypt table: \`%s\`.                
                                                |
-| 21020       | 0A000     | The SQL clause '%s' is unsupported in encrypt 
feature.                                             |
-| 21081       | HY004     | \`%s\` column's encryptor name \`%s\` does not 
match encrypt algorithm type \`%s\`.                |
+| Vendor Code | SQL State | 错误信息                                               
                                          |
+|-------------|-----------|----------------------------------------------------------------------------------------------|
+| 21000       | 42S02     | %s column '%s' is required in database '%s'.       
                                          |
+| 21001       | 42S02     | Can not find encrypt table '%s'.                   
                                          |
+| 21002       | 42S02     | Can not find logic encrypt column by '%s'.         
                                          |
+| 21003       | 42S02     | Can not find encrypt column '%s' from table '%s'.  
                                          |
+| 21004       | HY004     | '%s' column's encrypt algorithm '%s' should 
support %s in database '%s'.                     |
+| 21010       | 44000     | Altered column '%s' must use same encrypt 
algorithm with previous column '%s' in table '%s'. |
+| 21020       | 0A000     | The SQL clause '%s' is unsupported in encrypt 
feature.                                       |
 
 ### 影子库
 
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md 
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index 41ac4df94bb..ca16ff8ab12 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -215,17 +215,15 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 
 ### Data Encrypt
 
-| Vendor Code | SQL State | Reason                                             
                                                |
-|-------------|-----------|----------------------------------------------------------------------------------------------------|
-| 21000       | 44000     | Can not find logic encrypt column by \`%s\`.       
                                                |
-| 21001       | 44000     | Fail to find encrypt column \`%s\` from table 
\`%s\`.                                              |
-| 21002       | 44000     | Altered column \`%s\` must use same encrypt 
algorithm with previous column \`%s\` in table \`%s\`. |
-| 21003       | 44000     | Cipher column of \`%s\` can not be null in 
database \`%s\`.                                        |
-| 21005       | 44000     | Assisted query column of \`%s\` can not be null in 
database \`%s\`.                                |
-| 21007       | 44000     | Like query column of \`%s\` can not be null in 
database \`%s\`.                                    |
-| 21009       | 44000     | Can not find encrypt table: \`%s\`.                
                                                |
-| 21020       | 0A000     | The SQL clause '%s' is unsupported in encrypt 
feature.                                             |
-| 21081       | HY004     | \`%s\` column's encryptor name \`%s\` does not 
match encrypt algorithm type \`%s\`.                |
+| Vendor Code | SQL State | Reason                                             
                                          |
+|-------------|-----------|----------------------------------------------------------------------------------------------|
+| 21000       | 42S02     | %s column '%s' is required in database '%s'.       
                                          |
+| 21001       | 42S02     | Can not find encrypt table '%s'.                   
                                          |
+| 21002       | 42S02     | Can not find logic encrypt column by '%s'.         
                                          |
+| 21003       | 42S02     | Can not find encrypt column '%s' from table '%s'.  
                                          |
+| 21004       | HY004     | '%s' column's encrypt algorithm '%s' should 
support %s in database '%s'.                     |
+| 21010       | 44000     | Altered column '%s' must use same encrypt 
algorithm with previous column '%s' in table '%s'. |
+| 21020       | 0A000     | The SQL clause '%s' is unsupported in encrypt 
feature.                                       |
 
 ### Shadow Database
 
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
index dcb2b624cf8..8613e2ceaf0 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
@@ -23,9 +23,7 @@ import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleCo
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
 import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
-import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryColumnNotFoundException;
-import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptCipherColumnNotFoundException;
-import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryColumnNotFoundException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.MissingRequiredEncryptColumnException;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.algorithm.core.exception.EmptyAlgorithmException;
@@ -72,7 +70,7 @@ public final class EncryptRuleConfigurationChecker implements 
RuleConfigurationC
     
     private void checkCipherColumn(final String databaseName, final String 
tableName, final String logicColumnName,
                                    final EncryptColumnItemRuleConfiguration 
cipherColumnConfig, final Map<String, AlgorithmConfiguration> encryptors) {
-        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumnConfig.getName()),
 () -> new EncryptCipherColumnNotFoundException(logicColumnName, databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumnConfig.getName()),
 () -> new MissingRequiredEncryptColumnException("Cipher", logicColumnName, 
databaseName));
         
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumnConfig.getEncryptorName()),
                 () -> new EmptyAlgorithmException("Standard encrypt", new 
SQLExceptionIdentifier(databaseName, tableName, logicColumnName)));
         
ShardingSpherePreconditions.checkState(encryptors.containsKey(cipherColumnConfig.getEncryptorName()),
@@ -81,7 +79,8 @@ public final class EncryptRuleConfigurationChecker implements 
RuleConfigurationC
     
     private void checkAssistColumn(final String databaseName, final String 
tableName, final String logicColumnName,
                                    final EncryptColumnItemRuleConfiguration 
assistedQueryColumnConfig, final Map<String, AlgorithmConfiguration> 
encryptors) {
-        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumnConfig.getName()),
 () -> new EncryptAssistedQueryColumnNotFoundException(logicColumnName, 
databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumnConfig.getName()),
+                () -> new MissingRequiredEncryptColumnException("Assisted 
query", logicColumnName, databaseName));
         
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumnConfig.getEncryptorName()),
                 () -> new EmptyAlgorithmException("Assist query encrypt", new 
SQLExceptionIdentifier(databaseName, tableName, logicColumnName)));
         
ShardingSpherePreconditions.checkState(encryptors.containsKey(assistedQueryColumnConfig.getEncryptorName()),
@@ -90,7 +89,7 @@ public final class EncryptRuleConfigurationChecker implements 
RuleConfigurationC
     
     private void checkLikeColumn(final String databaseName, final String 
tableName, final String logicColumnName,
                                  final EncryptColumnItemRuleConfiguration 
likeQueryColumnConfig, final Map<String, AlgorithmConfiguration> encryptors) {
-        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumnConfig.getName()),
 () -> new EncryptLikeQueryColumnNotFoundException(logicColumnName, 
databaseName));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumnConfig.getName()),
 () -> new MissingRequiredEncryptColumnException("Like", logicColumnName, 
databaseName));
         
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumnConfig.getEncryptorName()),
                 () -> new EmptyAlgorithmException("Like query", new 
SQLExceptionIdentifier(databaseName, tableName, logicColumnName)));
         
ShardingSpherePreconditions.checkState(encryptors.containsKey(likeQueryColumnConfig.getEncryptorName()),
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
deleted file mode 100644
index 39115f09652..00000000000
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryColumnNotFoundException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.encrypt.exception.metadata;
-
-import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-
-/**
- * Encrypt assisted query column not found exception.
- */
-public final class EncryptAssistedQueryColumnNotFoundException extends 
EncryptSQLException {
-    
-    private static final long serialVersionUID = -4958403725374225598L;
-    
-    public EncryptAssistedQueryColumnNotFoundException(final String 
logicColumnName, final String databaseName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Assisted query column 
of `%s` can not be null in database `%s`.", logicColumnName, databaseName);
-    }
-}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnAlterException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnAlterException.java
index e184d9e6169..061d6a4cc63 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnAlterException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnAlterException.java
@@ -28,6 +28,6 @@ public final class EncryptColumnAlterException extends 
EncryptSQLException {
     private static final long serialVersionUID = -8920381230872401155L;
     
     public EncryptColumnAlterException(final String table, final String 
alteredColumn, final String previousColumn) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 2, "Altered column `%s` 
must use same encrypt algorithm with previous column `%s` in table `%s`.", 
alteredColumn, previousColumn, table);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 10, "Altered column '%s' 
must use same encrypt algorithm with previous column '%s' in table '%s'.", 
alteredColumn, previousColumn, table);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnNotFoundException.java
index d121bf3a01e..e1d9089c9d1 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnNotFoundException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptColumnNotFoundException.java
@@ -28,6 +28,6 @@ public final class EncryptColumnNotFoundException extends 
EncryptSQLException {
     private static final long serialVersionUID = -8481487069938556675L;
     
     public EncryptColumnNotFoundException(final String tableName, final String 
columnName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 1, "Fail to find encrypt 
column `%s` from table `%s`.", columnName, tableName);
+        super(XOpenSQLState.NOT_FOUND, 3, "Can not find encrypt column '%s' 
from table '%s'.", columnName, tableName);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
deleted file mode 100644
index e9b9270585c..00000000000
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryColumnNotFoundException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.encrypt.exception.metadata;
-
-import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-
-/**
- * Encrypt like query column not found exception.
- */
-public final class EncryptLikeQueryColumnNotFoundException extends 
EncryptSQLException {
-    
-    private static final long serialVersionUID = -1628043793867162797L;
-    
-    public EncryptLikeQueryColumnNotFoundException(final String 
logicColumnName, final String databaseName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 7, "Like query column of 
`%s` can not be null in database `%s`.", logicColumnName, databaseName);
-    }
-}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLogicColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLogicColumnNotFoundException.java
index d13504432b2..5a1c031c28c 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLogicColumnNotFoundException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLogicColumnNotFoundException.java
@@ -28,6 +28,6 @@ public final class EncryptLogicColumnNotFoundException 
extends EncryptSQLExcepti
     private static final long serialVersionUID = 3934531389314348880L;
     
     public EncryptLogicColumnNotFoundException(final String actualColumn) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "Can not find logic 
encrypt column by `%s`.", actualColumn);
+        super(XOpenSQLState.NOT_FOUND, 2, "Can not find logic encrypt column 
by '%s'.", actualColumn);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
index 1158dea192d..6823ce88d78 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptTableNotFoundException.java
@@ -28,6 +28,6 @@ public final class EncryptTableNotFoundException extends 
EncryptSQLException {
     private static final long serialVersionUID = 8909641495852822938L;
     
     public EncryptTableNotFoundException(final String tableName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 9, "Can not find encrypt 
table: `%s`.", tableName);
+        super(XOpenSQLState.NOT_FOUND, 1, "Can not find encrypt table '%s'.", 
tableName);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/algorithm/MismatchedEncryptAlgorithmTypeException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MismatchedEncryptAlgorithmTypeException.java
similarity index 84%
rename from 
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/algorithm/MismatchedEncryptAlgorithmTypeException.java
rename to 
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MismatchedEncryptAlgorithmTypeException.java
index 14d8fd764e9..722c3a9f367 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/algorithm/MismatchedEncryptAlgorithmTypeException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MismatchedEncryptAlgorithmTypeException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.encrypt.exception.algorithm;
+package org.apache.shardingsphere.encrypt.exception.metadata;
 
 import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
@@ -28,7 +28,6 @@ public final class MismatchedEncryptAlgorithmTypeException 
extends EncryptSQLExc
     private static final long serialVersionUID = 4258928279099223870L;
     
     public MismatchedEncryptAlgorithmTypeException(final String databaseName, 
final String columnType, final String encryptorName, final String 
algorithmFeature) {
-        super(XOpenSQLState.GENERAL_ERROR, 81, "`%s` column's encryptor `%s` 
should support `%s` in database `%s`.",
-                columnType, encryptorName, algorithmFeature, databaseName);
+        super(XOpenSQLState.GENERAL_ERROR, 4, "'%s' column's encrypt algorithm 
'%s' should support %s in database '%s'.", columnType, encryptorName, 
algorithmFeature, databaseName);
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingRequiredEncryptColumnException.java
similarity index 73%
rename from 
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
rename to 
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingRequiredEncryptColumnException.java
index fed9c45ceca..4b5a79c0990 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptCipherColumnNotFoundException.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingRequiredEncryptColumnException.java
@@ -21,13 +21,13 @@ import 
org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 
 /**
- * Encrypt cipher column not found exception.
+ * Missing required encrypt column Exception.
  */
-public final class EncryptCipherColumnNotFoundException extends 
EncryptSQLException {
+public final class MissingRequiredEncryptColumnException extends 
EncryptSQLException {
     
     private static final long serialVersionUID = -6765795304282762539L;
     
-    public EncryptCipherColumnNotFoundException(final String logicColumnName, 
final String databaseName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3, "Cipher column of `%s` 
can not be null in database `%s`.", logicColumnName, databaseName);
+    public MissingRequiredEncryptColumnException(final String columnType, 
final String logicColumnName, final String databaseName) {
+        super(XOpenSQLState.NOT_FOUND, 0, "%s column '%s' is required in 
database '%s'.", columnType, logicColumnName, databaseName);
     }
 }
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 4011c18f616..68e962d1ea7 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
@@ -21,7 +21,7 @@ import lombok.Getter;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.exception.algorithm.MismatchedEncryptAlgorithmTypeException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.MismatchedEncryptAlgorithmTypeException;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptTableNotFoundException;
 import 
org.apache.shardingsphere.encrypt.rule.attribute.EncryptTableMapperRuleAttribute;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
index 7ef4b762816..d2cbaa71476 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
@@ -21,7 +21,7 @@ import 
org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
-import 
org.apache.shardingsphere.encrypt.exception.algorithm.MismatchedEncryptAlgorithmTypeException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.MismatchedEncryptAlgorithmTypeException;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptTableNotFoundException;
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
 import org.junit.jupiter.api.Test;

Reply via email to