Changeset: f4f7ae533dbf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f4f7ae533dbf Modified Files: sql/test/emptydb/Tests/check.SQL.py sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 Branch: default Log Message:
Use symbolic names in tables query. diffs (truncated from 474 to 300 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 @@ -67,7 +67,7 @@ create function pcre_replace(origin stri -- schemas select name, authorization, owner, system from sys.schemas order by name; -- _tables -select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, t.type, t.system, t.commit_action, t.access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by s.name, t.name; +select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, coalesce(tt.table_type_name, cast(t.type as string)) as type, t.system, coalesce(ca.action_name, cast(t.commit_action as string)) as commit_action, coalesce(at.value, cast(t.access as string)) as access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id left outer join (values (0, 'COMMIT'), (1, 'DELETE'), (2, 'PRESERVE'), (3, 'DROP'), (4, 'ABORT')) as ca (action_id, action_name) on t.commit_action = ca.action_id left outer join (values (0, 'WRITABLE'), (1, 'READONLY'), (2, 'APPENDONLY')) as at (id, value) on t.access = at.id order by s.name, t.name; -- _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) 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 @@ -1223,7 +1223,7 @@ create function pcre_replace(origin stri -- schemas select name, authorization, owner, system from sys.schemas order by name; -- _tables -select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, t.type, t.system, t.commit_action, t.access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by s.name, t.name; +select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, coalesce(tt.table_type_name, cast(t.type as string)) as type, t.system, coalesce(ca.action_name, cast(t.commit_action as string)) as commit_action, coalesce(at.value, cast(t.access as string)) as access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id left outer join (values (0, 'COMMIT'), (1, 'DELETE'), (2, 'PRESERVE'), (3, 'DROP'), (4, 'ABORT')) as ca (action_id, action_name) on t.commit_action = ca.action_id left outer join (values (0, 'WRITABLE'), (1, 'READONLY'), (2, 'APPENDONLY')) as at (id, value) on t.access = at.id order by s.name, t.name; -- _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) @@ -1311,74 +1311,74 @@ drop function pcre_replace(string, strin [ "profiler", 3, 3, true ] [ "sys", 2, 3, true ] [ "tmp", 2, 3, true ] -#select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, t.type, t.system, t.commit_action, t.access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by s.name, t.name; -% .s, .t, .L4, .t, .t, .t, .t # table_name +#select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, coalesce(tt.table_type_name, cast(t.type as string)) as type, t.system, coalesce(ca.action_name, cast(t.commit_action as string)) as commit_action, coalesce(at.value, cast(t.access as string)) as access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id left outer join (values (0, 'COMMIT'), (1, 'DELETE'), (2, 'PRESERVE'), (3, 'DROP'), (4, 'ABORT')) as ca (action_id, action_name) on t.commit_action = ca.action_id left outer join (values (0, 'WRITABLE'), (1, 'READONLY'), (2, 'APPENDONLY')) as at (id, value) on t.access = at.id order by s.name, t.name; +% .s, .t, .L10, .L13, .t, .L17, .L22 # table_name % name, name, query, type, system, commit_action, access # name -% varchar, varchar, varchar, smallint, boolean, smallint, smallint # type -% 3, 29, 1545, 1, 5, 1, 1 # length -[ "bam", "export", NULL, 0, true, 0, 0 ] -[ "bam", "files", NULL, 0, true, 0, 0 ] -[ "bam", "pg", NULL, 0, true, 0, 0 ] -[ "bam", "rg", NULL, 0, true, 0, 0 ] -[ "bam", "sq", NULL, 0, true, 0, 0 ] -[ "sys", "_columns", NULL, 0, true, 0, 0 ] -[ "sys", "_tables", NULL, 0, true, 0, 0 ] -[ "sys", "args", NULL, 0, true, 0, 0 ] -[ "sys", "auths", NULL, 0, true, 0, 0 ] -[ "sys", "columns", "SELECT * FROM (SELECT p.* FROM \"sys\".\"_columns\" AS p UNION ALL SELECT t.* FROM \"tmp\".\"_columns\" AS t) AS columns;", 1, true, 0, 0 ] -[ "sys", "commented_function_signatures", "create view sys.commented_function_signatures as select f.id as fid, s.name as schema, f.name as fname, sys.function_type_keyword(f.type) as category, case when sf.function_id is null then false else true end as system, case rank() over (partition by f.id order by p.number asc) when 1 then f.name else null end as name, case rank() over (partition by f.id order by p.number desc) when 1 then c.remark else null end as remark, p.type, p.type_digits, p.type_scale, row_number() over (order by f.id, p.number) as line from sys.functions f join sys.comments c on f.id = c.id join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id left outer join sys.args p on f.id = p.func_id and p.inout = 1 order by line;", 1, true, 0, 0 ] -[ "sys", "comments", NULL, 0, true, 0, 0 ] -[ "sys", "db_user_info", NULL, 0, true, 0, 0 ] -[ "sys", "dependencies", NULL, 0, true, 0, 0 ] -[ "sys", "dependency_types", NULL, 0, true, 0, 1 ] -[ "sys", "describe_all_objects", "create view sys.describe_all_objects as select s.name as sname, t.name, s.name || '.' || t.name as fullname, cast(case t.type when 1 then 2 else 1 end as smallint) as ntype, (case when t.system then 'SYSTEM ' else '' end) || tt.table_type_name as type, t.system, c.remark as remark from sys._tables t left outer join sys.comments c on t.id = c.id left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id union all select s.name as sname, sq.name, s.name || '.' || sq.name as fullname, cast(4 as smallint) as ntype, 'SEQUENCE' as type, false as system, c.remark as remark from sys.sequences sq left outer join sys.comments c on sq.id = c.id left outer join sys.schemas s on sq.schema_id = s.id union all select distinct s.name as sname, f.name, s.name || '.' || f.name as fullname, cast(8 as smallint) as ntype, (case when sf.function_id is not null then 'SYSTEM ' else '' end) || sys.function_type_keywor d(f.type) as type, case when sf.function_id is null then false else true end as system, c.remark as remark from sys.functions f left outer join sys.comments c on f.id = c.id left outer join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id union all select s.name as sname, s.name, s.name as fullname, cast(16 as smallint) as ntype, (case when s.system then 'SYSTEM SCHEMA' else 'SCHEMA' end) as type, s.system, c.remark as remark from sys.schemas s left outer join sys.comments c on s.id = c.id order by system, name, sname, ntype;", 1, true, 0, 0 ] -[ "sys", "environment", "create view sys.environment as select * from sys.env();", 1, true, 0, 0 ] -[ "sys", "function_languages", NULL, 0, true, 0, 1 ] -[ "sys", "function_types", NULL, 0, true, 0, 1 ] -[ "sys", "functions", NULL, 0, true, 0, 0 ] -[ "sys", "geometry_columns", "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'));", 1, true, 0, 0 ] -[ "sys", "idxs", NULL, 0, true, 0, 0 ] -[ "sys", "index_types", NULL, 0, true, 0, 1 ] -[ "sys", "key_types", NULL, 0, true, 0, 1 ] -[ "sys", "keys", NULL, 0, true, 0, 0 ] -[ "sys", "keywords", NULL, 0, true, 0, 1 ] -[ "sys", "netcdf_attrs", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_dims", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_files", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_vardim", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_vars", NULL, 0, true, 0, 0 ] -[ "sys", "objects", NULL, 0, true, 0, 0 ] -[ "sys", "optimizers", "create view sys.optimizers as select * from sys.optimizers();", 1, true, 0, 0 ] -[ "sys", "privilege_codes", NULL, 0, true, 0, 1 ] -[ "sys", "privileges", NULL, 0, true, 0, 0 ] -[ "sys", "querylog_calls", "create view sys.querylog_calls as select * from sys.querylog_calls();", 1, true, 0, 0 ] -[ "sys", "querylog_catalog", "create view sys.querylog_catalog as select * from sys.querylog_catalog();", 1, true, 0, 0 ] -[ "sys", "querylog_history", "create view sys.querylog_history as select qd.*, ql.\"start\",ql.\"stop\", ql.arguments, ql.tuples, ql.run, ql.ship, ql.cpu, ql.io from sys.querylog_catalog() qd, sys.querylog_calls() ql where qd.id = ql.id and qd.owner = user;", 1, true, 0, 0 ] -[ "sys", "queue", "create view sys.queue as select * from sys.queue();", 1, true, 0, 0 ] -[ "sys", "rejects", "create view sys.rejects as select * from sys.rejects();", 1, true, 0, 0 ] -[ "sys", "schemas", NULL, 0, true, 0, 0 ] -[ "sys", "sequences", NULL, 0, true, 0, 0 ] -[ "sys", "sessions", "create view sys.sessions as select * from sys.sessions();", 1, true, 0, 0 ] -[ "sys", "spatial_ref_sys", NULL, 0, true, 0, 0 ] -[ "sys", "statistics", NULL, 0, true, 0, 0 ] -[ "sys", "storage", "create view sys.\"storage\" as select * from sys.\"storage\"();", 1, true, 0, 0 ] -[ "sys", "storagemodel", "create view sys.storagemodel as select * from sys.storagemodel();", 1, true, 0, 0 ] -[ "sys", "storagemodelinput", NULL, 0, true, 0, 0 ] -[ "sys", "systemfunctions", NULL, 0, true, 0, 0 ] -[ "sys", "table_types", NULL, 0, true, 0, 1 ] -[ "sys", "tables", "SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(CASE WHEN \"system\" THEN \"type\" + 10 /* system table/view */ ELSE (CASE WHEN \"commit_action\" = 0 THEN \"type\" /* table/view */ ELSE \"type\" + 20 /* global temp table */ END) END AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", CASE WHEN (NOT \"system\" AND \"commit_action\" > 0) THEN 1 ELSE 0 END AS \"temporary\" FROM \"sys\".\"_tables\" WHERE \"type\" <> 2 UNION ALL SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(\"type\" + 30 /* local temp table */ AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", 1 AS \"temporary\" FROM \"tmp\".\"_tables\";", 1, true, 0, 0 ] -[ "sys", "tablestoragemodel", "create view sys.tablestoragemodel as select \"schema\",\"table\",max(count) as \"count\", sum(columnsize) as columnsize, sum(heapsize) as heapsize, sum(hashes) as hashes, sum(\"imprints\") as \"imprints\", sum(case when sorted = false then 8 * count else 0 end) as auxiliary from sys.storagemodel() group by \"schema\",\"table\";", 1, true, 0, 0 ] -[ "sys", "tracelog", "create view sys.tracelog as select * from sys.tracelog();", 1, true, 0, 0 ] -[ "sys", "triggers", NULL, 0, true, 0, 0 ] -[ "sys", "types", NULL, 0, true, 0, 0 ] -[ "sys", "user_role", NULL, 0, true, 0, 0 ] -[ "sys", "users", "SELECT u.\"name\" AS \"name\", ui.\"fullname\", ui.\"default_schema\" FROM db_users() AS u LEFT JOIN \"sys\".\"db_user_info\" AS ui ON u.\"name\" = ui.\"name\" ;", 1, true, 0, 0 ] -[ "tmp", "_columns", NULL, 0, true, 2, 0 ] -[ "tmp", "_tables", NULL, 0, true, 2, 0 ] -[ "tmp", "idxs", NULL, 0, true, 2, 0 ] -[ "tmp", "keys", NULL, 0, true, 2, 0 ] -[ "tmp", "objects", NULL, 0, true, 2, 0 ] -[ "tmp", "triggers", NULL, 0, true, 2, 0 ] +% varchar, varchar, varchar, clob, boolean, clob, clob # type +% 3, 29, 1545, 5, 5, 8, 8 # length +[ "bam", "export", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "files", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "pg", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "rg", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "sq", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "_columns", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "_tables", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "args", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "auths", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "columns", "SELECT * FROM (SELECT p.* FROM \"sys\".\"_columns\" AS p UNION ALL SELECT t.* FROM \"tmp\".\"_columns\" AS t) AS columns;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "commented_function_signatures", "create view sys.commented_function_signatures as select f.id as fid, s.name as schema, f.name as fname, sys.function_type_keyword(f.type) as category, case when sf.function_id is null then false else true end as system, case rank() over (partition by f.id order by p.number asc) when 1 then f.name else null end as name, case rank() over (partition by f.id order by p.number desc) when 1 then c.remark else null end as remark, p.type, p.type_digits, p.type_scale, row_number() over (order by f.id, p.number) as line from sys.functions f join sys.comments c on f.id = c.id join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id left outer join sys.args p on f.id = p.func_id and p.inout = 1 order by line;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "comments", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "db_user_info", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "dependencies", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "dependency_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "describe_all_objects", "create view sys.describe_all_objects as select s.name as sname, t.name, s.name || '.' || t.name as fullname, cast(case t.type when 1 then 2 else 1 end as smallint) as ntype, (case when t.system then 'SYSTEM ' else '' end) || tt.table_type_name as type, t.system, c.remark as remark from sys._tables t left outer join sys.comments c on t.id = c.id left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id union all select s.name as sname, sq.name, s.name || '.' || sq.name as fullname, cast(4 as smallint) as ntype, 'SEQUENCE' as type, false as system, c.remark as remark from sys.sequences sq left outer join sys.comments c on sq.id = c.id left outer join sys.schemas s on sq.schema_id = s.id union all select distinct s.name as sname, f.name, s.name || '.' || f.name as fullname, cast(8 as smallint) as ntype, (case when sf.function_id is not null then 'SYSTEM ' else '' end) || sys.function_type_keywor d(f.type) as type, case when sf.function_id is null then false else true end as system, c.remark as remark from sys.functions f left outer join sys.comments c on f.id = c.id left outer join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id union all select s.name as sname, s.name, s.name as fullname, cast(16 as smallint) as ntype, (case when s.system then 'SYSTEM SCHEMA' else 'SCHEMA' end) as type, s.system, c.remark as remark from sys.schemas s left outer join sys.comments c on s.id = c.id order by system, name, sname, ntype;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "environment", "create view sys.environment as select * from sys.env();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "function_languages", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "function_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "functions", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "geometry_columns", "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'));", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "idxs", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "index_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "key_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "keys", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "keywords", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "netcdf_attrs", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_dims", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_files", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_vardim", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_vars", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "objects", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "optimizers", "create view sys.optimizers as select * from sys.optimizers();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "privilege_codes", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "privileges", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_calls", "create view sys.querylog_calls as select * from sys.querylog_calls();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_catalog", "create view sys.querylog_catalog as select * from sys.querylog_catalog();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_history", "create view sys.querylog_history as select qd.*, ql.\"start\",ql.\"stop\", ql.arguments, ql.tuples, ql.run, ql.ship, ql.cpu, ql.io from sys.querylog_catalog() qd, sys.querylog_calls() ql where qd.id = ql.id and qd.owner = user;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "queue", "create view sys.queue as select * from sys.queue();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "rejects", "create view sys.rejects as select * from sys.rejects();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "schemas", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "sequences", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "sessions", "create view sys.sessions as select * from sys.sessions();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "spatial_ref_sys", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "statistics", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "storage", "create view sys.\"storage\" as select * from sys.\"storage\"();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "storagemodel", "create view sys.storagemodel as select * from sys.storagemodel();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "storagemodelinput", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "systemfunctions", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "table_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "tables", "SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(CASE WHEN \"system\" THEN \"type\" + 10 /* system table/view */ ELSE (CASE WHEN \"commit_action\" = 0 THEN \"type\" /* table/view */ ELSE \"type\" + 20 /* global temp table */ END) END AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", CASE WHEN (NOT \"system\" AND \"commit_action\" > 0) THEN 1 ELSE 0 END AS \"temporary\" FROM \"sys\".\"_tables\" WHERE \"type\" <> 2 UNION ALL SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(\"type\" + 30 /* local temp table */ AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", 1 AS \"temporary\" FROM \"tmp\".\"_tables\";", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "tablestoragemodel", "create view sys.tablestoragemodel as select \"schema\",\"table\",max(count) as \"count\", sum(columnsize) as columnsize, sum(heapsize) as heapsize, sum(hashes) as hashes, sum(\"imprints\") as \"imprints\", sum(case when sorted = false then 8 * count else 0 end) as auxiliary from sys.storagemodel() group by \"schema\",\"table\";", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "tracelog", "create view sys.tracelog as select * from sys.tracelog();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "triggers", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "types", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "user_role", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "users", "SELECT u.\"name\" AS \"name\", ui.\"fullname\", ui.\"default_schema\" FROM db_users() AS u LEFT JOIN \"sys\".\"db_user_info\" AS ui ON u.\"name\" = ui.\"name\" ;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "tmp", "_columns", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] +[ "tmp", "_tables", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] +[ "tmp", "idxs", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] +[ "tmp", "keys", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] +[ "tmp", "objects", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] +[ "tmp", "triggers", NULL, "TABLE", true, "PRESERVE", "WRITABLE" ] #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; % sys.t, sys.c, sys.c, sys.c, sys.c, sys.c, sys.c, sys.c, sys.c # table_name % name, name, type, type_digits, type_scale, default, null, number, storage # 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 @@ -1227,7 +1227,7 @@ create function pcre_replace(origin stri -- schemas select name, authorization, owner, system from sys.schemas order by name; -- _tables -select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, t.type, t.system, t.commit_action, t.access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by s.name, t.name; +select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, coalesce(tt.table_type_name, cast(t.type as string)) as type, t.system, coalesce(ca.action_name, cast(t.commit_action as string)) as commit_action, coalesce(at.value, cast(t.access as string)) as access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id left outer join (values (0, 'COMMIT'), (1, 'DELETE'), (2, 'PRESERVE'), (3, 'DROP'), (4, 'ABORT')) as ca (action_id, action_name) on t.commit_action = ca.action_id left outer join (values (0, 'WRITABLE'), (1, 'READONLY'), (2, 'APPENDONLY')) as at (id, value) on t.access = at.id order by s.name, t.name; -- _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) @@ -1315,74 +1315,74 @@ drop function pcre_replace(string, strin [ "profiler", 3, 3, true ] [ "sys", 2, 3, true ] [ "tmp", 2, 3, true ] -#select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, t.type, t.system, t.commit_action, t.access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by s.name, t.name; -% .s, .t, .L4, .t, .t, .t, .t # table_name +#select s.name, t.name, replace(replace(pcre_replace(pcre_replace(pcre_replace(t.query, '--.*\n', '', ''), '[ \t\n]+', ' ', 'm'), '^ ', '', ''), '( ', '('), ' )', ')') as query, coalesce(tt.table_type_name, cast(t.type as string)) as type, t.system, coalesce(ca.action_name, cast(t.commit_action as string)) as commit_action, coalesce(at.value, cast(t.access as string)) as access from sys._tables t left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id left outer join (values (0, 'COMMIT'), (1, 'DELETE'), (2, 'PRESERVE'), (3, 'DROP'), (4, 'ABORT')) as ca (action_id, action_name) on t.commit_action = ca.action_id left outer join (values (0, 'WRITABLE'), (1, 'READONLY'), (2, 'APPENDONLY')) as at (id, value) on t.access = at.id order by s.name, t.name; +% .s, .t, .L10, .L13, .t, .L17, .L22 # table_name % name, name, query, type, system, commit_action, access # name -% varchar, varchar, varchar, smallint, boolean, smallint, smallint # type -% 3, 29, 1545, 1, 5, 1, 1 # length -[ "bam", "export", NULL, 0, true, 0, 0 ] -[ "bam", "files", NULL, 0, true, 0, 0 ] -[ "bam", "pg", NULL, 0, true, 0, 0 ] -[ "bam", "rg", NULL, 0, true, 0, 0 ] -[ "bam", "sq", NULL, 0, true, 0, 0 ] -[ "sys", "_columns", NULL, 0, true, 0, 0 ] -[ "sys", "_tables", NULL, 0, true, 0, 0 ] -[ "sys", "args", NULL, 0, true, 0, 0 ] -[ "sys", "auths", NULL, 0, true, 0, 0 ] -[ "sys", "columns", "SELECT * FROM (SELECT p.* FROM \"sys\".\"_columns\" AS p UNION ALL SELECT t.* FROM \"tmp\".\"_columns\" AS t) AS columns;", 1, true, 0, 0 ] -[ "sys", "commented_function_signatures", "create view sys.commented_function_signatures as select f.id as fid, s.name as schema, f.name as fname, sys.function_type_keyword(f.type) as category, case when sf.function_id is null then false else true end as system, case rank() over (partition by f.id order by p.number asc) when 1 then f.name else null end as name, case rank() over (partition by f.id order by p.number desc) when 1 then c.remark else null end as remark, p.type, p.type_digits, p.type_scale, row_number() over (order by f.id, p.number) as line from sys.functions f join sys.comments c on f.id = c.id join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id left outer join sys.args p on f.id = p.func_id and p.inout = 1 order by line;", 1, true, 0, 0 ] -[ "sys", "comments", NULL, 0, true, 0, 0 ] -[ "sys", "db_user_info", NULL, 0, true, 0, 0 ] -[ "sys", "dependencies", NULL, 0, true, 0, 0 ] -[ "sys", "dependency_types", NULL, 0, true, 0, 1 ] -[ "sys", "describe_all_objects", "create view sys.describe_all_objects as select s.name as sname, t.name, s.name || '.' || t.name as fullname, cast(case t.type when 1 then 2 else 1 end as smallint) as ntype, (case when t.system then 'SYSTEM ' else '' end) || tt.table_type_name as type, t.system, c.remark as remark from sys._tables t left outer join sys.comments c on t.id = c.id left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id union all select s.name as sname, sq.name, s.name || '.' || sq.name as fullname, cast(4 as smallint) as ntype, 'SEQUENCE' as type, false as system, c.remark as remark from sys.sequences sq left outer join sys.comments c on sq.id = c.id left outer join sys.schemas s on sq.schema_id = s.id union all select distinct s.name as sname, f.name, s.name || '.' || f.name as fullname, cast(8 as smallint) as ntype, (case when sf.function_id is not null then 'SYSTEM ' else '' end) || sys.function_type_keywor d(f.type) as type, case when sf.function_id is null then false else true end as system, c.remark as remark from sys.functions f left outer join sys.comments c on f.id = c.id left outer join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id union all select s.name as sname, s.name, s.name as fullname, cast(16 as smallint) as ntype, (case when s.system then 'SYSTEM SCHEMA' else 'SCHEMA' end) as type, s.system, c.remark as remark from sys.schemas s left outer join sys.comments c on s.id = c.id order by system, name, sname, ntype;", 1, true, 0, 0 ] -[ "sys", "environment", "create view sys.environment as select * from sys.env();", 1, true, 0, 0 ] -[ "sys", "function_languages", NULL, 0, true, 0, 1 ] -[ "sys", "function_types", NULL, 0, true, 0, 1 ] -[ "sys", "functions", NULL, 0, true, 0, 0 ] -[ "sys", "geometry_columns", "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'));", 1, true, 0, 0 ] -[ "sys", "idxs", NULL, 0, true, 0, 0 ] -[ "sys", "index_types", NULL, 0, true, 0, 1 ] -[ "sys", "key_types", NULL, 0, true, 0, 1 ] -[ "sys", "keys", NULL, 0, true, 0, 0 ] -[ "sys", "keywords", NULL, 0, true, 0, 1 ] -[ "sys", "netcdf_attrs", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_dims", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_files", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_vardim", NULL, 0, true, 0, 0 ] -[ "sys", "netcdf_vars", NULL, 0, true, 0, 0 ] -[ "sys", "objects", NULL, 0, true, 0, 0 ] -[ "sys", "optimizers", "create view sys.optimizers as select * from sys.optimizers();", 1, true, 0, 0 ] -[ "sys", "privilege_codes", NULL, 0, true, 0, 1 ] -[ "sys", "privileges", NULL, 0, true, 0, 0 ] -[ "sys", "querylog_calls", "create view sys.querylog_calls as select * from sys.querylog_calls();", 1, true, 0, 0 ] -[ "sys", "querylog_catalog", "create view sys.querylog_catalog as select * from sys.querylog_catalog();", 1, true, 0, 0 ] -[ "sys", "querylog_history", "create view sys.querylog_history as select qd.*, ql.\"start\",ql.\"stop\", ql.arguments, ql.tuples, ql.run, ql.ship, ql.cpu, ql.io from sys.querylog_catalog() qd, sys.querylog_calls() ql where qd.id = ql.id and qd.owner = user;", 1, true, 0, 0 ] -[ "sys", "queue", "create view sys.queue as select * from sys.queue();", 1, true, 0, 0 ] -[ "sys", "rejects", "create view sys.rejects as select * from sys.rejects();", 1, true, 0, 0 ] -[ "sys", "schemas", NULL, 0, true, 0, 0 ] -[ "sys", "sequences", NULL, 0, true, 0, 0 ] -[ "sys", "sessions", "create view sys.sessions as select * from sys.sessions();", 1, true, 0, 0 ] -[ "sys", "spatial_ref_sys", NULL, 0, true, 0, 0 ] -[ "sys", "statistics", NULL, 0, true, 0, 0 ] -[ "sys", "storage", "create view sys.\"storage\" as select * from sys.\"storage\"();", 1, true, 0, 0 ] -[ "sys", "storagemodel", "create view sys.storagemodel as select * from sys.storagemodel();", 1, true, 0, 0 ] -[ "sys", "storagemodelinput", NULL, 0, true, 0, 0 ] -[ "sys", "systemfunctions", NULL, 0, true, 0, 0 ] -[ "sys", "table_types", NULL, 0, true, 0, 1 ] -[ "sys", "tables", "SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(CASE WHEN \"system\" THEN \"type\" + 10 /* system table/view */ ELSE (CASE WHEN \"commit_action\" = 0 THEN \"type\" /* table/view */ ELSE \"type\" + 20 /* global temp table */ END) END AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", CASE WHEN (NOT \"system\" AND \"commit_action\" > 0) THEN 1 ELSE 0 END AS \"temporary\" FROM \"sys\".\"_tables\" WHERE \"type\" <> 2 UNION ALL SELECT \"id\", \"name\", \"schema_id\", \"query\", CAST(\"type\" + 30 /* local temp table */ AS SMALLINT) AS \"type\", \"system\", \"commit_action\", \"access\", 1 AS \"temporary\" FROM \"tmp\".\"_tables\";", 1, true, 0, 0 ] -[ "sys", "tablestoragemodel", "create view sys.tablestoragemodel as select \"schema\",\"table\",max(count) as \"count\", sum(columnsize) as columnsize, sum(heapsize) as heapsize, sum(hashes) as hashes, sum(\"imprints\") as \"imprints\", sum(case when sorted = false then 8 * count else 0 end) as auxiliary from sys.storagemodel() group by \"schema\",\"table\";", 1, true, 0, 0 ] -[ "sys", "tracelog", "create view sys.tracelog as select * from sys.tracelog();", 1, true, 0, 0 ] -[ "sys", "triggers", NULL, 0, true, 0, 0 ] -[ "sys", "types", NULL, 0, true, 0, 0 ] -[ "sys", "user_role", NULL, 0, true, 0, 0 ] -[ "sys", "users", "SELECT u.\"name\" AS \"name\", ui.\"fullname\", ui.\"default_schema\" FROM db_users() AS u LEFT JOIN \"sys\".\"db_user_info\" AS ui ON u.\"name\" = ui.\"name\" ;", 1, true, 0, 0 ] -[ "tmp", "_columns", NULL, 0, true, 2, 0 ] -[ "tmp", "_tables", NULL, 0, true, 2, 0 ] -[ "tmp", "idxs", NULL, 0, true, 2, 0 ] -[ "tmp", "keys", NULL, 0, true, 2, 0 ] -[ "tmp", "objects", NULL, 0, true, 2, 0 ] -[ "tmp", "triggers", NULL, 0, true, 2, 0 ] +% varchar, varchar, varchar, clob, boolean, clob, clob # type +% 3, 29, 1545, 5, 5, 8, 8 # length +[ "bam", "export", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "files", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "pg", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "rg", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "bam", "sq", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "_columns", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "_tables", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "args", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "auths", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "columns", "SELECT * FROM (SELECT p.* FROM \"sys\".\"_columns\" AS p UNION ALL SELECT t.* FROM \"tmp\".\"_columns\" AS t) AS columns;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "commented_function_signatures", "create view sys.commented_function_signatures as select f.id as fid, s.name as schema, f.name as fname, sys.function_type_keyword(f.type) as category, case when sf.function_id is null then false else true end as system, case rank() over (partition by f.id order by p.number asc) when 1 then f.name else null end as name, case rank() over (partition by f.id order by p.number desc) when 1 then c.remark else null end as remark, p.type, p.type_digits, p.type_scale, row_number() over (order by f.id, p.number) as line from sys.functions f join sys.comments c on f.id = c.id join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id left outer join sys.args p on f.id = p.func_id and p.inout = 1 order by line;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "comments", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "db_user_info", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "dependencies", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "dependency_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "describe_all_objects", "create view sys.describe_all_objects as select s.name as sname, t.name, s.name || '.' || t.name as fullname, cast(case t.type when 1 then 2 else 1 end as smallint) as ntype, (case when t.system then 'SYSTEM ' else '' end) || tt.table_type_name as type, t.system, c.remark as remark from sys._tables t left outer join sys.comments c on t.id = c.id left outer join sys.schemas s on t.schema_id = s.id left outer join sys.table_types tt on t.type = tt.table_type_id union all select s.name as sname, sq.name, s.name || '.' || sq.name as fullname, cast(4 as smallint) as ntype, 'SEQUENCE' as type, false as system, c.remark as remark from sys.sequences sq left outer join sys.comments c on sq.id = c.id left outer join sys.schemas s on sq.schema_id = s.id union all select distinct s.name as sname, f.name, s.name || '.' || f.name as fullname, cast(8 as smallint) as ntype, (case when sf.function_id is not null then 'SYSTEM ' else '' end) || sys.function_type_keywor d(f.type) as type, case when sf.function_id is null then false else true end as system, c.remark as remark from sys.functions f left outer join sys.comments c on f.id = c.id left outer join sys.schemas s on f.schema_id = s.id left outer join sys.systemfunctions sf on f.id = sf.function_id union all select s.name as sname, s.name, s.name as fullname, cast(16 as smallint) as ntype, (case when s.system then 'SYSTEM SCHEMA' else 'SCHEMA' end) as type, s.system, c.remark as remark from sys.schemas s left outer join sys.comments c on s.id = c.id order by system, name, sname, ntype;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "environment", "create view sys.environment as select * from sys.env();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "function_languages", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "function_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "functions", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "geometry_columns", "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'));", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "idxs", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "index_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "key_types", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "keys", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "keywords", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "netcdf_attrs", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_dims", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_files", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_vardim", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "netcdf_vars", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "objects", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "optimizers", "create view sys.optimizers as select * from sys.optimizers();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "privilege_codes", NULL, "TABLE", true, "COMMIT", "READONLY" ] +[ "sys", "privileges", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_calls", "create view sys.querylog_calls as select * from sys.querylog_calls();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_catalog", "create view sys.querylog_catalog as select * from sys.querylog_catalog();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "querylog_history", "create view sys.querylog_history as select qd.*, ql.\"start\",ql.\"stop\", ql.arguments, ql.tuples, ql.run, ql.ship, ql.cpu, ql.io from sys.querylog_catalog() qd, sys.querylog_calls() ql where qd.id = ql.id and qd.owner = user;", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "queue", "create view sys.queue as select * from sys.queue();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "rejects", "create view sys.rejects as select * from sys.rejects();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "schemas", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "sequences", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "sessions", "create view sys.sessions as select * from sys.sessions();", "VIEW", true, "COMMIT", "WRITABLE" ] +[ "sys", "spatial_ref_sys", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "statistics", NULL, "TABLE", true, "COMMIT", "WRITABLE" ] +[ "sys", "storage", "create view sys.\"storage\" as select * from sys.\"storage\"();", "VIEW", true, "COMMIT", "WRITABLE" ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list