From 461b352d3ee741ff8781d474c3907dabc26fe670 Mon Sep 17 00:00:00 2001 From: qiye Date: Tue, 25 Jan 2022 22:28:05 +0800 Subject: [PATCH] [fix](function) Change digital_masking function arg type to BIGINT (#7888) Change digital_masking function arg type to BIGINT to fix the wrong result. --- docs/en/sql-reference/sql-functions/digital-masking.md | 2 +- .../sql-statements/Data Definition/create-function.md | 2 +- .../sql-statements/Data Definition/show-functions.md | 2 +- docs/zh-CN/sql-reference/sql-functions/digital-masking.md | 2 +- .../sql-statements/Data Definition/create-function.md | 2 +- .../sql-statements/Data Definition/show-functions.md | 2 +- .../src/main/java/org/apache/doris/catalog/AliasFunction.java | 2 +- .../test/java/org/apache/doris/catalog/CreateFunctionTest.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/en/sql-reference/sql-functions/digital-masking.md b/docs/en/sql-reference/sql-functions/digital-masking.md index bd2b22bb38..f8ce74403f 100644 --- a/docs/en/sql-reference/sql-functions/digital-masking.md +++ b/docs/en/sql-reference/sql-functions/digital-masking.md @@ -36,7 +36,7 @@ digital_masking(digital_number) Alias function, the original function is `concat(left(id,3),'****',right(id,4))`. -Desensitizes the input `digital_number` and returns the result after masking desensitization. +Desensitizes the input `digital_number` and returns the result after masking desensitization. `digital_number` is `BIGINT` data type. ## example diff --git a/docs/en/sql-reference/sql-statements/Data Definition/create-function.md b/docs/en/sql-reference/sql-statements/Data Definition/create-function.md index fdd08ed2d1..ca581ddf58 100644 --- a/docs/en/sql-reference/sql-statements/Data Definition/create-function.md +++ b/docs/en/sql-reference/sql-statements/Data Definition/create-function.md @@ -131,7 +131,7 @@ If the `function_name` contains the database name, the custom function will be c ``` -- create a custom functional alias function - CREATE ALIAS FUNCTION id_masking(INT) WITH PARAMETER(id) + CREATE ALIAS FUNCTION id_masking(BIGINT) WITH PARAMETER(id) AS CONCAT(LEFT(id, 3), '****', RIGHT(id, 4)); -- create a custom cast alias function diff --git a/docs/en/sql-reference/sql-statements/Data Definition/show-functions.md b/docs/en/sql-reference/sql-statements/Data Definition/show-functions.md index b9420461b8..59b5bcb1fe 100644 --- a/docs/en/sql-reference/sql-statements/Data Definition/show-functions.md +++ b/docs/en/sql-reference/sql-statements/Data Definition/show-functions.md @@ -60,7 +60,7 @@ Intermediate Type: NULL Intermediate Type: NULL Properties: {"object_file":"http://host:port/libudasample.so","finalize_fn":"_ZN9doris_udf13CountFinalizeEPNS_15FunctionContextERKNS_9BigIntValE","init_fn":"_ZN9doris_udf9CountInitEPNS_15FunctionContextEPNS_9BigIntValE","merge_fn":"_ZN9doris_udf10CountMergeEPNS_15FunctionContextERKNS_9BigIntValEPS2_","md5":"37d185f80f95569e2676da3d5b5b9d2f","update_fn":"_ZN9doris_udf11CountUpdateEPNS_15FunctionContextERKNS_6IntValEPNS_9BigIntValE"} *************************** 3. row *************************** - Signature: id_masking(INT) + Signature: id_masking(BIGINT) Return Type: VARCHAR Function Type: Alias Intermediate Type: NULL diff --git a/docs/zh-CN/sql-reference/sql-functions/digital-masking.md b/docs/zh-CN/sql-reference/sql-functions/digital-masking.md index 32ea5a3caa..f049a30e9e 100644 --- a/docs/zh-CN/sql-reference/sql-functions/digital-masking.md +++ b/docs/zh-CN/sql-reference/sql-functions/digital-masking.md @@ -36,7 +36,7 @@ digital_masking(digital_number) 别名函数,原始函数为 `concat(left(id,3),'****',right(id,4))`。 -将输入的 `digital_number` 进行脱敏处理,返回遮盖脱敏后的结果。 +将输入的 `digital_number` 进行脱敏处理,返回遮盖脱敏后的结果。`digital_number` 为 `BIGINT` 数据类型。 ## example diff --git a/docs/zh-CN/sql-reference/sql-statements/Data Definition/create-function.md b/docs/zh-CN/sql-reference/sql-statements/Data Definition/create-function.md index 98d9ce0593..f6b2c7b990 100644 --- a/docs/zh-CN/sql-reference/sql-statements/Data Definition/create-function.md +++ b/docs/zh-CN/sql-reference/sql-statements/Data Definition/create-function.md @@ -132,7 +132,7 @@ CREATE [AGGREGATE] [ALIAS] FUNCTION function_name ``` -- 创建自定义功能别名函数 - CREATE ALIAS FUNCTION id_masking(INT) WITH PARAMETER(id) + CREATE ALIAS FUNCTION id_masking(BIGINT) WITH PARAMETER(id) AS CONCAT(LEFT(id, 3), '****', RIGHT(id, 4)); -- 创建自定义 CAST 别名函数 diff --git a/docs/zh-CN/sql-reference/sql-statements/Data Definition/show-functions.md b/docs/zh-CN/sql-reference/sql-statements/Data Definition/show-functions.md index 1220de2a81..3710109b4a 100644 --- a/docs/zh-CN/sql-reference/sql-statements/Data Definition/show-functions.md +++ b/docs/zh-CN/sql-reference/sql-statements/Data Definition/show-functions.md @@ -61,7 +61,7 @@ Intermediate Type: NULL Intermediate Type: NULL Properties: {"object_file":"http://host:port/libudasample.so","finalize_fn":"_ZN9doris_udf13CountFinalizeEPNS_15FunctionContextERKNS_9BigIntValE","init_fn":"_ZN9doris_udf9CountInitEPNS_15FunctionContextEPNS_9BigIntValE","merge_fn":"_ZN9doris_udf10CountMergeEPNS_15FunctionContextERKNS_9BigIntValEPS2_","md5":"37d185f80f95569e2676da3d5b5b9d2f","update_fn":"_ZN9doris_udf11CountUpdateEPNS_15FunctionContextERKNS_6IntValEPNS_9BigIntValE"} *************************** 3. row *************************** - Signature: id_masking(INT) + Signature: id_masking(BIGINT) Return Type: VARCHAR Function Type: Alias Intermediate Type: NULL diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/AliasFunction.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/AliasFunction.java index 2e91f33d0f..c212976621 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/AliasFunction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/AliasFunction.java @@ -88,7 +88,7 @@ public class AliasFunction extends Function { /** * Please ensure that the condition checks in {@link #analyze} are satisfied */ - functionSet.addBuiltin(createBuiltin(DIGITAL_MASKING, Lists.newArrayList(Type.INT), Type.VARCHAR, + functionSet.addBuiltin(createBuiltin(DIGITAL_MASKING, Lists.newArrayList(Type.BIGINT), Type.VARCHAR, false, Lists.newArrayList("id"), getExpr(oriStmt), true)); } catch (AnalysisException e) { LOG.error("Add builtin alias function error {}", e); diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java index 17ad6665bc..7da7f92b8e 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java @@ -120,7 +120,7 @@ public class CreateFunctionTest { Assert.assertTrue(constExprLists.get(0).get(0) instanceof FunctionCallExpr); // create alias function - createFuncStr = "create alias function db1.id_masking(int) with parameter(id) as concat(left(id,3),'****',right(id,4));"; + createFuncStr = "create alias function db1.id_masking(bigint) with parameter(id) as concat(left(id,3),'****',right(id,4));"; createFunctionStmt = (CreateFunctionStmt) UtFrameUtils.parseAndAnalyzeStmt(createFuncStr, ctx); Catalog.getCurrentCatalog().createFunction(createFunctionStmt);