github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/function/udf.sql (about) 1 -- @suite 2 -- @setup 3 create database udf_first; 4 create database udf_second; 5 6 -- @case 7 -- @desc:test for create function (no arg) 8 -- @label:bvt 9 use udf_first; 10 create function helloworld () returns int language sql as 'select id from test_table limit 1'; 11 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'helloworld'; 12 13 -- @case 14 -- @desc:test for create duplicated function 15 -- @label:bvt 16 use udf_first; 17 create function helloworld () returns int language sql as 'select id from test_table limit 1'; 18 19 -- @case 20 -- @desc:test for create function (multiple args) 21 -- @label:bvt 22 use udf_first; 23 create function twosum (x int, y int) returns int language sql as 'select $1 + $2' ; 24 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 25 26 -- @case 27 -- @desc:test for create function (duplicate function name with different argument types) 28 -- @label:bvt 29 create function twosum (x float, y float) returns float language sql as 'select $1 + $2' ; 30 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 31 32 -- @case 33 -- @desc:test for create function (duplicate function name with different argument numbers) 34 -- @label:bvt 35 create function twosum (x int) returns int language sql as 'select $1 + 10' ; 36 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 37 38 -- @case 39 -- @desc:test for create function in another database 40 -- @label:bvt 41 use udf_first; 42 create function udf_second.helloworld () returns int language sql as 'select id from test_table limit 1'; 43 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'helloworld' and db = 'udf_second'; 44 45 -- @case 46 -- @desc:test for drop function (no arg) 47 -- @label:bvt 48 drop function helloworld (); 49 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'helloworld' and db = 'udf_first'; 50 51 -- @case 52 -- @desc:test for drop function (multiple args) 53 -- @label:bvt 54 drop function twosum (int, int); 55 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 56 57 -- @case 58 -- @desc:test for drop function (duplicate function name with different argument numbers) 59 -- @label:bvt 60 drop function twosum (int); 61 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 62 63 -- @case 64 -- @desc:test for drop function (duplicate function name with different argument types) 65 -- @label:bvt 66 drop function twosum (float, float); 67 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'twosum'; 68 69 70 -- @case 71 -- @desc:test for drop function from another database 72 -- @label:bvt 73 use udf_first; 74 drop function udf_second.helloworld (); 75 select args, rettype, language, db from mo_catalog.mo_user_defined_function where name = 'helloworld' and db = 'udf_second'; 76 77 -- @case 78 -- @desc:test for drop non-existing function 79 -- @label:bvt 80 use udf_second; 81 drop function helloworld(); 82 83 84