Changeset: e5aee3f8fdbe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5aee3f8fdbe
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: Mar2018
Log Message:

Simplify and improve query.
Now we even properly ignore comments.


diffs (99 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
@@ -71,7 +71,7 @@ select s.name, t.name, replace(replace(p
 -- _columns
 select t.name, c.name, c.type, c.type_digits, c.type_scale, c."default", 
c."null", c.number, c.storage from sys._tables t, sys._columns c where t.id = 
c.table_id order by t.name, c.number;
 -- 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;
+with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
 -- args
 '''
 # generate a monster query to get all functions with all their
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
@@ -1307,7 +1307,7 @@ select s.name, t.name, replace(replace(p
 -- _columns
 select t.name, c.name, c.type, c.type_digits, c.type_scale, c."default", 
c."null", c.number, c.storage from sys._tables t, sys._columns c where t.id = 
c.table_id order by t.name, c.number;
 -- 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;
+with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
 -- args
 select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 
out
 er join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_d
 igits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 -- auths
@@ -2068,11 +2068,11 @@ drop function pcre_replace(string, strin
 [ "users",     "default_schema",       "int",  9,      0,      NULL,   true,   
2,      NULL    ]
 [ "var_values",        "var_name",     "char", 16,     0,      NULL,   true,   
0,      NULL    ]
 [ "var_values",        "value",        "varchar",      1024,   0,      NULL,   
true,   1,      NULL    ]
-#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;
-% sys.s,       .z,     .z,     .z # table_name
-% name,        name,   mod,    func # name
-% varchar,     varchar,        varchar,        varchar # type
-% 0,   0,      0,      0 # length
+#with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
+% .x,  .x,     .x # table_name
+% sname,       name,   modfunc # name
+% varchar,     varchar,        clob # type
+% 0,   0,      0 # length
 #select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 ou
 ter join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_
 digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 % .s,  .f,     .L4,    .f,     .fl,    .ft,    .f,     .f,     .f,     .L14,   
.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 # 
table_name
 % name,        name,   query,  mod,    language_name,  function_type_name,     
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
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
@@ -1311,7 +1311,7 @@ select s.name, t.name, replace(replace(p
 -- _columns
 select t.name, c.name, c.type, c.type_digits, c.type_scale, c."default", 
c."null", c.number, c.storage from sys._tables t, sys._columns c where t.id = 
c.table_id order by t.name, c.number;
 -- 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;
+with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
 -- args
 select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 
out
 er join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_d
 igits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 -- auths
@@ -2072,11 +2072,11 @@ drop function pcre_replace(string, strin
 [ "users",     "default_schema",       "int",  9,      0,      NULL,   true,   
2,      NULL    ]
 [ "var_values",        "var_name",     "char", 16,     0,      NULL,   true,   
0,      NULL    ]
 [ "var_values",        "value",        "varchar",      1024,   0,      NULL,   
true,   1,      NULL    ]
-#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;
-% sys.s,       .z,     .z,     .z # table_name
-% name,        name,   mod,    func # name
-% varchar,     varchar,        varchar,        varchar # type
-% 0,   0,      0,      0 # length
+#with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
+% .x,  .x,     .x # table_name
+% sname,       name,   modfunc # name
+% varchar,     varchar,        clob # type
+% 0,   0,      0 # length
 #select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 ou
 ter join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_
 digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 % .s,  .f,     .L4,    .f,     .fl,    .ft,    .f,     .f,     .f,     .L14,   
.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 # 
table_name
 % name,        name,   query,  mod,    language_name,  function_type_name,     
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
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
@@ -1316,7 +1316,7 @@ select s.name, t.name, replace(replace(p
 -- _columns
 select t.name, c.name, c.type, c.type_digits, c.type_scale, c."default", 
c."null", c.number, c.storage from sys._tables t, sys._columns c where t.id = 
c.table_id order by t.name, c.number;
 -- 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;
+with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
 -- args
 select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 
out
 er join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_d
 igits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 -- auths
@@ -2077,11 +2077,11 @@ drop function pcre_replace(string, strin
 [ "users",     "default_schema",       "int",  9,      0,      NULL,   true,   
2,      NULL    ]
 [ "var_values",        "var_name",     "char", 16,     0,      NULL,   true,   
0,      NULL    ]
 [ "var_values",        "value",        "varchar",      1024,   0,      NULL,   
true,   1,      NULL    ]
-#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;
-% sys.s,       .z,     .z,     .z # table_name
-% name,        name,   mod,    func # name
-% varchar,     varchar,        varchar,        varchar # type
-% 0,   0,      0,      0 # length
+#with x (sname, name, modfunc) as (select s.name, f.name, 
pcre_replace(pcre_replace(pcre_replace(func, '--.*', '', ''), '.*external name 
(.*);.*', '$1', 'ims'), '"', '', '') from sys.functions f left outer join 
sys.schemas s on f.schema_id = s.id where func ilike '% external name %') 
select * from x where x.modfunc not in (select m.module || '.' || m."function" 
from sys.malfunctions() m);
+% .x,  .x,     .x # table_name
+% sname,       name,   modfunc # name
+% varchar,     varchar,        clob # type
+% 0,   0,      0 # length
 #select s.name, f.name, 
replace(replace(pcre_replace(pcre_replace(pcre_replace(f.func, '--.*\n', '', 
''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, 
f.mod, fl.language_name, ft.function_type_name, 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.inout 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 ou
 ter join sys.function_types as ft on f.type = ft.function_type_id left outer 
join sys.function_languages fl on f.language = fl.language_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, 
type_scale13, inout13, name14, type14, type_
 digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, 
inout15;
 % .s,  .f,     .L4,    .f,     .fl,    .ft,    .f,     .f,     .f,     .L14,   
.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 # 
table_name
 % name,        name,   query,  mod,    language_name,  function_type_name,     
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
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to