Changeset: 3239e74170fc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3239e74170fc
Modified Files:
        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:

Approve new check outputs for new system table sys.fkey_actions and view 
sys.fkeys


diffs (truncated from 477 to 300 lines):

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
@@ -24,6 +24,7 @@
 \dSt sys.dependencies
 \dSt sys.dependency_types
 \dSt sys.dump_statements
+\dSt sys.fkey_actions
 \dSt sys.function_languages
 \dSt sys.function_types
 \dSt sys.functions
@@ -119,6 +120,7 @@
 \dSv sys.dump_triggers
 \dSv sys.dump_user_defined_types
 \dSv sys.environment
+\dSv sys.fkeys
 \dSv sys.fully_qualified_functions
 \dSv sys.geometry_columns
 \dSv sys.ids
@@ -397,6 +399,7 @@ SYSTEM TABLE  sys.db_user_info
 SYSTEM TABLE  sys.dependencies
 SYSTEM TABLE  sys.dependency_types
 SYSTEM TABLE  sys.dump_statements
+SYSTEM TABLE  sys.fkey_actions
 SYSTEM TABLE  sys.function_languages
 SYSTEM TABLE  sys.function_types
 SYSTEM TABLE  sys.functions
@@ -485,6 +488,7 @@ SYSTEM VIEW  sys.dump_tables
 SYSTEM VIEW  sys.dump_triggers
 SYSTEM VIEW  sys.dump_user_defined_types
 SYSTEM VIEW  sys.environment
+SYSTEM VIEW  sys.fkeys
 SYSTEM VIEW  sys.fully_qualified_functions
 SYSTEM VIEW  sys.geometry_columns
 SYSTEM VIEW  sys.ids
@@ -968,6 +972,7 @@ CREATE TABLE "sys"."db_user_info" ("name
 CREATE TABLE "sys"."dependencies" ("id" INTEGER, "depend_id" INTEGER, 
"depend_type" SMALLINT);
 CREATE TABLE "sys"."dependency_types" ("dependency_type_id" SMALLINT NOT NULL, 
"dependency_type_name" VARCHAR(15) NOT NULL, CONSTRAINT 
"dependency_types_dependency_type_id_pkey" PRIMARY KEY ("dependency_type_id"), 
CONSTRAINT "dependency_types_dependency_type_name_unique" UNIQUE 
("dependency_type_name"));
 CREATE TABLE "sys"."dump_statements" ("o" INTEGER, "s" CHARACTER LARGE OBJECT);
+CREATE TABLE "sys"."fkey_actions" ("action_id" SMALLINT NOT NULL, 
"action_name" VARCHAR(15) NOT NULL, CONSTRAINT "fkey_actions_action_id_pkey" 
PRIMARY KEY ("action_id"));
 CREATE TABLE "sys"."function_languages" ("language_id" SMALLINT NOT NULL, 
"language_name" VARCHAR(20) NOT NULL, "language_keyword" VARCHAR(20), 
CONSTRAINT "function_languages_language_id_pkey" PRIMARY KEY ("language_id"), 
CONSTRAINT "function_languages_language_name_unique" UNIQUE ("language_name"));
 CREATE TABLE "sys"."function_types" ("function_type_id" SMALLINT NOT NULL, 
"function_type_name" VARCHAR(30) NOT NULL, "function_type_keyword" VARCHAR(30) 
NOT NULL, CONSTRAINT "function_types_function_type_id_pkey" PRIMARY KEY 
("function_type_id"), CONSTRAINT "function_types_function_type_name_unique" 
UNIQUE ("function_type_name"));
 CREATE TABLE "sys"."functions" ("id" INTEGER, "name" VARCHAR(256), "func" 
VARCHAR(8196), "mod" VARCHAR(8196), "language" INTEGER, "type" INTEGER, 
"side_effect" BOOLEAN, "varres" BOOLEAN, "vararg" BOOLEAN, "schema_id" INTEGER, 
"system" BOOLEAN, "semantics" BOOLEAN);
@@ -1063,6 +1068,7 @@ create view sys.dump_tables as select t.
 create view sys.dump_triggers as select sys.schema_guard(sch, tab, def) stmt, 
sch schema_name, tab table_name, tri trigger_name from sys.describe_triggers;
 create view sys.dump_user_defined_types as select 'CREATE TYPE ' || 
sys.fqn(sch, sql_tpe) || ' EXTERNAL NAME ' || sys.dq(ext_tpe) || ';' stmt, sch 
schema_name, sql_tpe type_name from sys.describe_user_defined_types;
 create view sys.environment as select * from sys.env();
+create view sys.fkeys as select id, table_id, type, name, rkey, 
update_action_id, upd.action_name as update_action, delete_action_id, 
del.action_name as delete_action from (select id, table_id, type, name, rkey, 
cast((("action" >> 8) & 255) as smallint) as update_action_id, cast(("action" & 
255) as smallint) as delete_action_id from sys.keys where type = 2 union all 
select id, table_id, type, name, rkey, cast((("action" >> 8) & 255) as 
smallint) as update_action_id, cast(("action" & 255) as smallint) as 
delete_action_id from tmp.keys where type = 2) as fks join sys.fkey_actions upd 
on fks.update_action_id = upd.action_id join sys.fkey_actions del on 
fks.delete_action_id = del.action_id;
 create view sys.fully_qualified_functions as with fqn(id, tpe, sig, num) as 
(select f.id, ft.function_type_keyword, case when a.type is null then s.name || 
'.' || f.name || '()' else s.name || '.' || f.name || '(' || 
group_concat(sys.describe_type(a.type, a.type_digits, a.type_scale), ',') over 
(partition by f.id order by a.number) || ')' end, a.number from sys.schemas s, 
sys.function_types ft, sys.functions f left join sys.args a on f.id = a.func_id 
where s.id= f.schema_id and f.type = ft.function_type_id) select fqn1.id id, 
fqn1.tpe tpe, fqn1.sig nme from fqn fqn1 join (select id, max(num) from fqn 
group by id) fqn2(id, num) on fqn1.id = fqn2.id and (fqn1.num = fqn2.num or 
fqn1.num is null and fqn2.num is null);
 create view sys.geometry_columns as select cast(null as varchar(1)) as 
f_table_catalog, s.name as f_table_schema, t.name as f_table_name, c.name as 
f_geometry_column, cast(has_z(c.type_digits) + has_m(c.type_digits) +2 as 
integer) as coord_dimension, c.type_scale as srid, get_type(c.type_digits, 0) 
as type from sys.columns c, sys.tables t, sys.schemas s where c.table_id = t.id 
and t.schema_id = s.id and c.type in (select sqlname from sys.types where 
systemname in ('wkb', 'wkba'));
 create view sys.ids (id, name, schema_id, table_id, table_name, obj_type, 
sys_table, system) as select id, name, cast(null as int) as schema_id, 
cast(null as int) as table_id, cast(null as varchar(124)) as table_name, 
'author' as obj_type, 'sys.auths' as sys_table, (name in 
('public','sysadmin','monetdb','.snapshot')) as system from sys.auths union all 
select id, name, cast(null as int) as schema_id, cast(null as int) as table_id, 
cast(null as varchar(124)) as table_name, ifthenelse(system, 'system schema', 
'schema'), 'sys.schemas', system from sys.schemas union all select t.id, name, 
t.schema_id, t.id as table_id, t.name as table_name, 
cast(lower(tt.table_type_name) as varchar(40)), 'sys.tables', t.system from 
sys.tables t left outer join sys.table_types tt on t.type = tt.table_type_id 
union all select c.id, c.name, t.schema_id, c.table_id, t.name as table_name, 
ifthenelse(t.system, 'system column', 'column'), 'sys._columns', t.system from 
sys._columns c join sys._tables t on c.tab
 le_id = t.id union all select c.id, c.name, t.schema_id, c.table_id, t.name as 
table_name, 'column', 'tmp._columns', t.system from tmp._columns c join 
tmp._tables t on c.table_id = t.id union all select k.id, k.name, t.schema_id, 
k.table_id, t.name as table_name, ifthenelse(t.system, 'system key', 'key'), 
'sys.keys', t.system from sys.keys k join sys._tables t on k.table_id = t.id 
union all select k.id, k.name, t.schema_id, k.table_id, t.name as table_name, 
'key', 'tmp.keys', t.system from tmp.keys k join tmp._tables t on k.table_id = 
t.id union all select i.id, i.name, t.schema_id, i.table_id, t.name as 
table_name, ifthenelse(t.system, 'system index', 'index'), 'sys.idxs', t.system 
from sys.idxs i join sys._tables t on i.table_id = t.id union all select i.id, 
i.name, t.schema_id, i.table_id, t.name as table_name, 'index' , 'tmp.idxs', 
t.system from tmp.idxs i join tmp._tables t on i.table_id = t.id union all 
select g.id, g.name, t.schema_id, g.table_id, t.name as table_name, ifthen
 else(t.system, 'system trigger', 'trigger'), 'sys.triggers', t.system from 
sys.triggers g join sys._tables t on g.table_id = t.id union all select g.id, 
g.name, t.schema_id, g.table_id, t.name as table_name, 'trigger', 
'tmp.triggers', t.system from tmp.triggers g join tmp._tables t on g.table_id = 
t.id union all select f.id, f.name, f.schema_id, cast(null as int) as table_id, 
cast(null as varchar(124)) as table_name, cast(ifthenelse(f.system, 'system ', 
'') || lower(ft.function_type_keyword) as varchar(40)), 'sys.functions', 
f.system from sys.functions f left outer join sys.function_types ft on f.type = 
ft.function_type_id union all select a.id, a.name, f.schema_id, a.func_id as 
table_id, f.name as table_name, cast(ifthenelse(f.system, 'system ', '') || 
lower(ft.function_type_keyword) || ' arg' as varchar(44)), 'sys.args', f.system 
from sys.args a join sys.functions f on a.func_id = f.id left outer join 
sys.function_types ft on f.type = ft.function_type_id union all select id, name,
  schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as 
table_name, 'sequence', 'sys.sequences', false from sys.sequences union all 
select o.id, o.name, pt.schema_id, pt.id, pt.name, 'partition of merge table', 
'sys.objects', false from sys.objects o join sys._tables pt on o.sub = pt.id 
join sys._tables mt on o.nr = mt.id where mt.type = 3 union all select id, 
sqlname, schema_id, cast(null as int) as table_id, cast(null as varchar(124)) 
as table_name, 'type', 'sys.types', (sqlname in ('inet','json','url','uuid')) 
from sys.types where id > 2000 order by id;
@@ -2010,6 +2016,8 @@ select 'null in value_partitions.value',
 [ "sys._tables",       "sys",  "dump_triggers",        "create view 
sys.dump_triggers as select sys.schema_guard(sch, tab, def) stmt, sch 
schema_name, tab table_name, tri trigger_name from sys.describe_triggers;",  
"VIEW", true,   "COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "dump_user_defined_types",      "create view 
sys.dump_user_defined_types as select 'CREATE TYPE ' || sys.fqn(sch, sql_tpe) 
|| ' EXTERNAL NAME ' || sys.dq(ext_tpe) || ';' stmt, sch schema_name, sql_tpe 
type_name from sys.describe_user_defined_types;",      "VIEW", true,   
"COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "environment",  "create view sys.environment as 
select * from sys.env();",      "VIEW", true,   "COMMIT",       "WRITABLE"      
]
+[ "sys._tables",       "sys",  "fkey_actions", NULL,   "TABLE",        true,   
"COMMIT",       "READONLY"      ]
+[ "sys._tables",       "sys",  "fkeys",        "create view sys.fkeys as 
select id, table_id, type, name, rkey, update_action_id, upd.action_name as 
update_action, delete_action_id, del.action_name as delete_action from (select 
id, table_id, type, name, rkey, cast(((\"action\" >> 8) & 255) as smallint) as 
update_action_id, cast((\"action\" & 255) as smallint) as delete_action_id from 
sys.keys where type = 2 union all select id, table_id, type, name, rkey, 
cast(((\"action\" >> 8) & 255) as smallint) as update_action_id, 
cast((\"action\" & 255) as smallint) as delete_action_id from tmp.keys where 
type = 2) as fks join sys.fkey_actions upd on fks.update_action_id = 
upd.action_id join sys.fkey_actions del on fks.delete_action_id = 
del.action_id;",      "VIEW", true,   "COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "fully_qualified_functions",    "create view 
sys.fully_qualified_functions as with fqn(id, tpe, sig, num) as (select f.id, 
ft.function_type_keyword, case when a.type is null then s.name || '.' || f.name 
|| '()' else s.name || '.' || f.name || '(' || 
group_concat(sys.describe_type(a.type, a.type_digits, a.type_scale), ',') over 
(partition by f.id order by a.number) || ')' end, a.number from sys.schemas s, 
sys.function_types ft, sys.functions f left join sys.args a on f.id = a.func_id 
where s.id= f.schema_id and f.type = ft.function_type_id) select fqn1.id id, 
fqn1.tpe tpe, fqn1.sig nme from fqn fqn1 join (select id, max(num) from fqn 
group by id) fqn2(id, num) on fqn1.id = fqn2.id and (fqn1.num = fqn2.num or 
fqn1.num is null and fqn2.num is null);",  "VIEW", true,   "COMMIT",       
"WRITABLE"      ]
 [ "sys._tables",       "sys",  "function_languages",   NULL,   "TABLE",        
true,   "COMMIT",       "READONLY"      ]
 [ "sys._tables",       "sys",  "function_types",       NULL,   "TABLE",        
true,   "COMMIT",       "READONLY"      ]
@@ -2475,6 +2483,17 @@ select 'null in value_partitions.value',
 [ "sys._columns",      "dump_user_defined_types",      "type_name",    
"varchar",      1024,   0,      NULL,   true,   2,      NULL    ]
 [ "sys._columns",      "environment",  "name", "varchar",      1024,   0,      
NULL,   true,   0,      NULL    ]
 [ "sys._columns",      "environment",  "value",        "varchar",      2048,   
0,      NULL,   true,   1,      NULL    ]
+[ "sys._columns",      "fkey_actions", "action_id",    "smallint",     16,     
0,      NULL,   false,  0,      NULL    ]
+[ "sys._columns",      "fkey_actions", "action_name",  "varchar",      15,     
0,      NULL,   false,  1,      NULL    ]
+[ "sys._columns",      "fkeys",        "id",   "int",  32,     0,      NULL,   
true,   0,      NULL    ]
+[ "sys._columns",      "fkeys",        "table_id",     "int",  32,     0,      
NULL,   true,   1,      NULL    ]
+[ "sys._columns",      "fkeys",        "type", "int",  32,     0,      NULL,   
true,   2,      NULL    ]
+[ "sys._columns",      "fkeys",        "name", "varchar",      1024,   0,      
NULL,   true,   3,      NULL    ]
+[ "sys._columns",      "fkeys",        "rkey", "int",  32,     0,      NULL,   
true,   4,      NULL    ]
+[ "sys._columns",      "fkeys",        "update_action_id",     "smallint",     
16,     0,      NULL,   true,   5,      NULL    ]
+[ "sys._columns",      "fkeys",        "update_action",        "varchar",      
15,     0,      NULL,   true,   6,      NULL    ]
+[ "sys._columns",      "fkeys",        "delete_action_id",     "smallint",     
16,     0,      NULL,   true,   7,      NULL    ]
+[ "sys._columns",      "fkeys",        "delete_action",        "varchar",      
15,     0,      NULL,   true,   8,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "id",   "int",  32,     
0,      NULL,   true,   0,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "tpe",  "varchar",      
30,     0,      NULL,   true,   1,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "nme",  "clob", 0,      
0,      NULL,   true,   2,      NULL    ]
@@ -4742,6 +4761,9 @@ select 'null in value_partitions.value',
 [ "table used by view",        "sys",  "describe_tables",      "sys",  
"dump_tables",  "VIEW"  ]
 [ "table used by view",        "sys",  "describe_triggers",    "sys",  
"dump_triggers",        "VIEW"  ]
 [ "table used by view",        "sys",  "describe_user_defined_types",  "sys",  
"dump_user_defined_types",      "VIEW"  ]
+[ "table used by view",        "sys",  "fkey_actions", "sys",  "fkeys",        
"VIEW"  ]
+[ "table used by view",        "sys",  "keys", "sys",  "fkeys",        "VIEW"  
]
+[ "table used by view",        "tmp",  "keys", "sys",  "fkeys",        "VIEW"  
]
 [ "table used by view",        "sys",  "args", "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "table used by view",        "sys",  "function_types",       "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "table used by view",        "sys",  "functions",    "sys",  
"fully_qualified_functions",    "VIEW"  ]
@@ -5355,6 +5377,20 @@ select 'null in value_partitions.value',
 [ "column used by view",       "sys",  "describe_user_defined_types",  
"ext_tpe",      "sys",  "dump_user_defined_types",      "VIEW"  ]
 [ "column used by view",       "sys",  "describe_user_defined_types",  "sch",  
"sys",  "dump_user_defined_types",      "VIEW"  ]
 [ "column used by view",       "sys",  "describe_user_defined_types",  
"sql_tpe",      "sys",  "dump_user_defined_types",      "VIEW"  ]
+[ "column used by view",       "sys",  "fkey_actions", "action_id",    "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "fkey_actions", "action_name",  "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "action",       "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "id",   "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "name", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "rkey", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "table_id",     "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "type", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "action",       "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "id",   "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "name", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "rkey", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "table_id",     "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "type", "sys",  "fkeys",        
"VIEW"  ]
 [ "column used by view",       "sys",  "args", "func_id",      "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "column used by view",       "sys",  "args", "id",   "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "column used by view",       "sys",  "args", "inout",        "sys",  
"fully_qualified_functions",    "VIEW"  ]
@@ -5531,6 +5567,7 @@ select 'null in value_partitions.value',
 [ "column used by key",        "sys",  "comments",     "id",   "sys",  
"comments",     "comments_id_pkey",     "KEY"   ]
 [ "column used by key",        "sys",  "dependency_types",     
"dependency_type_id",   "sys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "KEY"   ]
 [ "column used by key",        "sys",  "dependency_types",     
"dependency_type_name", "sys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "KEY"   ]
+[ "column used by key",        "sys",  "fkey_actions", "action_id",    "sys",  
"fkey_actions", "fkey_actions_action_id_pkey",  "KEY"   ]
 [ "column used by key",        "sys",  "function_languages",   "language_id",  
"sys",  "function_languages",   "function_languages_language_id_pkey",  "KEY"   
]
 [ "column used by key",        "sys",  "function_languages",   
"language_name",        "sys",  "function_languages",   
"function_languages_language_name_unique",      "KEY"   ]
 [ "column used by key",        "sys",  "function_types",       
"function_type_id",     "sys",  "function_types",       
"function_types_function_type_id_pkey", "KEY"   ]
@@ -5552,6 +5589,7 @@ select 'null in value_partitions.value',
 [ "column used by index",      "sys",  "comments",     "id",   "sys",  
"comments",     "comments_id_pkey",     "INDEX" ]
 [ "column used by index",      "sys",  "dependency_types",     
"dependency_type_id",   "sys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "INDEX" ]
 [ "column used by index",      "sys",  "dependency_types",     
"dependency_type_name", "sys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "INDEX" ]
+[ "column used by index",      "sys",  "fkey_actions", "action_id",    "sys",  
"fkey_actions", "fkey_actions_action_id_pkey",  "INDEX" ]
 [ "column used by index",      "sys",  "function_languages",   "language_id",  
"sys",  "function_languages",   "function_languages_language_id_pkey",  "INDEX" 
]
 [ "column used by index",      "sys",  "function_languages",   
"language_name",        "sys",  "function_languages",   
"function_languages_language_name_unique",      "INDEX" ]
 [ "column used by index",      "sys",  "function_types",       
"function_type_id",     "sys",  "function_types",       
"function_types_function_type_id_pkey", "INDEX" ]
@@ -5620,6 +5658,7 @@ select 'null in value_partitions.value',
 [ "sys.idxs",  "comments",     "comments_id_pkey",     "Hash"  ]
 [ "sys.idxs",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "Hash"  ]
 [ "sys.idxs",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "Hash"  ]
+[ "sys.idxs",  "fkey_actions", "fkey_actions_action_id_pkey",  "Hash"  ]
 [ "sys.idxs",  "function_languages",   "function_languages_language_id_pkey",  
"Hash"  ]
 [ "sys.idxs",  "function_languages",   
"function_languages_language_name_unique",      "Hash"  ]
 [ "sys.idxs",  "function_types",       "function_types_function_type_id_pkey", 
"Hash"  ]
@@ -5641,6 +5680,7 @@ select 'null in value_partitions.value',
 [ "sys.keys",  "comments",     "comments_id_pkey",     "Primary Key",  NULL,   
-1      ]
 [ "sys.keys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "Primary Key",  NULL,   -1      
]
 [ "sys.keys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "Unique Key",   NULL,   -1      
]
+[ "sys.keys",  "fkey_actions", "fkey_actions_action_id_pkey",  "Primary Key",  
NULL,   -1      ]
 [ "sys.keys",  "function_languages",   "function_languages_language_id_pkey",  
"Primary Key",  NULL,   -1      ]
 [ "sys.keys",  "function_languages",   
"function_languages_language_name_unique",      "Unique Key",   NULL,   -1      
]
 [ "sys.keys",  "function_types",       "function_types_function_type_id_pkey", 
"Primary Key",  NULL,   -1      ]
@@ -5659,6 +5699,8 @@ select 'null in value_partitions.value',
 % %2,  name,   nr,     sub # name
 % char,        varchar,        clob,   varchar # type
 % 11,  20,     1,      0 # length
+[ "sys.objects",       "action_id",    "0",    NULL    ]
+[ "sys.objects",       "action_id",    "0",    NULL    ]
 [ "sys.objects",       "dependency_type_id",   "0",    NULL    ]
 [ "sys.objects",       "dependency_type_id",   "0",    NULL    ]
 [ "sys.objects",       "dependency_type_name", "0",    NULL    ]
@@ -5739,6 +5781,8 @@ select 'null in value_partitions.value',
 [ "grant on table",    "dependency_views_on_procedures",       "public",       
"SELECT",       "monetdb",      0       ]
 [ "grant on table",    "dependency_views_on_views",    "public",       
"SELECT",       "monetdb",      0       ]
 [ "grant on table",    "environment",  "public",       "SELECT",       
"monetdb",      0       ]
+[ "grant on table",    "fkey_actions", "public",       "SELECT",       
"monetdb",      0       ]
+[ "grant on table",    "fkeys",        "public",       "SELECT",       
"monetdb",      0       ]
 [ "grant on table",    "function_languages",   "public",       "SELECT",       
"monetdb",      0       ]
 [ "grant on table",    "function_types",       "public",       "SELECT",       
"monetdb",      0       ]
 [ "grant on table",    "functions",    "public",       "SELECT",       NULL,   
0       ]
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
@@ -24,6 +24,7 @@
 \dSt sys.dependencies
 \dSt sys.dependency_types
 \dSt sys.dump_statements
+\dSt sys.fkey_actions
 \dSt sys.function_languages
 \dSt sys.function_types
 \dSt sys.functions
@@ -119,6 +120,7 @@
 \dSv sys.dump_triggers
 \dSv sys.dump_user_defined_types
 \dSv sys.environment
+\dSv sys.fkeys
 \dSv sys.fully_qualified_functions
 \dSv sys.geometry_columns
 \dSv sys.ids
@@ -397,6 +399,7 @@ SYSTEM TABLE  sys.db_user_info
 SYSTEM TABLE  sys.dependencies
 SYSTEM TABLE  sys.dependency_types
 SYSTEM TABLE  sys.dump_statements
+SYSTEM TABLE  sys.fkey_actions
 SYSTEM TABLE  sys.function_languages
 SYSTEM TABLE  sys.function_types
 SYSTEM TABLE  sys.functions
@@ -485,6 +488,7 @@ SYSTEM VIEW  sys.dump_tables
 SYSTEM VIEW  sys.dump_triggers
 SYSTEM VIEW  sys.dump_user_defined_types
 SYSTEM VIEW  sys.environment
+SYSTEM VIEW  sys.fkeys
 SYSTEM VIEW  sys.fully_qualified_functions
 SYSTEM VIEW  sys.geometry_columns
 SYSTEM VIEW  sys.ids
@@ -968,6 +972,7 @@ CREATE TABLE "sys"."db_user_info" ("name
 CREATE TABLE "sys"."dependencies" ("id" INTEGER, "depend_id" INTEGER, 
"depend_type" SMALLINT);
 CREATE TABLE "sys"."dependency_types" ("dependency_type_id" SMALLINT NOT NULL, 
"dependency_type_name" VARCHAR(15) NOT NULL, CONSTRAINT 
"dependency_types_dependency_type_id_pkey" PRIMARY KEY ("dependency_type_id"), 
CONSTRAINT "dependency_types_dependency_type_name_unique" UNIQUE 
("dependency_type_name"));
 CREATE TABLE "sys"."dump_statements" ("o" INTEGER, "s" CHARACTER LARGE OBJECT);
+CREATE TABLE "sys"."fkey_actions" ("action_id" SMALLINT NOT NULL, 
"action_name" VARCHAR(15) NOT NULL, CONSTRAINT "fkey_actions_action_id_pkey" 
PRIMARY KEY ("action_id"));
 CREATE TABLE "sys"."function_languages" ("language_id" SMALLINT NOT NULL, 
"language_name" VARCHAR(20) NOT NULL, "language_keyword" VARCHAR(20), 
CONSTRAINT "function_languages_language_id_pkey" PRIMARY KEY ("language_id"), 
CONSTRAINT "function_languages_language_name_unique" UNIQUE ("language_name"));
 CREATE TABLE "sys"."function_types" ("function_type_id" SMALLINT NOT NULL, 
"function_type_name" VARCHAR(30) NOT NULL, "function_type_keyword" VARCHAR(30) 
NOT NULL, CONSTRAINT "function_types_function_type_id_pkey" PRIMARY KEY 
("function_type_id"), CONSTRAINT "function_types_function_type_name_unique" 
UNIQUE ("function_type_name"));
 CREATE TABLE "sys"."functions" ("id" INTEGER, "name" VARCHAR(256), "func" 
VARCHAR(8196), "mod" VARCHAR(8196), "language" INTEGER, "type" INTEGER, 
"side_effect" BOOLEAN, "varres" BOOLEAN, "vararg" BOOLEAN, "schema_id" INTEGER, 
"system" BOOLEAN, "semantics" BOOLEAN);
@@ -1063,6 +1068,7 @@ create view sys.dump_tables as select t.
 create view sys.dump_triggers as select sys.schema_guard(sch, tab, def) stmt, 
sch schema_name, tab table_name, tri trigger_name from sys.describe_triggers;
 create view sys.dump_user_defined_types as select 'CREATE TYPE ' || 
sys.fqn(sch, sql_tpe) || ' EXTERNAL NAME ' || sys.dq(ext_tpe) || ';' stmt, sch 
schema_name, sql_tpe type_name from sys.describe_user_defined_types;
 create view sys.environment as select * from sys.env();
+create view sys.fkeys as select id, table_id, type, name, rkey, 
update_action_id, upd.action_name as update_action, delete_action_id, 
del.action_name as delete_action from (select id, table_id, type, name, rkey, 
cast((("action" >> 8) & 255) as smallint) as update_action_id, cast(("action" & 
255) as smallint) as delete_action_id from sys.keys where type = 2 union all 
select id, table_id, type, name, rkey, cast((("action" >> 8) & 255) as 
smallint) as update_action_id, cast(("action" & 255) as smallint) as 
delete_action_id from tmp.keys where type = 2) as fks join sys.fkey_actions upd 
on fks.update_action_id = upd.action_id join sys.fkey_actions del on 
fks.delete_action_id = del.action_id;
 create view sys.fully_qualified_functions as with fqn(id, tpe, sig, num) as 
(select f.id, ft.function_type_keyword, case when a.type is null then s.name || 
'.' || f.name || '()' else s.name || '.' || f.name || '(' || 
group_concat(sys.describe_type(a.type, a.type_digits, a.type_scale), ',') over 
(partition by f.id order by a.number) || ')' end, a.number from sys.schemas s, 
sys.function_types ft, sys.functions f left join sys.args a on f.id = a.func_id 
where s.id= f.schema_id and f.type = ft.function_type_id) select fqn1.id id, 
fqn1.tpe tpe, fqn1.sig nme from fqn fqn1 join (select id, max(num) from fqn 
group by id) fqn2(id, num) on fqn1.id = fqn2.id and (fqn1.num = fqn2.num or 
fqn1.num is null and fqn2.num is null);
 create view sys.geometry_columns as select cast(null as varchar(1)) as 
f_table_catalog, s.name as f_table_schema, t.name as f_table_name, c.name as 
f_geometry_column, cast(has_z(c.type_digits) + has_m(c.type_digits) +2 as 
integer) as coord_dimension, c.type_scale as srid, get_type(c.type_digits, 0) 
as type from sys.columns c, sys.tables t, sys.schemas s where c.table_id = t.id 
and t.schema_id = s.id and c.type in (select sqlname from sys.types where 
systemname in ('wkb', 'wkba'));
 create view sys.ids (id, name, schema_id, table_id, table_name, obj_type, 
sys_table, system) as select id, name, cast(null as int) as schema_id, 
cast(null as int) as table_id, cast(null as varchar(124)) as table_name, 
'author' as obj_type, 'sys.auths' as sys_table, (name in 
('public','sysadmin','monetdb','.snapshot')) as system from sys.auths union all 
select id, name, cast(null as int) as schema_id, cast(null as int) as table_id, 
cast(null as varchar(124)) as table_name, ifthenelse(system, 'system schema', 
'schema'), 'sys.schemas', system from sys.schemas union all select t.id, name, 
t.schema_id, t.id as table_id, t.name as table_name, 
cast(lower(tt.table_type_name) as varchar(40)), 'sys.tables', t.system from 
sys.tables t left outer join sys.table_types tt on t.type = tt.table_type_id 
union all select c.id, c.name, t.schema_id, c.table_id, t.name as table_name, 
ifthenelse(t.system, 'system column', 'column'), 'sys._columns', t.system from 
sys._columns c join sys._tables t on c.tab
 le_id = t.id union all select c.id, c.name, t.schema_id, c.table_id, t.name as 
table_name, 'column', 'tmp._columns', t.system from tmp._columns c join 
tmp._tables t on c.table_id = t.id union all select k.id, k.name, t.schema_id, 
k.table_id, t.name as table_name, ifthenelse(t.system, 'system key', 'key'), 
'sys.keys', t.system from sys.keys k join sys._tables t on k.table_id = t.id 
union all select k.id, k.name, t.schema_id, k.table_id, t.name as table_name, 
'key', 'tmp.keys', t.system from tmp.keys k join tmp._tables t on k.table_id = 
t.id union all select i.id, i.name, t.schema_id, i.table_id, t.name as 
table_name, ifthenelse(t.system, 'system index', 'index'), 'sys.idxs', t.system 
from sys.idxs i join sys._tables t on i.table_id = t.id union all select i.id, 
i.name, t.schema_id, i.table_id, t.name as table_name, 'index' , 'tmp.idxs', 
t.system from tmp.idxs i join tmp._tables t on i.table_id = t.id union all 
select g.id, g.name, t.schema_id, g.table_id, t.name as table_name, ifthen
 else(t.system, 'system trigger', 'trigger'), 'sys.triggers', t.system from 
sys.triggers g join sys._tables t on g.table_id = t.id union all select g.id, 
g.name, t.schema_id, g.table_id, t.name as table_name, 'trigger', 
'tmp.triggers', t.system from tmp.triggers g join tmp._tables t on g.table_id = 
t.id union all select f.id, f.name, f.schema_id, cast(null as int) as table_id, 
cast(null as varchar(124)) as table_name, cast(ifthenelse(f.system, 'system ', 
'') || lower(ft.function_type_keyword) as varchar(40)), 'sys.functions', 
f.system from sys.functions f left outer join sys.function_types ft on f.type = 
ft.function_type_id union all select a.id, a.name, f.schema_id, a.func_id as 
table_id, f.name as table_name, cast(ifthenelse(f.system, 'system ', '') || 
lower(ft.function_type_keyword) || ' arg' as varchar(44)), 'sys.args', f.system 
from sys.args a join sys.functions f on a.func_id = f.id left outer join 
sys.function_types ft on f.type = ft.function_type_id union all select id, name,
  schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as 
table_name, 'sequence', 'sys.sequences', false from sys.sequences union all 
select o.id, o.name, pt.schema_id, pt.id, pt.name, 'partition of merge table', 
'sys.objects', false from sys.objects o join sys._tables pt on o.sub = pt.id 
join sys._tables mt on o.nr = mt.id where mt.type = 3 union all select id, 
sqlname, schema_id, cast(null as int) as table_id, cast(null as varchar(124)) 
as table_name, 'type', 'sys.types', (sqlname in ('inet','json','url','uuid')) 
from sys.types where id > 2000 order by id;
@@ -2010,6 +2016,8 @@ select 'null in value_partitions.value',
 [ "sys._tables",       "sys",  "dump_triggers",        "create view 
sys.dump_triggers as select sys.schema_guard(sch, tab, def) stmt, sch 
schema_name, tab table_name, tri trigger_name from sys.describe_triggers;",  
"VIEW", true,   "COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "dump_user_defined_types",      "create view 
sys.dump_user_defined_types as select 'CREATE TYPE ' || sys.fqn(sch, sql_tpe) 
|| ' EXTERNAL NAME ' || sys.dq(ext_tpe) || ';' stmt, sch schema_name, sql_tpe 
type_name from sys.describe_user_defined_types;",      "VIEW", true,   
"COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "environment",  "create view sys.environment as 
select * from sys.env();",      "VIEW", true,   "COMMIT",       "WRITABLE"      
]
+[ "sys._tables",       "sys",  "fkey_actions", NULL,   "TABLE",        true,   
"COMMIT",       "READONLY"      ]
+[ "sys._tables",       "sys",  "fkeys",        "create view sys.fkeys as 
select id, table_id, type, name, rkey, update_action_id, upd.action_name as 
update_action, delete_action_id, del.action_name as delete_action from (select 
id, table_id, type, name, rkey, cast(((\"action\" >> 8) & 255) as smallint) as 
update_action_id, cast((\"action\" & 255) as smallint) as delete_action_id from 
sys.keys where type = 2 union all select id, table_id, type, name, rkey, 
cast(((\"action\" >> 8) & 255) as smallint) as update_action_id, 
cast((\"action\" & 255) as smallint) as delete_action_id from tmp.keys where 
type = 2) as fks join sys.fkey_actions upd on fks.update_action_id = 
upd.action_id join sys.fkey_actions del on fks.delete_action_id = 
del.action_id;",      "VIEW", true,   "COMMIT",       "WRITABLE"      ]
 [ "sys._tables",       "sys",  "fully_qualified_functions",    "create view 
sys.fully_qualified_functions as with fqn(id, tpe, sig, num) as (select f.id, 
ft.function_type_keyword, case when a.type is null then s.name || '.' || f.name 
|| '()' else s.name || '.' || f.name || '(' || 
group_concat(sys.describe_type(a.type, a.type_digits, a.type_scale), ',') over 
(partition by f.id order by a.number) || ')' end, a.number from sys.schemas s, 
sys.function_types ft, sys.functions f left join sys.args a on f.id = a.func_id 
where s.id= f.schema_id and f.type = ft.function_type_id) select fqn1.id id, 
fqn1.tpe tpe, fqn1.sig nme from fqn fqn1 join (select id, max(num) from fqn 
group by id) fqn2(id, num) on fqn1.id = fqn2.id and (fqn1.num = fqn2.num or 
fqn1.num is null and fqn2.num is null);",  "VIEW", true,   "COMMIT",       
"WRITABLE"      ]
 [ "sys._tables",       "sys",  "function_languages",   NULL,   "TABLE",        
true,   "COMMIT",       "READONLY"      ]
 [ "sys._tables",       "sys",  "function_types",       NULL,   "TABLE",        
true,   "COMMIT",       "READONLY"      ]
@@ -2475,6 +2483,17 @@ select 'null in value_partitions.value',
 [ "sys._columns",      "dump_user_defined_types",      "type_name",    
"varchar",      1024,   0,      NULL,   true,   2,      NULL    ]
 [ "sys._columns",      "environment",  "name", "varchar",      1024,   0,      
NULL,   true,   0,      NULL    ]
 [ "sys._columns",      "environment",  "value",        "varchar",      2048,   
0,      NULL,   true,   1,      NULL    ]
+[ "sys._columns",      "fkey_actions", "action_id",    "smallint",     16,     
0,      NULL,   false,  0,      NULL    ]
+[ "sys._columns",      "fkey_actions", "action_name",  "varchar",      15,     
0,      NULL,   false,  1,      NULL    ]
+[ "sys._columns",      "fkeys",        "id",   "int",  32,     0,      NULL,   
true,   0,      NULL    ]
+[ "sys._columns",      "fkeys",        "table_id",     "int",  32,     0,      
NULL,   true,   1,      NULL    ]
+[ "sys._columns",      "fkeys",        "type", "int",  32,     0,      NULL,   
true,   2,      NULL    ]
+[ "sys._columns",      "fkeys",        "name", "varchar",      1024,   0,      
NULL,   true,   3,      NULL    ]
+[ "sys._columns",      "fkeys",        "rkey", "int",  32,     0,      NULL,   
true,   4,      NULL    ]
+[ "sys._columns",      "fkeys",        "update_action_id",     "smallint",     
16,     0,      NULL,   true,   5,      NULL    ]
+[ "sys._columns",      "fkeys",        "update_action",        "varchar",      
15,     0,      NULL,   true,   6,      NULL    ]
+[ "sys._columns",      "fkeys",        "delete_action_id",     "smallint",     
16,     0,      NULL,   true,   7,      NULL    ]
+[ "sys._columns",      "fkeys",        "delete_action",        "varchar",      
15,     0,      NULL,   true,   8,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "id",   "int",  32,     
0,      NULL,   true,   0,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "tpe",  "varchar",      
30,     0,      NULL,   true,   1,      NULL    ]
 [ "sys._columns",      "fully_qualified_functions",    "nme",  "clob", 0,      
0,      NULL,   true,   2,      NULL    ]
@@ -4742,6 +4761,9 @@ select 'null in value_partitions.value',
 [ "table used by view",        "sys",  "describe_tables",      "sys",  
"dump_tables",  "VIEW"  ]
 [ "table used by view",        "sys",  "describe_triggers",    "sys",  
"dump_triggers",        "VIEW"  ]
 [ "table used by view",        "sys",  "describe_user_defined_types",  "sys",  
"dump_user_defined_types",      "VIEW"  ]
+[ "table used by view",        "sys",  "fkey_actions", "sys",  "fkeys",        
"VIEW"  ]
+[ "table used by view",        "sys",  "keys", "sys",  "fkeys",        "VIEW"  
]
+[ "table used by view",        "tmp",  "keys", "sys",  "fkeys",        "VIEW"  
]
 [ "table used by view",        "sys",  "args", "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "table used by view",        "sys",  "function_types",       "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "table used by view",        "sys",  "functions",    "sys",  
"fully_qualified_functions",    "VIEW"  ]
@@ -5355,6 +5377,20 @@ select 'null in value_partitions.value',
 [ "column used by view",       "sys",  "describe_user_defined_types",  
"ext_tpe",      "sys",  "dump_user_defined_types",      "VIEW"  ]
 [ "column used by view",       "sys",  "describe_user_defined_types",  "sch",  
"sys",  "dump_user_defined_types",      "VIEW"  ]
 [ "column used by view",       "sys",  "describe_user_defined_types",  
"sql_tpe",      "sys",  "dump_user_defined_types",      "VIEW"  ]
+[ "column used by view",       "sys",  "fkey_actions", "action_id",    "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "fkey_actions", "action_name",  "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "action",       "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "id",   "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "name", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "rkey", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "sys",  "keys", "table_id",     "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "sys",  "keys", "type", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "action",       "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "id",   "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "name", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "rkey", "sys",  "fkeys",        
"VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "table_id",     "sys",  
"fkeys",        "VIEW"  ]
+[ "column used by view",       "tmp",  "keys", "type", "sys",  "fkeys",        
"VIEW"  ]
 [ "column used by view",       "sys",  "args", "func_id",      "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "column used by view",       "sys",  "args", "id",   "sys",  
"fully_qualified_functions",    "VIEW"  ]
 [ "column used by view",       "sys",  "args", "inout",        "sys",  
"fully_qualified_functions",    "VIEW"  ]
@@ -5531,6 +5567,7 @@ select 'null in value_partitions.value',
 [ "column used by key",        "sys",  "comments",     "id",   "sys",  
"comments",     "comments_id_pkey",     "KEY"   ]
 [ "column used by key",        "sys",  "dependency_types",     
"dependency_type_id",   "sys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "KEY"   ]
 [ "column used by key",        "sys",  "dependency_types",     
"dependency_type_name", "sys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "KEY"   ]
+[ "column used by key",        "sys",  "fkey_actions", "action_id",    "sys",  
"fkey_actions", "fkey_actions_action_id_pkey",  "KEY"   ]
 [ "column used by key",        "sys",  "function_languages",   "language_id",  
"sys",  "function_languages",   "function_languages_language_id_pkey",  "KEY"   
]
 [ "column used by key",        "sys",  "function_languages",   
"language_name",        "sys",  "function_languages",   
"function_languages_language_name_unique",      "KEY"   ]
 [ "column used by key",        "sys",  "function_types",       
"function_type_id",     "sys",  "function_types",       
"function_types_function_type_id_pkey", "KEY"   ]
@@ -5552,6 +5589,7 @@ select 'null in value_partitions.value',
 [ "column used by index",      "sys",  "comments",     "id",   "sys",  
"comments",     "comments_id_pkey",     "INDEX" ]
 [ "column used by index",      "sys",  "dependency_types",     
"dependency_type_id",   "sys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "INDEX" ]
 [ "column used by index",      "sys",  "dependency_types",     
"dependency_type_name", "sys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "INDEX" ]
+[ "column used by index",      "sys",  "fkey_actions", "action_id",    "sys",  
"fkey_actions", "fkey_actions_action_id_pkey",  "INDEX" ]
 [ "column used by index",      "sys",  "function_languages",   "language_id",  
"sys",  "function_languages",   "function_languages_language_id_pkey",  "INDEX" 
]
 [ "column used by index",      "sys",  "function_languages",   
"language_name",        "sys",  "function_languages",   
"function_languages_language_name_unique",      "INDEX" ]
 [ "column used by index",      "sys",  "function_types",       
"function_type_id",     "sys",  "function_types",       
"function_types_function_type_id_pkey", "INDEX" ]
@@ -5620,6 +5658,7 @@ select 'null in value_partitions.value',
 [ "sys.idxs",  "comments",     "comments_id_pkey",     "Hash"  ]
 [ "sys.idxs",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "Hash"  ]
 [ "sys.idxs",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "Hash"  ]
+[ "sys.idxs",  "fkey_actions", "fkey_actions_action_id_pkey",  "Hash"  ]
 [ "sys.idxs",  "function_languages",   "function_languages_language_id_pkey",  
"Hash"  ]
 [ "sys.idxs",  "function_languages",   
"function_languages_language_name_unique",      "Hash"  ]
 [ "sys.idxs",  "function_types",       "function_types_function_type_id_pkey", 
"Hash"  ]
@@ -5641,6 +5680,7 @@ select 'null in value_partitions.value',
 [ "sys.keys",  "comments",     "comments_id_pkey",     "Primary Key",  NULL,   
-1      ]
 [ "sys.keys",  "dependency_types",     
"dependency_types_dependency_type_id_pkey",     "Primary Key",  NULL,   -1      
]
 [ "sys.keys",  "dependency_types",     
"dependency_types_dependency_type_name_unique", "Unique Key",   NULL,   -1      
]
+[ "sys.keys",  "fkey_actions", "fkey_actions_action_id_pkey",  "Primary Key",  
NULL,   -1      ]
 [ "sys.keys",  "function_languages",   "function_languages_language_id_pkey",  
"Primary Key",  NULL,   -1      ]
 [ "sys.keys",  "function_languages",   
"function_languages_language_name_unique",      "Unique Key",   NULL,   -1      
]
 [ "sys.keys",  "function_types",       "function_types_function_type_id_pkey", 
"Primary Key",  NULL,   -1      ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to