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 f807e9ad062 Add EmptyAlgorithmOnColumnException (#30645)
f807e9ad062 is described below

commit f807e9ad0624460a3f8f87509db32f3a838b9277
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Mon Mar 25 23:17:48 2024 +0800

    Add EmptyAlgorithmOnColumnException (#30645)
    
    * Add EmptyAlgorithmOnColumnException
    
    * Add EmptyAlgorithmOnColumnException
---
 .../content/user-manual/error-code/sql-error-code.cn.md    |  1 +
 .../content/user-manual/error-code/sql-error-code.en.md    |  1 +
 .../encrypt/checker/EncryptRuleConfigurationChecker.java   | 11 +++++++----
 .../core/exception/EmptyAlgorithmOnColumnException.java    | 14 +++++++-------
 4 files changed, 16 insertions(+), 11 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 4ba68b6ebed..300e85e1b4a 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
@@ -23,6 +23,7 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | 42S02     | 10007       | Table or view \`%s\` does not exist.               
                            |
 | 42000     | 10010       | Rule does not exist.                               
                            |
 | 44000     | 10011       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                       |
+| 44000     | 10012       | '%s' algorithm on database.table.column: 
'%s'.'%s'.'%s' is required.           |
 | 42S02     | 10013       | Can not find '%s' algorithm '%s' on 
database.table.column: '%s'.'%s'.'%s'.     |
 | HY000     | 10015       | Algorithm '%s.%s' execute failed, reason is: %s.   
                            |
 | 42S02     | 10020       | Schema \`%s\` does not exist.                      
                            |
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 a9296db1480..5370722c3e0 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
@@ -23,6 +23,7 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | 42S02     | 10007       | Table or view \`%s\` does not exist.               
                            |
 | 42000     | 10010       | Rule does not exist.                               
                            |
 | 44000     | 10011       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                       |
+| 44000     | 10012       | '%s' algorithm on database.table.column: 
'%s'.'%s'.'%s' is required.           |
 | 42S02     | 10013       | Can not find '%s' algorithm '%s' on 
database.table.column: '%s'.'%s'.'%s'.     |
 | HY000     | 10015       | Algorithm '%s.%s' execute failed, reason is: %s.   
                            |
 | 42S02     | 10020       | Schema \`%s\` does not exist.                      
                            |
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 c0f0abe98b4..32cbd77d4f1 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
@@ -26,10 +26,10 @@ 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.MissingEncryptorException;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.UnregisteredEncryptorException;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import 
org.apache.shardingsphere.infra.algorithm.core.config.AlgorithmConfiguration;
+import 
org.apache.shardingsphere.infra.algorithm.core.exception.EmptyAlgorithmOnColumnException;
 import 
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -72,7 +72,8 @@ 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.getEncryptorName()),
 () -> new MissingEncryptorException(tableName, logicColumnName, "STANDARD"));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumnConfig.getEncryptorName()),
+                () -> new EmptyAlgorithmOnColumnException("Standard encrypt", 
databaseName, tableName, logicColumnName));
         
ShardingSpherePreconditions.checkState(encryptors.containsKey(cipherColumnConfig.getEncryptorName()),
                 () -> new UnregisteredEncryptorException(databaseName, 
cipherColumnConfig.getEncryptorName()));
     }
@@ -80,7 +81,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.getEncryptorName()),
 () -> new MissingEncryptorException(tableName, logicColumnName, 
"ASSIST_QUERY"));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumnConfig.getEncryptorName()),
+                () -> new EmptyAlgorithmOnColumnException("Assist query 
encrypt", databaseName, tableName, logicColumnName));
         ShardingSpherePreconditions.checkState(
                 
encryptors.containsKey(assistedQueryColumnConfig.getEncryptorName()), () -> new 
UnregisteredEncryptorException(databaseName, 
assistedQueryColumnConfig.getEncryptorName()));
     }
@@ -88,7 +90,8 @@ 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.getEncryptorName()),
 () -> new MissingEncryptorException(tableName, logicColumnName, "LIKE_QUERY"));
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumnConfig.getEncryptorName()),
+                () -> new EmptyAlgorithmOnColumnException("Like query", 
databaseName, tableName, logicColumnName));
         
ShardingSpherePreconditions.checkState(encryptors.containsKey(likeQueryColumnConfig.getEncryptorName()),
                 () -> new UnregisteredEncryptorException(databaseName, 
likeQueryColumnConfig.getEncryptorName()));
     }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
 
b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/EmptyAlgorithmOnColumnException.java
similarity index 57%
rename from 
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
rename to 
infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/EmptyAlgorithmOnColumnException.java
index a52cf6989a6..b2de509faf7 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
+++ 
b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/EmptyAlgorithmOnColumnException.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.encrypt.exception.metadata;
+package org.apache.shardingsphere.infra.algorithm.core.exception;
 
-import org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 
 /**
- * Missing encryptor exception.
+ * Empty algorithm on column exception.
  */
-public final class MissingEncryptorException extends EncryptSQLException {
+public final class EmptyAlgorithmOnColumnException extends 
MetaDataSQLException {
     
-    private static final long serialVersionUID = -4847495252826650747L;
+    private static final long serialVersionUID = 8128067899672436211L;
     
-    public MissingEncryptorException(final String tableName, final String 
logicColumnName, final String encryptorType) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Can not find %s 
encryptor in table `%s` and column `%s`.", encryptorType, tableName, 
logicColumnName);
+    public EmptyAlgorithmOnColumnException(final String algorithmType, final 
String databaseName, final String tableName, final String columnName) {
+        super(XOpenSQLState.NOT_FOUND, 12, "'%s' algorithm on 
database.table.column: '%s'.'%s'.'%s' is required.", algorithmType, 
databaseName, tableName, columnName);
     }
 }

Reply via email to