From 565acdceb10364ae25ed48b0375c0fb0de5e7885 Mon Sep 17 00:00:00 2001 From: TCeason Date: Tue, 7 Jan 2025 09:39:21 +0800 Subject: [PATCH] chore: add udf script compat --- .github/actions/test_compat_fuse/action.yml | 2 ++ .../compat-logictest/udf/fuse_compat_read | 13 +++++++++++++ .../compat-logictest/udf/fuse_compat_write | 17 +++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 tests/compat_fuse/compat-logictest/udf/fuse_compat_read create mode 100644 tests/compat_fuse/compat-logictest/udf/fuse_compat_write diff --git a/.github/actions/test_compat_fuse/action.yml b/.github/actions/test_compat_fuse/action.yml index d93aa6da52a63..854371f0de04a 100644 --- a/.github/actions/test_compat_fuse/action.yml +++ b/.github/actions/test_compat_fuse/action.yml @@ -31,6 +31,8 @@ runs: bash ./tests/compat_fuse/test_compat_fuse.sh 1.2.318 1.2.527 rbac bash ./tests/compat_fuse/test_compat_fuse_forward.sh 1.2.307 1.2.527 rbac bash ./tests/compat_fuse/test_compat_fuse_forward.sh 1.2.318 1.2.527 rbac + bash ./tests/compat_fuse/test_compat_fuse.sh 1.2.680 1.2.680 udf + bash ./tests/compat_fuse/test_compat_fuse_forward.sh 1.2.680 1.2.680 udf - name: Upload failure if: failure() uses: ./.github/actions/artifact_failure diff --git a/tests/compat_fuse/compat-logictest/udf/fuse_compat_read b/tests/compat_fuse/compat-logictest/udf/fuse_compat_read new file mode 100644 index 0000000000000..4dfcefe11ca3e --- /dev/null +++ b/tests/compat_fuse/compat-logictest/udf/fuse_compat_read @@ -0,0 +1,13 @@ +query F +select number, gcd_js(number * 3, number * 6) from numbers(5) where number > 0 order by 1 +---- +1 3 +2 6 +3 9 +4 12 + + +query T +SELECT name FROM SYSTEM.USER_FUNCTIONS where name = 'gcd_js' ORDER BY name; +---- +gcd_js diff --git a/tests/compat_fuse/compat-logictest/udf/fuse_compat_write b/tests/compat_fuse/compat-logictest/udf/fuse_compat_write new file mode 100644 index 0000000000000..70506d4bd9169 --- /dev/null +++ b/tests/compat_fuse/compat-logictest/udf/fuse_compat_write @@ -0,0 +1,17 @@ +statement ok +DROP FUNCTION IF EXISTS add_signed; + +statement ok +DROP FUNCTION IF EXISTS gcd_js; + +statement ok +CREATE OR REPLACE FUNCTION gcd_js (INT, INT) RETURNS BIGINT LANGUAGE javascript HANDLER = 'gcd_js' AS $$ +export function gcd_js(a, b) { + while (b != 0) { + let t = b; + b = a % b; + a = t; + } + return a; +} +$$;