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