Changeset: b2a2b5fbf388 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b2a2b5fbf388 Modified Files: sql/test/emptydb/Tests/check.SQL.py sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 Branch: default Log Message:
Simplify (somewhat) query. diffs (229 lines): diff --git a/sql/test/emptydb/Tests/check.SQL.py b/sql/test/emptydb/Tests/check.SQL.py --- a/sql/test/emptydb/Tests/check.SQL.py +++ b/sql/test/emptydb/Tests/check.SQL.py @@ -84,37 +84,18 @@ MAXARGS = 16 # columns of the args table we're interested in args = ['name', 'type', 'type_digits', 'type_scale', 'inout'] -out += "with\n" -for i in range(0, MAXARGS + 1): - out += "arg%d (id" % i - for j in range(0, i + 1): - for k in ['id'] + args: - out += ", %s%d" % (k, j) - out += ") as (select " - if i == 0: - out += "f.id" - for k in ['id'] + args: - out += ", a%d.%s" % (i, k) - out += " from sys.functions f left outer join args a%d on a%d.func_id = f.id" % (i, i) - else: - out += "arg%d.*" % (i - 1) - for k in ['id'] + args: - out += ", a%d.%s" % (i, k) - out += " from arg%d left outer join args a%d on a%d.func_id = arg%d.id" % (i - 1, i, i, i - 1) - out += " and a%d.number = %d),\n" % (i, i) -out += "funcs as (select f.id, f.name, f.func, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, f.schema_id from sys.functions f left outer join (values ('function',1),('procedure',2),('aggregate',3),('filter function',4),('table function',5),('analytic function',6),('loader function',7)) as ft (type,id) on f.type = ft.id)\n" -out += r"select s.name, funcs.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(funcs.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, funcs.mod, funcs.language, funcs.type, funcs.side_effect, funcs.varres, funcs.vararg" +out += r"select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg" for i in range(0, MAXARGS): - for k in args: - if k == 'inout': - out += ", case arg%d.%s%d when 1 then 'in' when 0 then 'out' else null end as %s%d" % (MAXARGS, k, i, k, i) - else: - out += ", arg%d.%s%d" % (MAXARGS, k, i) -out += " from arg%d, sys.schemas s, funcs where s.id = funcs.schema_id and funcs.id = arg%d.id order by s.name, funcs.name, query" % (MAXARGS, MAXARGS) + for a in args[:-1]: + out += ", a%d.%s as %s%d" % (i, a, a, i) + out += ", case a%d.inout when 0 then 'out' when 1 then 'in' end as inout%d" % (i, i) +out += " from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('function', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id" for i in range(0, MAXARGS): - for k in args: - out += ", arg%d.%s%d" % (MAXARGS, k, i) - + out += " left outer join sys.args a%d on a%d.func_id = f.id and a%d.number = %d" % (i, i, i, i) +out += " order by s.name, f.name, query" +for i in range(0, MAXARGS): + for a in args: + out += ", %s%d" % (a, i) out += ";" # substring used a bunch of time in the queries below diff --git a/sql/test/emptydb/Tests/check.stable.out b/sql/test/emptydb/Tests/check.stable.out --- a/sql/test/emptydb/Tests/check.stable.out +++ b/sql/test/emptydb/Tests/check.stable.out @@ -909,6 +909,8 @@ create procedure sys.evalalgebra(ra_stmt create procedure fitsattach(fname string) external name fits.attach; create procedure fitsload(tname string) external name fits.load; create procedure sys.flush_log () external name sql."flush_log"; +create function sys.function_type_keyword(ftype int) returns varchar(20) begin return case ftype when 1 then 'FUNCTION' when 2 then 'PROCEDURE' when 3 then 'AGGREGATE' when 4 then 'FILTER FUNCTION' when 5 then 'FUNCTION' when 6 then 'FUNCTION' when 7 then 'LOADER' else 'ROUTINE' end; +end; create function fuse(one integer, two integer) returns bigint external name udf.fuse; create function fuse(one smallint, two smallint) returns integer external name udf.fuse; create function fuse(one tinyint, two tinyint) returns smallint external name udf.fuse; @@ -1229,26 +1231,7 @@ select t.name, c.name, c.type, c.type_di -- external functions that don't reference existing MAL function (should be empty) with x(name,func,schema_id) as (select name, split_part(func, ' external name ', 2), schema_id from sys.functions where func like '% external name %' union select name, split_part(func, ' EXTERNAL NAME ', 2), schema_id from sys.functions where func like '% EXTERNAL NAME %'), y(name,func,schema_id) as (select name, trim(split_part(func, ';', 1)), schema_id from x), z(name, mod, func, schema_id) as (select name, trim(split_part(func, '.', 1), '"'), trim(split_part(func, '.', 2), '"'), schema_id from y) select s.name, z.name, z.mod, z.func from z, sys.schemas s where z.mod || '.' || z.func not in (select m.module || '.' || m."function" from sys.malfunctions() m) and z.schema_id = s.id; -- args -with -arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -arg2 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2) as (select arg1.*, a2.id, a2.name, a2.type, a2.type_digits, a2.type_scale, a2.inout from arg1 left outer join args a2 on a2.func_id = arg1.id and a2.number = 2), -arg3 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3) as (select arg2.*, a3.id, a3.name, a3.type, a3.type_digits, a3.type_scale, a3.inout from arg2 left outer join args a3 on a3.func_id = arg2.id and a3.number = 3), -arg4 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4) as (select arg3.*, a4.id, a4.name, a4.type, a4.type_digits, a4.type_scale, a4.inout from arg3 left outer join args a4 on a4.func_id = arg3.id and a4.number = 4), -arg5 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5) as (select arg4.*, a5.id, a5.name, a5.type, a5.type_digits, a5.type_scale, a5.inout from arg4 left outer join args a5 on a5.func_id = arg4.id and a5.number = 5), -arg6 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6) as (select arg5.*, a6.id, a6.name, a6.type, a6.type_digits, a6.type_scale, a6.inout from arg5 left outer join args a6 on a6.func_id = arg5.id and a6.number = 6), -arg7 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7) as (select arg6.*, a7.id, a7.name, a7.type, a7.type_digits, a7.type_scale, a7.inout from arg6 left outer join args a7 on a7.func_id = arg6.id and a7.number = 7), -arg8 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8) as (select arg7.*, a8.id, a8.name, a8.type, a8.type_digits, a8.type_scale, a8.inout from arg7 left outer join args a8 on a8.func_id = arg7.id and a8.number = 8), -arg9 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9) as (select arg8.*, a9.id, a9.name, a9.type, a9.type_digits, a9.type_scale, a9.inout from arg8 left outer join args a9 on a9.func_id = arg8.id and a9.number = 9), -arg10 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10) as (select arg9.*, a10.id, a10.name, a10.type, a10.type_digits, a10.type_scale, a10.inout from arg9 left outer join args a10 on a10.func_id = arg9.id and a10.number = 10), -arg11 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11) as (select arg10.*, a11.id, a11.name, a11.type, a11.type_digits, a11.type_scale, a11.inout from arg10 left outer join args a11 on a11.func_id = arg10.id and a11.number = 11), -arg12 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12) as (select arg11.*, a12.id, a12.name, a12.type, a12.type_digits, a12.type_scale, a12.inout from arg11 left outer join args a12 on a12.func_id = arg11.id and a12.number = 12), -arg13 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13) as (select arg12.*, a13.id, a13.name, a13.type, a13.type_digits, a13.type_scale, a13.inout from arg12 left outer join args a13 on a13.func_id = arg12.id and a13.number = 13), -arg14 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14) as (select arg13.*, a14.id, a14.name, a14.type, a14.type_digits, a14.type_scale, a14.inout from arg13 left outer join args a14 on a14.func_id = ar g13.id and a14.number = 14), -arg15 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15) as (select arg14.*, a15.id, a15.name, a15.type, a15.type_digits, a15.type_scale, a15.i nout from arg14 left outer join args a15 on a15.func_id = arg14.id and a15.number = 15), -arg16 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15, id16, name16, type16, type_digits16, type_scale16, inout16) as (select arg15.*, a16.id , a16.name, a16.type, a16.type_digits, a16.type_scale, a16.inout from arg15 left outer join args a16 on a16.func_id = arg15.id and a16.number = 16), -funcs as (select f.id, f.name, f.func, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, f.schema_id from sys.functions f left outer join (values ('function',1),('procedure',2),('aggregate',3),('filter function',4),('table function',5),('analytic function',6),('loader function',7)) as ft (type,id) on f.type = ft.id) -select s.name, funcs.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(funcs.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, funcs.mod, funcs.language, funcs.type, funcs.side_effect, funcs.varres, funcs.vararg, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, case arg16.inout0 when 1 then 'in' when 0 then 'out' else null end as inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, case arg16.inout1 when 1 then 'in' when 0 then 'out' else null end as inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, case arg16.inout2 when 1 then 'in' when 0 then 'out' else null end as inout2, arg16.name3, arg16.type3, arg16.type_digits3, arg16.type_scale3, case arg16.inout3 when 1 then 'in' when 0 then 'out' else null end as inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, case arg16.inout4 when 1 then 'in' when 0 then 'out' else null end as inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, case arg16.inout5 when 1 then 'in' when 0 then 'out' else null end as inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, case arg16.inout6 when 1 then 'in' when 0 then 'out' else null end as inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, case arg16.inout7 when 1 then 'in' when 0 then 'out' else null end as inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, case arg16.inout8 when 1 then 'in' when 0 then 'out' else null end as inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, case arg16.inout9 when 1 then 'in' when 0 then 'out' else null end as inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, case arg16.inout10 when 1 then 'in' when 0 then 'out' else null end as inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, case arg16.inout11 when 1 then 'in' when 0 then 'out' else null end as inout 11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, case arg16.inout12 when 1 then 'in' when 0 then 'out' else null end as inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, case arg16.inout13 when 1 then 'in' when 0 then 'out' else null end as inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, case arg16.inout14 when 1 then 'in' when 0 then 'out' else null end as inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_scale15, case arg16.inout15 when 1 then 'in' when 0 then 'out' else null end as inout15 from arg16, sys.schemas s, funcs where s.id = funcs.schema_id and funcs.id = arg16.id order by s.name, funcs.name, query, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, arg16.inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, arg16.inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, arg16.inout2, arg16.name3, arg16.type3, arg16.type_di gits3, arg16.type_scale3, arg16.inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, arg16.inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, arg16.inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, arg16.inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, arg16.inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, arg16.inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, arg16.inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, arg16.inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, arg16.inout11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, arg16.inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, arg16.inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, arg16.inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_sca le15, arg16.inout15; +select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.inou t when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then 'o ut' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('fu nction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 left outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, ty pe_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; -- auths select name, grantor from sys.auths; -- db_user_info @@ -1794,13 +1777,11 @@ drop function pcre_replace(string, strin % name, name, mod, func # name % varchar, varchar, varchar, varchar # type % 0, 0, 0, 0 # length -#with -#arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -#arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -% sys.s, .funcs, .L275, .funcs, .funcs, .funcs, .funcs, .funcs, .funcs, .arg16, .arg16, .arg16, .arg16, .L311, .arg16, .arg16, .arg16, .arg16, .L317, .arg16, .arg16, .arg16, .arg16, .L325, .arg16, .arg16, .arg16, .arg16, .L333, .arg16, .arg16, .arg16, .arg16, .L341, .arg16, .arg16, .arg16, .arg16, .L347, .arg16, .arg16, .arg16, .arg16, .L355, .arg16, .arg16, .arg16, .arg16, .L363, .arg16, .arg16, .arg16, .arg16, .L371, .arg16, .arg16, .arg16, .arg16, .L377, .arg16, .arg16, .arg16, .arg16, .L405, .arg16, .arg16, .arg16, .arg16, .L413, .arg16, .arg16, .arg16, .arg16, .L421, .arg16, .arg16, .arg16, .arg16, .L427, .arg16, .arg16, .arg16, .arg16, .L435, .arg16, .arg16, .arg16, .arg16, .L443 # table_name +#select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.ino ut when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then ' out' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('f unction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 lef t outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, t ype_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; +% .s, .f, .L6, .f, .f, .ft, .f, .f, .f, .L16, .L20, .L22, .L24, .L26, .L30, .L32, .L34, .L36, .L40, .L42, .L44, .L46, .L50, .L52, .L54, .L56, .L60, .L62, .L64, .L66, .L70, .L72, .L74, .L76, .L100, .L102, .L104, .L106, .L110, .L112, .L114, .L116, .L120, .L122, .L124, .L126, .L130, .L132, .L134, .L136, .L140, .L142, .L144, .L146, .L150, .L152, .L154, .L156, .L160, .L162, .L164, .L166, .L170, .L172, .L174, .L176, .L200, .L202, .L204, .L206, .L210, .L212, .L214, .L216, .L220, .L222, .L224, .L226, .L230, .L232, .L234, .L236, .L240, .L242, .L244, .L246, .L250, .L252, .L254 # table_name % name, name, query, mod, language, type, side_effect, varres, vararg, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, type_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15 # name % varchar, varchar, varchar, varchar, int, char, boolean, boolean, boolean, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char # type -% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 0, 16, 14, 4, 1, 0, 16, 14, 2, 1, 0, 27, 12, 2, 1, 0, 12, 7, 2, 1, 0, 10, 7, 2, 1, 0, 8, 7, 2, 1, 0, 9, 6, 2, 1, 0, 10, 6, 2, 1, 0, 8, 7, 2, 1, 0, 9, 7, 2, 1, 0, 6, 7, 2, 1, 0, 8, 6, 2, 1, 0, 6, 7, 1, 1, 0, 9, 7, 1, 1, 0, 6, 7, 1, 1, 0 # length +% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 3, 16, 14, 5, 1, 3, 16, 14, 2, 1, 3, 27, 12, 2, 1, 3, 12, 7, 2, 1, 3, 10, 7, 2, 1, 3, 8, 7, 2, 1, 3, 9, 6, 2, 1, 3, 10, 6, 2, 1, 3, 8, 7, 2, 1, 3, 9, 7, 2, 1, 3, 6, 7, 2, 1, 3, 8, 6, 2, 1, 3, 6, 7, 1, 1, 3, 9, 7, 1, 1, 3, 6, 7, 1, 1, 3 # length [ "bam", "bam_drop_file", "create procedure bam.bam_drop_file(file_id bigint, dbschema smallint) external name bam.bam_drop_file;", "bam", 1, "procedure", true, false, false, "file_id", "bigint", 64, 0, "in", "dbschema", "smallint", 16, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_export", "create procedure bam.bam_export(output_path string) external name bam.bam_export;", "bam", 1, "procedure", true, false, false, "output_path", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_flag", "create function bam.bam_flag(flag smallint, name string) returns boolean external name bam.bam_flag;", "bam", 1, "function", false, false, false, "result", "boolean", 1, 0, "out", "flag", "smallint", 16, 0, "in", "name", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] @@ -2024,6 +2005,7 @@ drop function pcre_replace(string, strin [ "sys", "floor", "floor", "mmath", 0, "function", false, false, false, "res_0", "double", 53, 0, "out", "arg_1", "double", 53, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "floor", "floor", "mmath", 0, "function", false, false, false, "res_0", "real", 24, 0, "out", "arg_1", "real", 24, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "flush_log", "create procedure sys.flush_log () external name sql.\"flush_log\";", "sql", 1, "procedure", true, false, false, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] +[ "sys", "function_type_keyword", "create function sys.function_type_keyword(ftype int) returns varchar(20) begin return case ftype when 1 then 'FUNCTION' when 2 then 'PROCEDURE' when 3 then 'AGGREGATE' when 4 then 'FILTER FUNCTION' when 5 then 'FUNCTION' when 6 then 'FUNCTION' when 7 then 'LOADER' else 'ROUTINE' end; end;", "user", 2, "function", false, false, false, "result", "varchar", 20, 0, "out", "ftype", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one integer, two integer) returns bigint external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "bigint", 64, 0, "out", "one", "int", 32, 0, "in", "two", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one smallint, two smallint) returns integer external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "int", 32, 0, "out", "one", "smallint", 16, 0, "in", "two", "smallint", 16, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one tinyint, two tinyint) returns smallint external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "smallint", 16, 0, "out", "one", "tinyint", 8, 0, "in", "two", "tinyint", 8, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit b/sql/test/emptydb/Tests/check.stable.out.32bit --- a/sql/test/emptydb/Tests/check.stable.out.32bit +++ b/sql/test/emptydb/Tests/check.stable.out.32bit @@ -913,6 +913,8 @@ create procedure sys.evalalgebra(ra_stmt create procedure fitsattach(fname string) external name fits.attach; create procedure fitsload(tname string) external name fits.load; create procedure sys.flush_log () external name sql."flush_log"; +create function sys.function_type_keyword(ftype int) returns varchar(20) begin return case ftype when 1 then 'FUNCTION' when 2 then 'PROCEDURE' when 3 then 'AGGREGATE' when 4 then 'FILTER FUNCTION' when 5 then 'FUNCTION' when 6 then 'FUNCTION' when 7 then 'LOADER' else 'ROUTINE' end; +end; create function fuse(one integer, two integer) returns bigint external name udf.fuse; create function fuse(one smallint, two smallint) returns integer external name udf.fuse; create function fuse(one tinyint, two tinyint) returns smallint external name udf.fuse; @@ -1233,26 +1235,7 @@ select t.name, c.name, c.type, c.type_di -- external functions that don't reference existing MAL function (should be empty) with x(name,func,schema_id) as (select name, split_part(func, ' external name ', 2), schema_id from sys.functions where func like '% external name %' union select name, split_part(func, ' EXTERNAL NAME ', 2), schema_id from sys.functions where func like '% EXTERNAL NAME %'), y(name,func,schema_id) as (select name, trim(split_part(func, ';', 1)), schema_id from x), z(name, mod, func, schema_id) as (select name, trim(split_part(func, '.', 1), '"'), trim(split_part(func, '.', 2), '"'), schema_id from y) select s.name, z.name, z.mod, z.func from z, sys.schemas s where z.mod || '.' || z.func not in (select m.module || '.' || m."function" from sys.malfunctions() m) and z.schema_id = s.id; -- args -with -arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -arg2 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2) as (select arg1.*, a2.id, a2.name, a2.type, a2.type_digits, a2.type_scale, a2.inout from arg1 left outer join args a2 on a2.func_id = arg1.id and a2.number = 2), -arg3 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3) as (select arg2.*, a3.id, a3.name, a3.type, a3.type_digits, a3.type_scale, a3.inout from arg2 left outer join args a3 on a3.func_id = arg2.id and a3.number = 3), -arg4 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4) as (select arg3.*, a4.id, a4.name, a4.type, a4.type_digits, a4.type_scale, a4.inout from arg3 left outer join args a4 on a4.func_id = arg3.id and a4.number = 4), -arg5 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5) as (select arg4.*, a5.id, a5.name, a5.type, a5.type_digits, a5.type_scale, a5.inout from arg4 left outer join args a5 on a5.func_id = arg4.id and a5.number = 5), -arg6 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6) as (select arg5.*, a6.id, a6.name, a6.type, a6.type_digits, a6.type_scale, a6.inout from arg5 left outer join args a6 on a6.func_id = arg5.id and a6.number = 6), -arg7 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7) as (select arg6.*, a7.id, a7.name, a7.type, a7.type_digits, a7.type_scale, a7.inout from arg6 left outer join args a7 on a7.func_id = arg6.id and a7.number = 7), -arg8 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8) as (select arg7.*, a8.id, a8.name, a8.type, a8.type_digits, a8.type_scale, a8.inout from arg7 left outer join args a8 on a8.func_id = arg7.id and a8.number = 8), -arg9 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9) as (select arg8.*, a9.id, a9.name, a9.type, a9.type_digits, a9.type_scale, a9.inout from arg8 left outer join args a9 on a9.func_id = arg8.id and a9.number = 9), -arg10 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10) as (select arg9.*, a10.id, a10.name, a10.type, a10.type_digits, a10.type_scale, a10.inout from arg9 left outer join args a10 on a10.func_id = arg9.id and a10.number = 10), -arg11 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11) as (select arg10.*, a11.id, a11.name, a11.type, a11.type_digits, a11.type_scale, a11.inout from arg10 left outer join args a11 on a11.func_id = arg10.id and a11.number = 11), -arg12 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12) as (select arg11.*, a12.id, a12.name, a12.type, a12.type_digits, a12.type_scale, a12.inout from arg11 left outer join args a12 on a12.func_id = arg11.id and a12.number = 12), -arg13 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13) as (select arg12.*, a13.id, a13.name, a13.type, a13.type_digits, a13.type_scale, a13.inout from arg12 left outer join args a13 on a13.func_id = arg12.id and a13.number = 13), -arg14 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14) as (select arg13.*, a14.id, a14.name, a14.type, a14.type_digits, a14.type_scale, a14.inout from arg13 left outer join args a14 on a14.func_id = ar g13.id and a14.number = 14), -arg15 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15) as (select arg14.*, a15.id, a15.name, a15.type, a15.type_digits, a15.type_scale, a15.i nout from arg14 left outer join args a15 on a15.func_id = arg14.id and a15.number = 15), -arg16 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15, id16, name16, type16, type_digits16, type_scale16, inout16) as (select arg15.*, a16.id , a16.name, a16.type, a16.type_digits, a16.type_scale, a16.inout from arg15 left outer join args a16 on a16.func_id = arg15.id and a16.number = 16), -funcs as (select f.id, f.name, f.func, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, f.schema_id from sys.functions f left outer join (values ('function',1),('procedure',2),('aggregate',3),('filter function',4),('table function',5),('analytic function',6),('loader function',7)) as ft (type,id) on f.type = ft.id) -select s.name, funcs.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(funcs.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, funcs.mod, funcs.language, funcs.type, funcs.side_effect, funcs.varres, funcs.vararg, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, case arg16.inout0 when 1 then 'in' when 0 then 'out' else null end as inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, case arg16.inout1 when 1 then 'in' when 0 then 'out' else null end as inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, case arg16.inout2 when 1 then 'in' when 0 then 'out' else null end as inout2, arg16.name3, arg16.type3, arg16.type_digits3, arg16.type_scale3, case arg16.inout3 when 1 then 'in' when 0 then 'out' else null end as inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, case arg16.inout4 when 1 then 'in' when 0 then 'out' else null end as inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, case arg16.inout5 when 1 then 'in' when 0 then 'out' else null end as inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, case arg16.inout6 when 1 then 'in' when 0 then 'out' else null end as inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, case arg16.inout7 when 1 then 'in' when 0 then 'out' else null end as inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, case arg16.inout8 when 1 then 'in' when 0 then 'out' else null end as inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, case arg16.inout9 when 1 then 'in' when 0 then 'out' else null end as inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, case arg16.inout10 when 1 then 'in' when 0 then 'out' else null end as inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, case arg16.inout11 when 1 then 'in' when 0 then 'out' else null end as inout 11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, case arg16.inout12 when 1 then 'in' when 0 then 'out' else null end as inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, case arg16.inout13 when 1 then 'in' when 0 then 'out' else null end as inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, case arg16.inout14 when 1 then 'in' when 0 then 'out' else null end as inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_scale15, case arg16.inout15 when 1 then 'in' when 0 then 'out' else null end as inout15 from arg16, sys.schemas s, funcs where s.id = funcs.schema_id and funcs.id = arg16.id order by s.name, funcs.name, query, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, arg16.inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, arg16.inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, arg16.inout2, arg16.name3, arg16.type3, arg16.type_di gits3, arg16.type_scale3, arg16.inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, arg16.inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, arg16.inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, arg16.inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, arg16.inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, arg16.inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, arg16.inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, arg16.inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, arg16.inout11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, arg16.inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, arg16.inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, arg16.inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_sca le15, arg16.inout15; +select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.inou t when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then 'o ut' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('fu nction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 left outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, ty pe_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; -- auths select name, grantor from sys.auths; -- db_user_info @@ -1798,13 +1781,11 @@ drop function pcre_replace(string, strin % name, name, mod, func # name % varchar, varchar, varchar, varchar # type % 0, 0, 0, 0 # length -#with -#arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -#arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -% sys.s, .funcs, .L275, .funcs, .funcs, .funcs, .funcs, .funcs, .funcs, .arg16, .arg16, .arg16, .arg16, .L311, .arg16, .arg16, .arg16, .arg16, .L317, .arg16, .arg16, .arg16, .arg16, .L325, .arg16, .arg16, .arg16, .arg16, .L333, .arg16, .arg16, .arg16, .arg16, .L341, .arg16, .arg16, .arg16, .arg16, .L347, .arg16, .arg16, .arg16, .arg16, .L355, .arg16, .arg16, .arg16, .arg16, .L363, .arg16, .arg16, .arg16, .arg16, .L371, .arg16, .arg16, .arg16, .arg16, .L377, .arg16, .arg16, .arg16, .arg16, .L405, .arg16, .arg16, .arg16, .arg16, .L413, .arg16, .arg16, .arg16, .arg16, .L421, .arg16, .arg16, .arg16, .arg16, .L427, .arg16, .arg16, .arg16, .arg16, .L435, .arg16, .arg16, .arg16, .arg16, .L443 # table_name +#select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.ino ut when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then ' out' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('f unction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 lef t outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, t ype_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; +% .s, .f, .L6, .f, .f, .ft, .f, .f, .f, .L16, .L20, .L22, .L24, .L26, .L30, .L32, .L34, .L36, .L40, .L42, .L44, .L46, .L50, .L52, .L54, .L56, .L60, .L62, .L64, .L66, .L70, .L72, .L74, .L76, .L100, .L102, .L104, .L106, .L110, .L112, .L114, .L116, .L120, .L122, .L124, .L126, .L130, .L132, .L134, .L136, .L140, .L142, .L144, .L146, .L150, .L152, .L154, .L156, .L160, .L162, .L164, .L166, .L170, .L172, .L174, .L176, .L200, .L202, .L204, .L206, .L210, .L212, .L214, .L216, .L220, .L222, .L224, .L226, .L230, .L232, .L234, .L236, .L240, .L242, .L244, .L246, .L250, .L252, .L254 # table_name % name, name, query, mod, language, type, side_effect, varres, vararg, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, type_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15 # name % varchar, varchar, varchar, varchar, int, char, boolean, boolean, boolean, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char # type -% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 0, 16, 14, 4, 1, 0, 16, 14, 2, 1, 0, 27, 12, 2, 1, 0, 12, 7, 2, 1, 0, 10, 7, 2, 1, 0, 8, 7, 2, 1, 0, 9, 6, 2, 1, 0, 10, 6, 2, 1, 0, 8, 7, 2, 1, 0, 9, 7, 2, 1, 0, 6, 7, 2, 1, 0, 8, 6, 2, 1, 0, 6, 7, 1, 1, 0, 9, 7, 1, 1, 0, 6, 7, 1, 1, 0 # length +% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 3, 16, 14, 5, 1, 3, 16, 14, 2, 1, 3, 27, 12, 2, 1, 3, 12, 7, 2, 1, 3, 10, 7, 2, 1, 3, 8, 7, 2, 1, 3, 9, 6, 2, 1, 3, 10, 6, 2, 1, 3, 8, 7, 2, 1, 3, 9, 7, 2, 1, 3, 6, 7, 2, 1, 3, 8, 6, 2, 1, 3, 6, 7, 1, 1, 3, 9, 7, 1, 1, 3, 6, 7, 1, 1, 3 # length [ "bam", "bam_drop_file", "create procedure bam.bam_drop_file(file_id bigint, dbschema smallint) external name bam.bam_drop_file;", "bam", 1, "procedure", true, false, false, "file_id", "bigint", 64, 0, "in", "dbschema", "smallint", 16, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_export", "create procedure bam.bam_export(output_path string) external name bam.bam_export;", "bam", 1, "procedure", true, false, false, "output_path", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_flag", "create function bam.bam_flag(flag smallint, name string) returns boolean external name bam.bam_flag;", "bam", 1, "function", false, false, false, "result", "boolean", 1, 0, "out", "flag", "smallint", 16, 0, "in", "name", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] @@ -2028,6 +2009,7 @@ drop function pcre_replace(string, strin [ "sys", "floor", "floor", "mmath", 0, "function", false, false, false, "res_0", "double", 53, 0, "out", "arg_1", "double", 53, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "floor", "floor", "mmath", 0, "function", false, false, false, "res_0", "real", 24, 0, "out", "arg_1", "real", 24, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "flush_log", "create procedure sys.flush_log () external name sql.\"flush_log\";", "sql", 1, "procedure", true, false, false, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] +[ "sys", "function_type_keyword", "create function sys.function_type_keyword(ftype int) returns varchar(20) begin return case ftype when 1 then 'FUNCTION' when 2 then 'PROCEDURE' when 3 then 'AGGREGATE' when 4 then 'FILTER FUNCTION' when 5 then 'FUNCTION' when 6 then 'FUNCTION' when 7 then 'LOADER' else 'ROUTINE' end; end;", "user", 2, "function", false, false, false, "result", "varchar", 20, 0, "out", "ftype", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one integer, two integer) returns bigint external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "bigint", 64, 0, "out", "one", "int", 32, 0, "in", "two", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one smallint, two smallint) returns integer external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "int", 32, 0, "out", "one", "smallint", 16, 0, "in", "two", "smallint", 16, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys", "fuse", "create function fuse(one tinyint, two tinyint) returns smallint external name udf.fuse;", "udf", 1, "function", false, false, false, "result", "smallint", 16, 0, "out", "one", "tinyint", 8, 0, "in", "two", "tinyint", 8, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] diff --git a/sql/test/emptydb/Tests/check.stable.out.int128 b/sql/test/emptydb/Tests/check.stable.out.int128 --- a/sql/test/emptydb/Tests/check.stable.out.int128 +++ b/sql/test/emptydb/Tests/check.stable.out.int128 @@ -1245,26 +1245,7 @@ select t.name, c.name, c.type, c.type_di -- external functions that don't reference existing MAL function (should be empty) with x(name,func,schema_id) as (select name, split_part(func, ' external name ', 2), schema_id from sys.functions where func like '% external name %' union select name, split_part(func, ' EXTERNAL NAME ', 2), schema_id from sys.functions where func like '% EXTERNAL NAME %'), y(name,func,schema_id) as (select name, trim(split_part(func, ';', 1)), schema_id from x), z(name, mod, func, schema_id) as (select name, trim(split_part(func, '.', 1), '"'), trim(split_part(func, '.', 2), '"'), schema_id from y) select s.name, z.name, z.mod, z.func from z, sys.schemas s where z.mod || '.' || z.func not in (select m.module || '.' || m."function" from sys.malfunctions() m) and z.schema_id = s.id; -- args -with -arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -arg2 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2) as (select arg1.*, a2.id, a2.name, a2.type, a2.type_digits, a2.type_scale, a2.inout from arg1 left outer join args a2 on a2.func_id = arg1.id and a2.number = 2), -arg3 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3) as (select arg2.*, a3.id, a3.name, a3.type, a3.type_digits, a3.type_scale, a3.inout from arg2 left outer join args a3 on a3.func_id = arg2.id and a3.number = 3), -arg4 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4) as (select arg3.*, a4.id, a4.name, a4.type, a4.type_digits, a4.type_scale, a4.inout from arg3 left outer join args a4 on a4.func_id = arg3.id and a4.number = 4), -arg5 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5) as (select arg4.*, a5.id, a5.name, a5.type, a5.type_digits, a5.type_scale, a5.inout from arg4 left outer join args a5 on a5.func_id = arg4.id and a5.number = 5), -arg6 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6) as (select arg5.*, a6.id, a6.name, a6.type, a6.type_digits, a6.type_scale, a6.inout from arg5 left outer join args a6 on a6.func_id = arg5.id and a6.number = 6), -arg7 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7) as (select arg6.*, a7.id, a7.name, a7.type, a7.type_digits, a7.type_scale, a7.inout from arg6 left outer join args a7 on a7.func_id = arg6.id and a7.number = 7), -arg8 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8) as (select arg7.*, a8.id, a8.name, a8.type, a8.type_digits, a8.type_scale, a8.inout from arg7 left outer join args a8 on a8.func_id = arg7.id and a8.number = 8), -arg9 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9) as (select arg8.*, a9.id, a9.name, a9.type, a9.type_digits, a9.type_scale, a9.inout from arg8 left outer join args a9 on a9.func_id = arg8.id and a9.number = 9), -arg10 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10) as (select arg9.*, a10.id, a10.name, a10.type, a10.type_digits, a10.type_scale, a10.inout from arg9 left outer join args a10 on a10.func_id = arg9.id and a10.number = 10), -arg11 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11) as (select arg10.*, a11.id, a11.name, a11.type, a11.type_digits, a11.type_scale, a11.inout from arg10 left outer join args a11 on a11.func_id = arg10.id and a11.number = 11), -arg12 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12) as (select arg11.*, a12.id, a12.name, a12.type, a12.type_digits, a12.type_scale, a12.inout from arg11 left outer join args a12 on a12.func_id = arg11.id and a12.number = 12), -arg13 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13) as (select arg12.*, a13.id, a13.name, a13.type, a13.type_digits, a13.type_scale, a13.inout from arg12 left outer join args a13 on a13.func_id = arg12.id and a13.number = 13), -arg14 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14) as (select arg13.*, a14.id, a14.name, a14.type, a14.type_digits, a14.type_scale, a14.inout from arg13 left outer join args a14 on a14.func_id = ar g13.id and a14.number = 14), -arg15 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15) as (select arg14.*, a15.id, a15.name, a15.type, a15.type_digits, a15.type_scale, a15.i nout from arg14 left outer join args a15 on a15.func_id = arg14.id and a15.number = 15), -arg16 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1, id2, name2, type2, type_digits2, type_scale2, inout2, id3, name3, type3, type_digits3, type_scale3, inout3, id4, name4, type4, type_digits4, type_scale4, inout4, id5, name5, type5, type_digits5, type_scale5, inout5, id6, name6, type6, type_digits6, type_scale6, inout6, id7, name7, type7, type_digits7, type_scale7, inout7, id8, name8, type8, type_digits8, type_scale8, inout8, id9, name9, type9, type_digits9, type_scale9, inout9, id10, name10, type10, type_digits10, type_scale10, inout10, id11, name11, type11, type_digits11, type_scale11, inout11, id12, name12, type12, type_digits12, type_scale12, inout12, id13, name13, type13, type_digits13, type_scale13, inout13, id14, name14, type14, type_digits14, type_scale14, inout14, id15, name15, type15, type_digits15, type_scale15, inout15, id16, name16, type16, type_digits16, type_scale16, inout16) as (select arg15.*, a16.id , a16.name, a16.type, a16.type_digits, a16.type_scale, a16.inout from arg15 left outer join args a16 on a16.func_id = arg15.id and a16.number = 16), -funcs as (select f.id, f.name, f.func, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, f.schema_id from sys.functions f left outer join (values ('function',1),('procedure',2),('aggregate',3),('filter function',4),('table function',5),('analytic function',6),('loader function',7)) as ft (type,id) on f.type = ft.id) -select s.name, funcs.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(funcs.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, funcs.mod, funcs.language, funcs.type, funcs.side_effect, funcs.varres, funcs.vararg, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, case arg16.inout0 when 1 then 'in' when 0 then 'out' else null end as inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, case arg16.inout1 when 1 then 'in' when 0 then 'out' else null end as inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, case arg16.inout2 when 1 then 'in' when 0 then 'out' else null end as inout2, arg16.name3, arg16.type3, arg16.type_digits3, arg16.type_scale3, case arg16.inout3 when 1 then 'in' when 0 then 'out' else null end as inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, case arg16.inout4 when 1 then 'in' when 0 then 'out' else null end as inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, case arg16.inout5 when 1 then 'in' when 0 then 'out' else null end as inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, case arg16.inout6 when 1 then 'in' when 0 then 'out' else null end as inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, case arg16.inout7 when 1 then 'in' when 0 then 'out' else null end as inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, case arg16.inout8 when 1 then 'in' when 0 then 'out' else null end as inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, case arg16.inout9 when 1 then 'in' when 0 then 'out' else null end as inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, case arg16.inout10 when 1 then 'in' when 0 then 'out' else null end as inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, case arg16.inout11 when 1 then 'in' when 0 then 'out' else null end as inout 11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, case arg16.inout12 when 1 then 'in' when 0 then 'out' else null end as inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, case arg16.inout13 when 1 then 'in' when 0 then 'out' else null end as inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, case arg16.inout14 when 1 then 'in' when 0 then 'out' else null end as inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_scale15, case arg16.inout15 when 1 then 'in' when 0 then 'out' else null end as inout15 from arg16, sys.schemas s, funcs where s.id = funcs.schema_id and funcs.id = arg16.id order by s.name, funcs.name, query, arg16.name0, arg16.type0, arg16.type_digits0, arg16.type_scale0, arg16.inout0, arg16.name1, arg16.type1, arg16.type_digits1, arg16.type_scale1, arg16.inout1, arg16.name2, arg16.type2, arg16.type_digits2, arg16.type_scale2, arg16.inout2, arg16.name3, arg16.type3, arg16.type_di gits3, arg16.type_scale3, arg16.inout3, arg16.name4, arg16.type4, arg16.type_digits4, arg16.type_scale4, arg16.inout4, arg16.name5, arg16.type5, arg16.type_digits5, arg16.type_scale5, arg16.inout5, arg16.name6, arg16.type6, arg16.type_digits6, arg16.type_scale6, arg16.inout6, arg16.name7, arg16.type7, arg16.type_digits7, arg16.type_scale7, arg16.inout7, arg16.name8, arg16.type8, arg16.type_digits8, arg16.type_scale8, arg16.inout8, arg16.name9, arg16.type9, arg16.type_digits9, arg16.type_scale9, arg16.inout9, arg16.name10, arg16.type10, arg16.type_digits10, arg16.type_scale10, arg16.inout10, arg16.name11, arg16.type11, arg16.type_digits11, arg16.type_scale11, arg16.inout11, arg16.name12, arg16.type12, arg16.type_digits12, arg16.type_scale12, arg16.inout12, arg16.name13, arg16.type13, arg16.type_digits13, arg16.type_scale13, arg16.inout13, arg16.name14, arg16.type14, arg16.type_digits14, arg16.type_scale14, arg16.inout14, arg16.name15, arg16.type15, arg16.type_digits15, arg16.type_sca le15, arg16.inout15; +select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.inou t when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then 'o ut' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('fu nction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 left outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, ty pe_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; -- auths select name, grantor from sys.auths; -- db_user_info @@ -1810,13 +1791,11 @@ drop function pcre_replace(string, strin % name, name, mod, func # name % varchar, varchar, varchar, varchar # type % 0, 0, 0, 0 # length -#with -#arg0 (id, id0, name0, type0, type_digits0, type_scale0, inout0) as (select f.id, a0.id, a0.name, a0.type, a0.type_digits, a0.type_scale, a0.inout from sys.functions f left outer join args a0 on a0.func_id = f.id and a0.number = 0), -#arg1 (id, id0, name0, type0, type_digits0, type_scale0, inout0, id1, name1, type1, type_digits1, type_scale1, inout1) as (select arg0.*, a1.id, a1.name, a1.type, a1.type_digits, a1.type_scale, a1.inout from arg0 left outer join args a1 on a1.func_id = arg0.id and a1.number = 1), -% sys.s, .funcs, .L275, .funcs, .funcs, .funcs, .funcs, .funcs, .funcs, .arg16, .arg16, .arg16, .arg16, .L311, .arg16, .arg16, .arg16, .arg16, .L317, .arg16, .arg16, .arg16, .arg16, .L325, .arg16, .arg16, .arg16, .arg16, .L333, .arg16, .arg16, .arg16, .arg16, .L341, .arg16, .arg16, .arg16, .arg16, .L347, .arg16, .arg16, .arg16, .arg16, .L355, .arg16, .arg16, .arg16, .arg16, .L363, .arg16, .arg16, .arg16, .arg16, .L371, .arg16, .arg16, .arg16, .arg16, .L377, .arg16, .arg16, .arg16, .arg16, .L405, .arg16, .arg16, .arg16, .arg16, .L413, .arg16, .arg16, .arg16, .arg16, .L421, .arg16, .arg16, .arg16, .arg16, .L427, .arg16, .arg16, .arg16, .arg16, .L435, .arg16, .arg16, .arg16, .arg16, .L443 # table_name +#select s.name, f.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, f.mod, f.language, ft.type, f.side_effect, f.varres, f.vararg, a0.name as name0, a0.type as type0, a0.type_digits as type_digits0, a0.type_scale as type_scale0, case a0.inout when 0 then 'out' when 1 then 'in' end as inout0, a1.name as name1, a1.type as type1, a1.type_digits as type_digits1, a1.type_scale as type_scale1, case a1.inout when 0 then 'out' when 1 then 'in' end as inout1, a2.name as name2, a2.type as type2, a2.type_digits as type_digits2, a2.type_scale as type_scale2, case a2.inout when 0 then 'out' when 1 then 'in' end as inout2, a3.name as name3, a3.type as type3, a3.type_digits as type_digits3, a3.type_scale as type_scale3, case a3.inout when 0 then 'out' when 1 then 'in' end as inout3, a4.name as name4, a4.type as type4, a4.type_digits as type_digits4, a4.type_scale as type_scale4, case a4.ino ut when 0 then 'out' when 1 then 'in' end as inout4, a5.name as name5, a5.type as type5, a5.type_digits as type_digits5, a5.type_scale as type_scale5, case a5.inout when 0 then 'out' when 1 then 'in' end as inout5, a6.name as name6, a6.type as type6, a6.type_digits as type_digits6, a6.type_scale as type_scale6, case a6.inout when 0 then 'out' when 1 then 'in' end as inout6, a7.name as name7, a7.type as type7, a7.type_digits as type_digits7, a7.type_scale as type_scale7, case a7.inout when 0 then 'out' when 1 then 'in' end as inout7, a8.name as name8, a8.type as type8, a8.type_digits as type_digits8, a8.type_scale as type_scale8, case a8.inout when 0 then 'out' when 1 then 'in' end as inout8, a9.name as name9, a9.type as type9, a9.type_digits as type_digits9, a9.type_scale as type_scale9, case a9.inout when 0 then 'out' when 1 then 'in' end as inout9, a10.name as name10, a10.type as type10, a10.type_digits as type_digits10, a10.type_scale as type_scale10, case a10.inout when 0 then ' out' when 1 then 'in' end as inout10, a11.name as name11, a11.type as type11, a11.type_digits as type_digits11, a11.type_scale as type_scale11, case a11.inout when 0 then 'out' when 1 then 'in' end as inout11, a12.name as name12, a12.type as type12, a12.type_digits as type_digits12, a12.type_scale as type_scale12, case a12.inout when 0 then 'out' when 1 then 'in' end as inout12, a13.name as name13, a13.type as type13, a13.type_digits as type_digits13, a13.type_scale as type_scale13, case a13.inout when 0 then 'out' when 1 then 'in' end as inout13, a14.name as name14, a14.type as type14, a14.type_digits as type_digits14, a14.type_scale as type_scale14, case a14.inout when 0 then 'out' when 1 then 'in' end as inout14, a15.name as name15, a15.type as type15, a15.type_digits as type_digits15, a15.type_scale as type_scale15, case a15.inout when 0 then 'out' when 1 then 'in' end as inout15 from sys.functions f left outer join sys.schemas s on f.schema_id = s.id left outer join (values ('f unction', 1), ('procedure', 2), ('aggregate', 3), ('filter function', 4), ('table function', 5), ('analytic function', 6), ('loader function', 7)) as ft (type, id) on f.type = ft.id left outer join sys.args a0 on a0.func_id = f.id and a0.number = 0 left outer join sys.args a1 on a1.func_id = f.id and a1.number = 1 left outer join sys.args a2 on a2.func_id = f.id and a2.number = 2 left outer join sys.args a3 on a3.func_id = f.id and a3.number = 3 left outer join sys.args a4 on a4.func_id = f.id and a4.number = 4 left outer join sys.args a5 on a5.func_id = f.id and a5.number = 5 left outer join sys.args a6 on a6.func_id = f.id and a6.number = 6 left outer join sys.args a7 on a7.func_id = f.id and a7.number = 7 left outer join sys.args a8 on a8.func_id = f.id and a8.number = 8 left outer join sys.args a9 on a9.func_id = f.id and a9.number = 9 left outer join sys.args a10 on a10.func_id = f.id and a10.number = 10 left outer join sys.args a11 on a11.func_id = f.id and a11.number = 11 lef t outer join sys.args a12 on a12.func_id = f.id and a12.number = 12 left outer join sys.args a13 on a13.func_id = f.id and a13.number = 13 left outer join sys.args a14 on a14.func_id = f.id and a14.number = 14 left outer join sys.args a15 on a15.func_id = f.id and a15.number = 15 order by s.name, f.name, query, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, t ype_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15; +% .s, .f, .L6, .f, .f, .ft, .f, .f, .f, .L16, .L20, .L22, .L24, .L26, .L30, .L32, .L34, .L36, .L40, .L42, .L44, .L46, .L50, .L52, .L54, .L56, .L60, .L62, .L64, .L66, .L70, .L72, .L74, .L76, .L100, .L102, .L104, .L106, .L110, .L112, .L114, .L116, .L120, .L122, .L124, .L126, .L130, .L132, .L134, .L136, .L140, .L142, .L144, .L146, .L150, .L152, .L154, .L156, .L160, .L162, .L164, .L166, .L170, .L172, .L174, .L176, .L200, .L202, .L204, .L206, .L210, .L212, .L214, .L216, .L220, .L222, .L224, .L226, .L230, .L232, .L234, .L236, .L240, .L242, .L244, .L246, .L250, .L252, .L254 # table_name % name, name, query, mod, language, type, side_effect, varres, vararg, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, type_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15 # name % varchar, varchar, varchar, varchar, int, char, boolean, boolean, boolean, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char # type -% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 0, 16, 14, 5, 1, 0, 16, 14, 3, 1, 0, 27, 12, 3, 1, 0, 12, 7, 2, 1, 0, 10, 7, 2, 1, 0, 8, 7, 2, 1, 0, 9, 6, 2, 1, 0, 10, 6, 2, 1, 0, 8, 7, 2, 1, 0, 9, 7, 2, 1, 0, 6, 7, 2, 1, 0, 8, 6, 2, 1, 0, 6, 7, 1, 1, 0, 9, 7, 1, 1, 0, 6, 7, 1, 1, 0 # length +% 8, 35, 831, 9, 1, 17, 5, 5, 5, 11, 14, 4, 1, 3, 16, 14, 5, 1, 3, 16, 14, 3, 1, 3, 27, 12, 3, 1, 3, 12, 7, 2, 1, 3, 10, 7, 2, 1, 3, 8, 7, 2, 1, 3, 9, 6, 2, 1, 3, 10, 6, 2, 1, 3, 8, 7, 2, 1, 3, 9, 7, 2, 1, 3, 6, 7, 2, 1, 3, 8, 6, 2, 1, 3, 6, 7, 1, 1, 3, 9, 7, 1, 1, 3, 6, 7, 1, 1, 3 # length [ "bam", "bam_drop_file", "create procedure bam.bam_drop_file(file_id bigint, dbschema smallint) external name bam.bam_drop_file;", "bam", 1, "procedure", true, false, false, "file_id", "bigint", 64, 0, "in", "dbschema", "smallint", 16, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_export", "create procedure bam.bam_export(output_path string) external name bam.bam_export;", "bam", 1, "procedure", true, false, false, "output_path", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "bam", "bam_flag", "create function bam.bam_flag(flag smallint, name string) returns boolean external name bam.bam_flag;", "bam", 1, "function", false, false, false, "result", "boolean", 1, 0, "out", "flag", "smallint", 16, 0, "in", "name", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list