This is an automated email from the ASF dual-hosted git repository. zhangstar333 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 08a3e56c2c3 [Fix](function) Refine crypto functions signature to fix wrong result (#40285) 08a3e56c2c3 is described below commit 08a3e56c2c3cc1b3aea1c5c309bb3dd33c3a490f Author: zclllhhjj <zhaochan...@selectdb.com> AuthorDate: Wed Sep 4 12:50:44 2024 +0800 [Fix](function) Refine crypto functions signature to fix wrong result (#40285) ## Proposed changes Issue Number: close #xxx 1. remove all `aes/sm4_{encrypt/decrypt}_v2` functions signatures. 2. before for 2 args, always use `XXX_128_ECB`, now fixed it. we will use `block_encryption_mode` when 2/3 args are given. 2.1. before this, we wrongly used `AES_128_ECB` for SM4_ENCRYPT 4. for `AES_ENCRYPT` with 2 args, we wrongly use `'AES_128_ECB'` as its default initial string. now fixed it. docs: https://github.com/apache/doris-website/pull/1083 --- .../apache/doris/analysis/FunctionCallExpr.java | 87 +++------------------- .../doris/catalog/BuiltinScalarFunctions.java | 8 -- .../expressions/functions/scalar/AesDecrypt.java | 14 +--- .../expressions/functions/scalar/AesDecryptV2.java | 74 ------------------ .../expressions/functions/scalar/AesEncrypt.java | 14 +--- .../expressions/functions/scalar/AesEncryptV2.java | 74 ------------------ .../expressions/functions/scalar/Sm4Decrypt.java | 15 +--- .../expressions/functions/scalar/Sm4DecryptV2.java | 69 ----------------- .../expressions/functions/scalar/Sm4Encrypt.java | 15 +--- .../expressions/functions/scalar/Sm4EncryptV2.java | 72 ------------------ .../expressions/visitor/ScalarFunctionVisitor.java | 20 ----- .../encryption_digest/test_encryption_function.out | 80 +------------------- .../encryption_digest/test_encryption_function.out | 64 +--------------- .../nereids_function_p0/scalar_function/S.groovy | 51 +------------ .../test_encryption_function.groovy | 73 +----------------- .../test_encryption_function.groovy | 62 +-------------- 16 files changed, 29 insertions(+), 763 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java index 4041fa4873b..a1d89e12ec4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java @@ -645,11 +645,7 @@ public class FunctionCallExpr extends Expr { && (fnName.getFunction().equalsIgnoreCase("aes_decrypt") || fnName.getFunction().equalsIgnoreCase("aes_encrypt") || fnName.getFunction().equalsIgnoreCase("sm4_decrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt") - || fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2"))) { + || fnName.getFunction().equalsIgnoreCase("sm4_encrypt"))) { sb.append("\'***\'"); } else if (orderByElements.size() > 0 && i == len - orderByElements.size()) { sb.append("ORDER BY "); @@ -734,22 +730,13 @@ public class FunctionCallExpr extends Expr { if (fnName.getFunction().equalsIgnoreCase("aes_decrypt") || fnName.getFunction().equalsIgnoreCase("aes_encrypt") || fnName.getFunction().equalsIgnoreCase("sm4_decrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt") - || fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2")) { + || fnName.getFunction().equalsIgnoreCase("sm4_encrypt")) { len = len - 1; } for (int i = 0; i < len; ++i) { if (i == 1 && (fnName.getFunction().equalsIgnoreCase("aes_decrypt") || fnName.getFunction().equalsIgnoreCase("aes_encrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt") - || fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2"))) { + || fnName.getFunction().equalsIgnoreCase("sm4_decrypt"))) { result.add("\'***\'"); } else { result.add(children.get(i).toDigest()); @@ -1152,13 +1139,8 @@ public class FunctionCallExpr extends Expr { if ((fnName.getFunction().equalsIgnoreCase("aes_decrypt") || fnName.getFunction().equalsIgnoreCase("aes_encrypt") || fnName.getFunction().equalsIgnoreCase("sm4_decrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt") - || fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2")) + || fnName.getFunction().equalsIgnoreCase("sm4_encrypt")) && (children.size() == 2 || children.size() == 3)) { - String blockEncryptionMode = ""; Set<String> aesModes = new HashSet<>(Arrays.asList( "AES_128_ECB", "AES_192_ECB", @@ -1192,43 +1174,20 @@ public class FunctionCallExpr extends Expr { "SM4_128_OFB", "SM4_128_CTR")); + String blockEncryptionMode = ""; if (ConnectContext.get() != null) { blockEncryptionMode = ConnectContext.get().getSessionVariable().getBlockEncryptionMode(); if (fnName.getFunction().equalsIgnoreCase("aes_decrypt") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt") - || fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2")) { + || fnName.getFunction().equalsIgnoreCase("aes_encrypt")) { if (StringUtils.isAllBlank(blockEncryptionMode)) { blockEncryptionMode = "AES_128_ECB"; } if (!aesModes.contains(blockEncryptionMode.toUpperCase())) { throw new AnalysisException("session variable block_encryption_mode is invalid with aes"); } - if (children.size() == 2) { - boolean isECB = blockEncryptionMode.equalsIgnoreCase("AES_128_ECB") - || blockEncryptionMode.equalsIgnoreCase("AES_192_ECB") - || blockEncryptionMode.equalsIgnoreCase("AES_256_ECB"); - if (fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2")) { - if (!isECB) { - throw new AnalysisException( - "Incorrect parameter count in the call to native function 'aes_decrypt'"); - } - } else if (fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2")) { - if (!isECB) { - throw new AnalysisException( - "Incorrect parameter count in the call to native function 'aes_encrypt'"); - } - } else { - // if there are only 2 params, we need set encryption mode to AES_128_ECB - // this keeps the behavior consistent with old doris ver. - blockEncryptionMode = "AES_128_ECB"; - } - } } if (fnName.getFunction().equalsIgnoreCase("sm4_decrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt") - || fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2") - || fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2")) { + || fnName.getFunction().equalsIgnoreCase("sm4_encrypt")) { if (StringUtils.isAllBlank(blockEncryptionMode)) { blockEncryptionMode = "SM4_128_ECB"; } @@ -1236,36 +1195,12 @@ public class FunctionCallExpr extends Expr { throw new AnalysisException( "session variable block_encryption_mode is invalid with sm4"); } - if (children.size() == 2) { - if (fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2")) { - throw new AnalysisException( - "Incorrect parameter count in the call to native function 'sm4_decrypt'"); - } else if (fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2")) { - throw new AnalysisException( - "Incorrect parameter count in the call to native function 'sm4_encrypt'"); - } else { - // if there are only 2 params, we need add an empty string as the third param - // and set encryption mode to SM4_128_ECB - // this keeps the behavior consistent with old doris ver. - children.add(new StringLiteral("")); - blockEncryptionMode = "SM4_128_ECB"; - } - } } + } else { + throw new AnalysisException("cannot get session variable `block_encryption_mode`, " + + "please explicitly specify by using 4-args function"); } - if (!blockEncryptionMode.equals(children.get(children.size() - 1).toString())) { - children.add(new StringLiteral(blockEncryptionMode)); - } - - if (fnName.getFunction().equalsIgnoreCase("aes_decrypt_v2")) { - fnName = FunctionName.createBuiltinName("aes_decrypt"); - } else if (fnName.getFunction().equalsIgnoreCase("aes_encrypt_v2")) { - fnName = FunctionName.createBuiltinName("aes_encrypt"); - } else if (fnName.getFunction().equalsIgnoreCase("sm4_decrypt_v2")) { - fnName = FunctionName.createBuiltinName("sm4_decrypt"); - } else if (fnName.getFunction().equalsIgnoreCase("sm4_encrypt_v2")) { - fnName = FunctionName.createBuiltinName("sm4_encrypt"); - } + children.add(new StringLiteral(blockEncryptionMode)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java index 383a8bbc4fe..bcb0864b64f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java @@ -22,9 +22,7 @@ import org.apache.doris.nereids.trees.expressions.Regexp; import org.apache.doris.nereids.trees.expressions.functions.scalar.Abs; import org.apache.doris.nereids.trees.expressions.functions.scalar.Acos; import org.apache.doris.nereids.trees.expressions.functions.scalar.AesDecrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.AesDecryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.AesEncrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.AesEncryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.AppendTrailingCharIfAbsent; import org.apache.doris.nereids.trees.expressions.functions.scalar.Array; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayApply; @@ -370,9 +368,7 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Sleep; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm3; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm3sum; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Decrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4DecryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Encrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4EncryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.Space; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByChar; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByRegexp; @@ -479,9 +475,7 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(Abs.class, "abs"), scalar(Acos.class, "acos"), scalar(AesDecrypt.class, "aes_decrypt"), - scalar(AesDecryptV2.class, "aes_decrypt_v2"), scalar(AesEncrypt.class, "aes_encrypt"), - scalar(AesEncryptV2.class, "aes_encrypt_v2"), scalar(AppendTrailingCharIfAbsent.class, "append_trailing_char_if_absent"), scalar(Array.class, "array"), scalar(ArrayApply.class, "array_apply"), @@ -849,9 +843,7 @@ public class BuiltinScalarFunctions implements FunctionHelper { scalar(Sm3.class, "sm3"), scalar(Sm3sum.class, "sm3sum"), scalar(Sm4Decrypt.class, "sm4_decrypt"), - scalar(Sm4DecryptV2.class, "sm4_decrypt_v2"), scalar(Sm4Encrypt.class, "sm4_encrypt"), - scalar(Sm4EncryptV2.class, "sm4_encrypt_v2"), scalar(Space.class, "space"), scalar(SplitByChar.class, "split_by_char"), scalar(SplitByRegexp.class, "split_by_regexp"), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecrypt.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecrypt.java index 5e7d760b081..7608cf4e40e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecrypt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecrypt.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar; import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -58,16 +57,7 @@ public class AesDecrypt extends AesCryptoFunction { * AesDecrypt */ public AesDecrypt(Expression arg0, Expression arg1) { - // if there are only 2 params, we need set encryption mode to AES_128_ECB - // this keeps the behavior consistent with old doris ver. - super("aes_decrypt", arg0, arg1, new StringLiteral("AES_128_ECB")); - - // check if encryptionMode from session variables is valid - StringLiteral encryptionMode = CryptoFunction.getDefaultBlockEncryptionMode("AES_128_ECB"); - if (!AES_MODES.contains(encryptionMode.getValue())) { - throw new AnalysisException( - "session variable block_encryption_mode is invalid with aes"); - } + super("aes_decrypt", arg0, arg1, new StringLiteral(""), getDefaultBlockEncryptionMode()); } public AesDecrypt(Expression arg0, Expression arg1, Expression arg2) { @@ -89,7 +79,7 @@ public class AesDecrypt extends AesCryptoFunction { } else if (children().size() == 3) { return new AesDecrypt(children.get(0), children.get(1), children.get(2)); } else { - return new AesDecrypt(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); + return new AesDecrypt(children.get(0), children.get(1), children.get(2), children.get(3)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecryptV2.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecryptV2.java deleted file mode 100644 index 3a5a8121cff..00000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesDecryptV2.java +++ /dev/null @@ -1,74 +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.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.nereids.exceptions.AnalysisException; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; - -import com.google.common.base.Preconditions; - -import java.util.List; - -/** - * ScalarFunction 'aes_decrypt'. This class is generated by GenerateFunction. - */ -public class AesDecryptV2 extends AesDecrypt { - - /** - * AesDecryptV2 - */ - public AesDecryptV2(Expression arg0, Expression arg1) { - super(arg0, arg1, getDefaultBlockEncryptionMode()); - String blockEncryptionMode = String.valueOf(getDefaultBlockEncryptionMode()); - if (!blockEncryptionMode.toUpperCase().equals("'AES_128_ECB'") - && !blockEncryptionMode.toUpperCase().equals("'AES_192_ECB'") - && !blockEncryptionMode.toUpperCase().equals("'AES_256_ECB'")) { - throw new AnalysisException("Incorrect parameter count in the call to native function 'aes_decrypt'"); - } - } - - public AesDecryptV2(Expression arg0, Expression arg1, Expression arg2) { - super(arg0, arg1, arg2); - } - - public AesDecryptV2(Expression arg0, Expression arg1, Expression arg2, Expression arg3) { - super(arg0, arg1, arg2, arg3); - } - - /** - * withChildren. - */ - @Override - public AesDecryptV2 withChildren(List<Expression> children) { - Preconditions.checkArgument(children.size() >= 2 && children.size() <= 4); - if (children.size() == 2) { - return new AesDecryptV2(children.get(0), children.get(1)); - } else if (children().size() == 3) { - return new AesDecryptV2(children.get(0), children.get(1), children.get(2)); - } else { - return new AesDecryptV2(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); - } - } - - @Override - public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) { - return visitor.visitAesDecryptV2(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncrypt.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncrypt.java index ef99bdbe21d..455d6b0dbd5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncrypt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncrypt.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar; import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -58,16 +57,7 @@ public class AesEncrypt extends AesCryptoFunction { * Some javadoc for checkstyle... */ public AesEncrypt(Expression arg0, Expression arg1) { - // if there are only 2 params, we need set encryption mode to AES_128_ECB - // this keeps the behavior consistent with old doris ver. - super("aes_encrypt", arg0, arg1, new StringLiteral("AES_128_ECB")); - - // check if encryptionMode from session variables is valid - StringLiteral encryptionMode = CryptoFunction.getDefaultBlockEncryptionMode("AES_128_ECB"); - if (!AES_MODES.contains(encryptionMode.getValue())) { - throw new AnalysisException( - "session variable block_encryption_mode is invalid with aes"); - } + super("aes_encrypt", arg0, arg1, new StringLiteral(""), getDefaultBlockEncryptionMode()); } public AesEncrypt(Expression arg0, Expression arg1, Expression arg2) { @@ -89,7 +79,7 @@ public class AesEncrypt extends AesCryptoFunction { } else if (children().size() == 3) { return new AesEncrypt(children.get(0), children.get(1), children.get(2)); } else { - return new AesEncrypt(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); + return new AesEncrypt(children.get(0), children.get(1), children.get(2), children.get(3)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncryptV2.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncryptV2.java deleted file mode 100644 index 08e1d1e915e..00000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesEncryptV2.java +++ /dev/null @@ -1,74 +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.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.nereids.exceptions.AnalysisException; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; - -import com.google.common.base.Preconditions; - -import java.util.List; - -/** - * ScalarFunction 'aes_encrypt'. This class is generated by GenerateFunction. - */ -public class AesEncryptV2 extends AesEncrypt { - - /** - * AesEncryptV2 - */ - public AesEncryptV2(Expression arg0, Expression arg1) { - super(arg0, arg1, getDefaultBlockEncryptionMode()); - String blockEncryptionMode = String.valueOf(getDefaultBlockEncryptionMode()); - if (!blockEncryptionMode.toUpperCase().equals("'AES_128_ECB'") - && !blockEncryptionMode.toUpperCase().equals("'AES_192_ECB'") - && !blockEncryptionMode.toUpperCase().equals("'AES_256_ECB'")) { - throw new AnalysisException("Incorrect parameter count in the call to native function 'aes_encrypt'"); - } - } - - public AesEncryptV2(Expression arg0, Expression arg1, Expression arg2) { - super(arg0, arg1, arg2); - } - - public AesEncryptV2(Expression arg0, Expression arg1, Expression arg2, Expression arg3) { - super(arg0, arg1, arg2, arg3); - } - - /** - * withChildren. - */ - @Override - public AesEncryptV2 withChildren(List<Expression> children) { - Preconditions.checkArgument(children.size() >= 2 && children.size() <= 4); - if (children.size() == 2) { - return new AesEncryptV2(children.get(0), children.get(1)); - } else if (children().size() == 3) { - return new AesEncryptV2(children.get(0), children.get(1), children.get(2)); - } else { - return new AesEncryptV2(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); - } - } - - @Override - public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) { - return visitor.visitAesEncryptV2(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Decrypt.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Decrypt.java index 6e0f2bb48de..c87c2a42c16 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Decrypt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Decrypt.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar; import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -63,17 +62,7 @@ public class Sm4Decrypt extends Sm4CryptoFunction { * constructor with 2 arguments. */ public Sm4Decrypt(Expression arg0, Expression arg1) { - // if there are only 2 params, we need add an empty string as the third param - // and set encryption mode to SM4_128_ECB - // this keeps the behavior consistent with old doris ver. - super("sm4_decrypt", arg0, arg1, new StringLiteral(""), new StringLiteral("SM4_128_ECB")); - - // check if encryptionMode from session variables is valid - StringLiteral encryptionMode = CryptoFunction.getDefaultBlockEncryptionMode("SM4_128_ECB"); - if (!SM4_MODES.contains(encryptionMode.getValue())) { - throw new AnalysisException( - "session variable block_encryption_mode is invalid with sm4"); - } + super("sm4_decrypt", arg0, arg1, new StringLiteral(""), getDefaultBlockEncryptionMode()); } /** @@ -98,7 +87,7 @@ public class Sm4Decrypt extends Sm4CryptoFunction { } else if (children().size() == 3) { return new Sm4Decrypt(children.get(0), children.get(1), children.get(2)); } else { - return new Sm4Decrypt(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); + return new Sm4Decrypt(children.get(0), children.get(1), children.get(2), children.get(3)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4DecryptV2.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4DecryptV2.java deleted file mode 100644 index 4c743a82945..00000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4DecryptV2.java +++ /dev/null @@ -1,69 +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.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.nereids.exceptions.AnalysisException; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; - -import com.google.common.base.Preconditions; - -import java.util.List; - -/** - * ScalarFunction 'sm4_decrypt'. This class is generated by GenerateFunction. - */ -public class Sm4DecryptV2 extends Sm4Decrypt { - - /** - * Sm4DecryptV2 - */ - public Sm4DecryptV2(Expression arg0, Expression arg1) { - super(arg0, arg1); - throw new AnalysisException("Incorrect parameter count in the call to native function 'sm4_decrypt'"); - } - - public Sm4DecryptV2(Expression arg0, Expression arg1, Expression arg2) { - super(arg0, arg1, arg2); - } - - public Sm4DecryptV2(Expression arg0, Expression arg1, Expression arg2, Expression arg3) { - super(arg0, arg1, arg2, arg3); - } - - /** - * withChildren. - */ - @Override - public Sm4DecryptV2 withChildren(List<Expression> children) { - Preconditions.checkArgument(children.size() >= 2 && children.size() <= 4); - if (children.size() == 2) { - return new Sm4DecryptV2(children.get(0), children.get(1)); - } else if (children().size() == 3) { - return new Sm4DecryptV2(children.get(0), children.get(1), children.get(2)); - } else { - return new Sm4DecryptV2(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); - } - } - - @Override - public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) { - return visitor.visitSm4DecryptV2(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Encrypt.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Encrypt.java index 00525558d41..dbf5c61db07 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Encrypt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4Encrypt.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar; import org.apache.doris.catalog.FunctionSignature; -import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -58,17 +57,7 @@ public class Sm4Encrypt extends Sm4CryptoFunction { * constructor with 2 arguments. */ public Sm4Encrypt(Expression arg0, Expression arg1) { - // if there are only 2 params, we need add an empty string as the third param - // and set encryption mode to SM4_128_ECB - // this keeps the behavior consistent with old doris ver. - super("sm4_encrypt", arg0, arg1, new StringLiteral(""), new StringLiteral("SM4_128_ECB")); - - // check if encryptionMode from session variables is valid - StringLiteral encryptionMode = CryptoFunction.getDefaultBlockEncryptionMode("SM4_128_ECB"); - if (!SM4_MODES.contains(encryptionMode.getValue())) { - throw new AnalysisException( - "session variable block_encryption_mode is invalid with sm4"); - } + super("sm4_encrypt", arg0, arg1, new StringLiteral(""), getDefaultBlockEncryptionMode()); } /** @@ -93,7 +82,7 @@ public class Sm4Encrypt extends Sm4CryptoFunction { } else if (children().size() == 3) { return new Sm4Encrypt(children.get(0), children.get(1), children.get(2)); } else { - return new Sm4Encrypt(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); + return new Sm4Encrypt(children.get(0), children.get(1), children.get(2), children.get(3)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4EncryptV2.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4EncryptV2.java deleted file mode 100644 index 7c895fc3090..00000000000 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4EncryptV2.java +++ /dev/null @@ -1,72 +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.doris.nereids.trees.expressions.functions.scalar; - -import org.apache.doris.nereids.exceptions.AnalysisException; -import org.apache.doris.nereids.trees.expressions.Expression; -import org.apache.doris.nereids.trees.expressions.literal.StringLiteral; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; - -import com.google.common.base.Preconditions; - -import java.util.List; - -/** - * ScalarFunction 'sm4_encrypt'. This class is generated by GenerateFunction. - */ -public class Sm4EncryptV2 extends Sm4Encrypt { - - /** - * constructor with 2 arguments. - */ - public Sm4EncryptV2(Expression arg0, Expression arg1) { - super(arg0, arg1); - throw new AnalysisException("Incorrect parameter count in the call to native function 'sm4_encrypt'"); - } - - /** - * constructor with 3 arguments. - */ - public Sm4EncryptV2(Expression arg0, Expression arg1, Expression arg2) { - super(arg0, arg1, arg2); - } - - public Sm4EncryptV2(Expression arg0, Expression arg1, Expression arg2, Expression arg3) { - super(arg0, arg1, arg2, arg3); - } - - /** - * withChildren. - */ - @Override - public Sm4EncryptV2 withChildren(List<Expression> children) { - Preconditions.checkArgument(children.size() >= 2 && children.size() <= 4); - if (children.size() == 2) { - return new Sm4EncryptV2(children.get(0), children.get(1)); - } else if (children().size() == 3) { - return new Sm4EncryptV2(children.get(0), children.get(1), children.get(2)); - } else { - return new Sm4EncryptV2(children.get(0), children.get(1), children.get(2), (StringLiteral) children.get(3)); - } - } - - @Override - public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) { - return visitor.visitSm4EncryptV2(this, context); - } -} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java index 5d47094f247..20772ae716b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java @@ -24,9 +24,7 @@ import org.apache.doris.nereids.trees.expressions.functions.combinator.StateComb import org.apache.doris.nereids.trees.expressions.functions.scalar.Abs; import org.apache.doris.nereids.trees.expressions.functions.scalar.Acos; import org.apache.doris.nereids.trees.expressions.functions.scalar.AesDecrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.AesDecryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.AesEncrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.AesEncryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.AppendTrailingCharIfAbsent; import org.apache.doris.nereids.trees.expressions.functions.scalar.Array; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayApply; @@ -368,9 +366,7 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.Sleep; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm3; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm3sum; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Decrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4DecryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4Encrypt; -import org.apache.doris.nereids.trees.expressions.functions.scalar.Sm4EncryptV2; import org.apache.doris.nereids.trees.expressions.functions.scalar.Space; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByChar; import org.apache.doris.nereids.trees.expressions.functions.scalar.SplitByRegexp; @@ -480,18 +476,10 @@ public interface ScalarFunctionVisitor<R, C> { return visitScalarFunction(aesDecrypt, context); } - default R visitAesDecryptV2(AesDecryptV2 aesDecryptV2, C context) { - return visitScalarFunction(aesDecryptV2, context); - } - default R visitAesEncrypt(AesEncrypt aesEncrypt, C context) { return visitScalarFunction(aesEncrypt, context); } - default R visitAesEncryptV2(AesEncryptV2 aesEncryptV2, C context) { - return visitScalarFunction(aesEncryptV2, context); - } - default R visitAppendTrailingCharIfAbsent(AppendTrailingCharIfAbsent function, C context) { return visitScalarFunction(function, context); } @@ -1836,18 +1824,10 @@ public interface ScalarFunctionVisitor<R, C> { return visitScalarFunction(sm4Decrypt, context); } - default R visitSm4DecryptV2(Sm4DecryptV2 sm4DecryptV2, C context) { - return visitScalarFunction(sm4DecryptV2, context); - } - default R visitSm4Encrypt(Sm4Encrypt sm4Encrypt, C context) { return visitScalarFunction(sm4Encrypt, context); } - default R visitSm4EncryptV2(Sm4EncryptV2 sm4EncryptV2, C context) { - return visitScalarFunction(sm4EncryptV2, context); - } - default R visitSpace(Space space, C context) { return visitScalarFunction(space, context); } diff --git a/regression-test/data/nereids_p0/sql_functions/encryption_digest/test_encryption_function.out b/regression-test/data/nereids_p0/sql_functions/encryption_digest/test_encryption_function.out index c1f7d7b1c9d..7a91c1dbf72 100644 --- a/regression-test/data/nereids_p0/sql_functions/encryption_digest/test_encryption_function.out +++ b/regression-test/data/nereids_p0/sql_functions/encryption_digest/test_encryption_function.out @@ -11,33 +11,6 @@ text -- !sql -- \N --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -BO2vxHeUcw5BQQalSBbo1w== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -text - -- !sql -- BO2vxHeUcw5BQQalSBbo1w== @@ -54,25 +27,7 @@ text text -- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -tsmK1HzbpnEdR2//WhO+MA== - --- !sql -- -ciacXDLHMNG7CD9Kws8png== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -text - --- !sql -- -text +3dym0E7/+1zbrLIaBVNHSw== -- !sql -- tsmK1HzbpnEdR2//WhO+MA== @@ -83,45 +38,12 @@ ciacXDLHMNG7CD9Kws8png== -- !sql -- \N --- !sql -- -text - --- !sql -- -text - --- !sql -- -aDjwRflBrDjhBZIOFNw3Tg== - --- !sql -- -1Y4NGIukSbv9OrkZnRD1bQ== - --- !sql -- -G5POcFAJwiZHeTtN6DjInQ== - --- !sql -- -text - --- !sql -- -text - -- !sql -- \N -- !sql -- text --- !sql -- -1Y4NGIukSbv9OrkZnRD1bQ== - --- !sql -- -G5POcFAJwiZHeTtN6DjInQ== - --- !sql -- -text - --- !sql -- -\N - -- !sql -- text diff --git a/regression-test/data/query_p0/sql_functions/encryption_digest/test_encryption_function.out b/regression-test/data/query_p0/sql_functions/encryption_digest/test_encryption_function.out index 9e920596f89..721412dc036 100644 --- a/regression-test/data/query_p0/sql_functions/encryption_digest/test_encryption_function.out +++ b/regression-test/data/query_p0/sql_functions/encryption_digest/test_encryption_function.out @@ -11,33 +11,6 @@ text -- !sql -- \N --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -BO2vxHeUcw5BQQalSBbo1w== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -text - -- !sql -- BO2vxHeUcw5BQQalSBbo1w== @@ -54,25 +27,7 @@ text text -- !sql -- -wr2JEDVXzL9+2XtRhgIloA== - --- !sql -- -tsmK1HzbpnEdR2//WhO+MA== - --- !sql -- -ciacXDLHMNG7CD9Kws8png== - --- !sql -- -text - --- !sql -- -\N - --- !sql -- -text - --- !sql -- -text +3dym0E7/+1zbrLIaBVNHSw== -- !sql -- tsmK1HzbpnEdR2//WhO+MA== @@ -93,7 +48,7 @@ text text -- !sql -- -aDjwRflBrDjhBZIOFNw3Tg== +FSYstvOmH2cXy7B/072Mug== -- !sql -- 1Y4NGIukSbv9OrkZnRD1bQ== @@ -101,27 +56,12 @@ aDjwRflBrDjhBZIOFNw3Tg== -- !sql -- G5POcFAJwiZHeTtN6DjInQ== --- !sql -- -text - --- !sql -- -text - -- !sql -- \N -- !sql -- text --- !sql -- -1Y4NGIukSbv9OrkZnRD1bQ== - --- !sql -- -G5POcFAJwiZHeTtN6DjInQ== - --- !sql -- -text - -- !sql -- \N diff --git a/regression-test/suites/nereids_function_p0/scalar_function/S.groovy b/regression-test/suites/nereids_function_p0/scalar_function/S.groovy index ea6cc5c817e..98a8685a888 100644 --- a/regression-test/suites/nereids_function_p0/scalar_function/S.groovy +++ b/regression-test/suites/nereids_function_p0/scalar_function/S.groovy @@ -97,26 +97,11 @@ suite("nereids_scalar_fn_S") { qt_sql_sm3sum_Varchar_notnull "select sm3sum(kvchrs1) from fn_test_not_nullable order by kvchrs1" qt_sql_sm3sum_String "select sm3sum(kstr) from fn_test order by kstr" qt_sql_sm3sum_String_notnull "select sm3sum(kstr) from fn_test_not_nullable order by kstr" + sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1" - test { - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1" - test { - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } sql "select sm4_decrypt(kstr, kstr) from fn_test order by kstr, kstr" - test { - sql "select sm4_decrypt_v2(kstr, kstr) from fn_test order by kstr, kstr" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } sql "select sm4_decrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr" - test { - sql "select sm4_decrypt_v2(kstr, kstr) from fn_test_not_nullable order by kstr, kstr" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_decrypt(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr" @@ -125,34 +110,11 @@ suite("nereids_scalar_fn_S") { sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_decrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test order by kstr, kstr, kstr" sql "select sm4_decrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test_not_nullable order by kstr, kstr, kstr" - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_decrypt_v2(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr" - sql "select sm4_decrypt_v2(kstr, kstr, kstr) from fn_test_not_nullable order by kstr, kstr, kstr" - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_decrypt_v2(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_decrypt_v2(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test order by kstr, kstr, kstr" - sql "select sm4_decrypt_v2(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test_not_nullable order by kstr, kstr, kstr" + sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1" - test { - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1" - test { - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } sql "select sm4_encrypt(kstr, kstr) from fn_test order by kstr, kstr" - test { - sql "select sm4_encrypt_v2(kstr, kstr) from fn_test order by kstr, kstr" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } sql "select sm4_encrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr" - test { - sql "select sm4_encrypt_v2(kstr, kstr) from fn_test_not_nullable order by kstr, kstr" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } sql "select sm4_encrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_encrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_encrypt(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr" @@ -161,14 +123,7 @@ suite("nereids_scalar_fn_S") { sql "select sm4_encrypt(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" sql "select sm4_encrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test order by kstr, kstr, kstr" sql "select sm4_encrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test_not_nullable order by kstr, kstr, kstr" - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_encrypt_v2(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr" - sql "select sm4_encrypt_v2(kstr, kstr, kstr) from fn_test_not_nullable order by kstr, kstr, kstr" - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_encrypt_v2(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1" - sql "select sm4_encrypt_v2(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test order by kstr, kstr, kstr" - sql "select sm4_encrypt_v2(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test_not_nullable order by kstr, kstr, kstr" + sql "select space(10) from fn_test order by kint" sql "select space(10) from fn_test_not_nullable order by kint" qt_sql_split_part_Varchar_Varchar_Integer "select split_part(kvchrs1, ' ', 1) from fn_test order by kvchrs1" diff --git a/regression-test/suites/nereids_p0/sql_functions/encryption_digest/test_encryption_function.groovy b/regression-test/suites/nereids_p0/sql_functions/encryption_digest/test_encryption_function.groovy index 84b67091b1e..0a2d4261001 100644 --- a/regression-test/suites/nereids_p0/sql_functions/encryption_digest/test_encryption_function.groovy +++ b/regression-test/suites/nereids_p0/sql_functions/encryption_digest/test_encryption_function.groovy @@ -16,10 +16,9 @@ // under the License. suite("test_encryption_function") { - def tableName = "dwd_candidates" - sql "DROP TABLE IF EXISTS ${tableName}" + sql "DROP TABLE IF EXISTS dwd_candidates" sql """ - CREATE TABLE IF NOT EXISTS ${tableName} ( + CREATE TABLE IF NOT EXISTS dwd_candidates ( c_int INT, `name` varchar(65530) NULL COMMENT "" ) @@ -29,26 +28,12 @@ suite("test_encryption_function") { ) """ - sql "SET enable_nereids_planner=true" - - sql "set batch_size = 4096;" - sql "set block_encryption_mode=\"AES_128_ECB\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // wr2JEDVXzL9+2XtRhgIloA== qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" // text qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - sql "set block_encryption_mode=\"AES_128_ECB\";" - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // wr2JEDVXzL9+2XtRhgIloA== - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - test { - sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "session variable block_encryption_mode is invalid with sm4" - } - sql "set block_encryption_mode=\"AES_256_ECB\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 'BO2vxHeUcw5BQQalSBbo1w==' @@ -56,13 +41,6 @@ suite("test_encryption_function") { qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');" // NULL qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - sql "set block_encryption_mode=\"AES_256_ECB\";" - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'BO2vxHeUcw5BQQalSBbo1w==' - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 'BO2vxHeUcw5BQQalSBbo1w==' - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" // NULL - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - sql "set block_encryption_mode=\"AES_256_CBC\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // tsmK1HzbpnEdR2//WhO+MA== @@ -76,53 +54,6 @@ suite("test_encryption_function") { "GROUP BY x0;" } - sql "set block_encryption_mode=\"AES_256_CBC\";" - test { - sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "Incorrect parameter count in the call to native function 'aes_encrypt'" - } - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // tsmK1HzbpnEdR2//WhO+MA== - qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789ff'));" // ciacXDLHMNG7CD9Kws8png== - test { - sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" - exception "Incorrect parameter count in the call to native function 'aes_decrypt'" - } - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('tsmK1HzbpnEdR2//WhO+MA=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('ciacXDLHMNG7CD9Kws8png=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789ff');" // text - explain { - sql "SELECT AES_DECRYPT_v2(UNHEX(r_2_3.`name`), 'namePnhe3E0MWyfZivUnVzDy12caymnrKp', '0123456789') AS x0 FROM dwd_candidates AS r_2_3\n" + - "GROUP BY x0;" - } - - sql "set block_encryption_mode=\"SM4_128_CBC\";" - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // aDjwRflBrDjhBZIOFNw3Tg== - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 1Y4NGIukSbv9OrkZnRD1bQ== - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789ff'));" // G5POcFAJwiZHeTtN6DjInQ== - qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');" // text - qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('1Y4NGIukSbv9OrkZnRD1bQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789ff');" // text - - sql "set block_encryption_mode=\"SM4_128_CBC\";" - test { - sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 1Y4NGIukSbv9OrkZnRD1bQ== - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789ff'));" // G5POcFAJwiZHeTtN6DjInQ== - test { - sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('1Y4NGIukSbv9OrkZnRD1bQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789ff');" // text - test { - sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "session variable block_encryption_mode is invalid with aes" - } - qt_sql "SELECT SM3(\"abc\");" qt_sql "select sm3(\"abcd\");" qt_sql "select sm3sum(\"ab\",\"cd\");" diff --git a/regression-test/suites/query_p0/sql_functions/encryption_digest/test_encryption_function.groovy b/regression-test/suites/query_p0/sql_functions/encryption_digest/test_encryption_function.groovy index 4b0fd3d497d..f4a67b052c3 100644 --- a/regression-test/suites/query_p0/sql_functions/encryption_digest/test_encryption_function.groovy +++ b/regression-test/suites/query_p0/sql_functions/encryption_digest/test_encryption_function.groovy @@ -16,10 +16,9 @@ // under the License. suite("test_encryption_function") { - def tableName = "dwd_candidates" - sql "DROP TABLE IF EXISTS ${tableName}" + sql "DROP TABLE IF EXISTS dwd_candidates" sql """ - CREATE TABLE IF NOT EXISTS ${tableName} ( + CREATE TABLE IF NOT EXISTS dwd_candidates ( c_int INT, `name` varchar(65530) NULL COMMENT "" ) @@ -28,7 +27,6 @@ suite("test_encryption_function") { "replication_num" = "1" ) """ - sql "set batch_size = 4096;" sql "set block_encryption_mode=\"AES_128_ECB\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' @@ -40,16 +38,6 @@ suite("test_encryption_function") { exception "session variable block_encryption_mode is invalid with sm4" } - sql "set block_encryption_mode=\"AES_128_ECB\";" - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // wr2JEDVXzL9+2XtRhgIloA== - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - test { - sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "session variable block_encryption_mode is invalid with sm4" - } - sql "set block_encryption_mode=\"AES_256_ECB\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 'BO2vxHeUcw5BQQalSBbo1w==' @@ -57,13 +45,6 @@ suite("test_encryption_function") { qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');" // NULL qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - sql "set block_encryption_mode=\"AES_256_ECB\";" - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'BO2vxHeUcw5BQQalSBbo1w==' - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 'BO2vxHeUcw5BQQalSBbo1w==' - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" // NULL - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - sql "set block_encryption_mode=\"AES_256_CBC\";" qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // 'wr2JEDVXzL9+2XtRhgIloA==' qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // tsmK1HzbpnEdR2//WhO+MA== @@ -77,26 +58,6 @@ suite("test_encryption_function") { "GROUP BY x0;" } - sql "set block_encryption_mode=\"AES_256_CBC\";" - test { - sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "Incorrect parameter count in the call to native function 'aes_encrypt'" - } - qt_sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // tsmK1HzbpnEdR2//WhO+MA== - qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789ff'));" // ciacXDLHMNG7CD9Kws8png== - test { - sql "SELECT AES_DECRYPT_v2(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');" - exception "Incorrect parameter count in the call to native function 'aes_decrypt'" - } - qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('tsmK1HzbpnEdR2//WhO+MA=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - qt_sql "SELECT AES_DECRYPT_v2(FROM_BASE64('ciacXDLHMNG7CD9Kws8png=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789ff');" // text - explain { - sql "SELECT AES_DECRYPT_v2(UNHEX(r_2_3.`name`), 'namePnhe3E0MWyfZivUnVzDy12caymnrKp', '0123456789') AS x0 FROM dwd_candidates AS r_2_3\n" + - "GROUP BY x0;" - } - sql "set block_encryption_mode=\"SM4_128_CBC\";" qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));" // aDjwRflBrDjhBZIOFNw3Tg== qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 1Y4NGIukSbv9OrkZnRD1bQ== @@ -110,25 +71,6 @@ suite("test_encryption_function") { exception "session variable block_encryption_mode is invalid with aes" } - sql "set block_encryption_mode=\"SM4_128_CBC\";" - test { - sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "Incorrect parameter count in the call to native function 'sm4_encrypt'" - } - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));" // 1Y4NGIukSbv9OrkZnRD1bQ== - qt_sql "SELECT TO_BASE64(SM4_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789ff'));" // G5POcFAJwiZHeTtN6DjInQ== - test { - sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');" - exception "Incorrect parameter count in the call to native function 'sm4_decrypt'" - } - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('1Y4NGIukSbv9OrkZnRD1bQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // text - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');" // NULL - qt_sql "SELECT SM4_DECRYPT_v2(FROM_BASE64('G5POcFAJwiZHeTtN6DjInQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789ff');" // text - test { - sql "SELECT TO_BASE64(AES_ENCRYPT_v2('text','F3229A0B371ED2D9441B830D21A390C3'));" - exception "session variable block_encryption_mode is invalid with aes" - } - qt_sql "SELECT SM3(\"abc\");" qt_sql "select sm3(\"abcd\");" qt_sql "select sm3sum(\"ab\",\"cd\");" --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org