Changeset: e918bf130576 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e918bf130576 Added Files: sql/test/sys-schema/Tests/update_statistics.sql sql/test/sys-schema/Tests/update_statistics.stable.err sql/test/sys-schema/Tests/update_statistics.stable.out Modified Files: sql/test/sys-schema/Tests/All sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.sql sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.stable.out Branch: default Log Message:
Add data integrity checks for new system tables: table_partitions, range_partitions and value_partitions. Add missing NOT NULL data integrity checks for system tables: storagemodelinput, sequences and user_role. Add script to populate sys.statistics before doing all the integrity checks. diffs (truncated from 612 to 300 lines): diff --git a/sql/test/sys-schema/Tests/All b/sql/test/sys-schema/Tests/All --- a/sql/test/sys-schema/Tests/All +++ b/sql/test/sys-schema/Tests/All @@ -1,3 +1,5 @@ +update_statistics + check_PrimaryKey_uniqueness check_AlternateKey_uniqueness check_ForeignKey_referential_integrity diff --git a/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql b/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql --- a/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql +++ b/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql @@ -1,5 +1,6 @@ -- check all standard sys (and tmp) tables on Alternate Key uniqueness -- All queries should return NO rows (so no duplicates found). + SELECT COUNT(*) AS duplicates, name FROM sys.schemas GROUP BY name HAVING COUNT(*) > 1; SELECT COUNT(*) AS duplicates, table_type_name FROM sys.table_types GROUP BY table_type_name HAVING COUNT(*) > 1; SELECT COUNT(*) AS duplicates, schema_id, name FROM sys._tables GROUP BY schema_id, name HAVING COUNT(*) > 1; @@ -46,3 +47,8 @@ SELECT COUNT(*) AS duplicates, name FROM SELECT COUNT(*) AS duplicates, def FROM sys.optimizers GROUP BY def HAVING COUNT(*) > 1; +-- new tables introduced in 2019 +SELECT COUNT(*) AS duplicates, table_id, column_id FROM sys.table_partitions WHERE "column_id" IS NOT NULL GROUP BY table_id, column_id HAVING COUNT(*) >1; +SELECT COUNT(*) AS duplicates, table_id, "expression" FROM sys.table_partitions WHERE "expression" IS NOT NULL GROUP BY table_id, "expression" HAVING COUNT(*) >1; +SELECT COUNT(*) AS duplicates, table_id, partition_id, maximum FROM sys.range_partitions GROUP BY table_id, partition_id, maximum HAVING COUNT(*) >1; + diff --git a/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out b/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out --- a/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out +++ b/sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out @@ -184,6 +184,21 @@ Ready. % duplicates, def # name % bigint, clob # type % 1, 0 # length +#SELECT COUNT(*) AS duplicates, table_id, column_id FROM sys.table_partitions WHERE "column_id" IS NOT NULL GROUP BY table_id, column_id HAVING COUNT(*) >1; +% sys.L3, sys.table_partitions, sys.table_partitions # table_name +% duplicates, table_id, column_id # name +% bigint, int, int # type +% 1, 1, 1 # length +#SELECT COUNT(*) AS duplicates, table_id, "expression" FROM sys.table_partitions WHERE "expression" IS NOT NULL GROUP BY table_id, "expression" HAVING COUNT(*) >1; +% sys.L3, sys.table_partitions, sys.table_partitions # table_name +% duplicates, table_id, expression # name +% bigint, int, varchar # type +% 1, 1, 0 # length +#SELECT COUNT(*) AS duplicates, table_id, partition_id, maximum FROM sys.range_partitions GROUP BY table_id, partition_id, maximum HAVING COUNT(*) >1; +% sys.L3, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% duplicates, table_id, partition_id, maximum # name +% bigint, int, int, varchar # type +% 1, 1, 1, 0 # length # 16:31:36 > # 16:31:36 > "Done." diff --git a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql --- a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql +++ b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql @@ -1,5 +1,6 @@ -- Check all standard sys (and tmp) tables on Referential Integrity -- All queries should return NO rows (so no invalid references found). + SELECT * FROM sys.schemas WHERE authorization NOT IN (SELECT id FROM sys.auths); SELECT * FROM sys.schemas WHERE owner NOT IN (SELECT id FROM sys.auths); @@ -138,3 +139,14 @@ SELECT schema, table, rowcount, columnsi SELECT schema, table, rowcount, columnsize, heapsize, hashsize, imprintsize, orderidxsize FROM sys.tablestoragemodel WHERE table NOT IN (SELECT name FROM sys._tables UNION ALL SELECT name FROM tmp._tables); SELECT schema, table, rowcount, columnsize, heapsize, hashsize, imprintsize, orderidxsize FROM sys.tablestoragemodel WHERE (schema, table) NOT IN (SELECT sch.name, tbl.name FROM sys.schemas AS sch JOIN sys.tables AS tbl ON sch.id = tbl.schema_id); +-- new tables introduced in 2019 +SELECT * FROM sys.table_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +SELECT * FROM sys.table_partitions WHERE "column_id" IS NOT NULL AND "column_id" NOT IN (SELECT id FROM sys._columns); +SELECT * FROM sys.table_partitions WHERE "type" NOT IN (SELECT id FROM sys.types); + +SELECT * FROM sys.range_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +SELECT * FROM sys.range_partitions WHERE "partition_id" NOT IN (SELECT id FROM sys.table_partitions); + +SELECT * FROM sys.value_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +SELECT * FROM sys.value_partitions WHERE "partition_id" NOT IN (SELECT id FROM sys.table_partitions); + diff --git a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out --- a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out +++ b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out @@ -524,6 +524,41 @@ Ready. % schema, table, rowcount, columnsize, heapsize, hashsize, imprintsize, orderidxsize # name % varchar, varchar, bigint, bigint, bigint, bigint, bigint, bigint # type % 0, 0, 1, 1, 1, 1, 1, 1 # length +#SELECT * FROM sys.table_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +% sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions # table_name +% id, table_id, column_id, expression, type # name +% int, int, int, varchar, tinyint # type +% 1, 1, 1, 0, 1 # length +#SELECT * FROM sys.table_partitions WHERE "column_id" IS NOT NULL AND "column_id" NOT IN (SELECT id FROM sys._columns); +% sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions # table_name +% id, table_id, column_id, expression, type # name +% int, int, int, varchar, tinyint # type +% 1, 1, 1, 0, 1 # length +#SELECT * FROM sys.table_partitions WHERE "type" NOT IN (SELECT id FROM sys.types); +% sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions, sys.table_partitions # table_name +% id, table_id, column_id, expression, type # name +% int, int, int, varchar, tinyint # type +% 1, 1, 1, 0, 1 # length +#SELECT * FROM sys.range_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% table_id, partition_id, minimum, maximum, with_nulls # name +% int, int, varchar, varchar, boolean # type +% 1, 1, 0, 0, 5 # length +#SELECT * FROM sys.range_partitions WHERE "partition_id" NOT IN (SELECT id FROM sys.table_partitions); +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% table_id, partition_id, minimum, maximum, with_nulls # name +% int, int, varchar, varchar, boolean # type +% 1, 1, 0, 0, 5 # length +#SELECT * FROM sys.value_partitions WHERE "table_id" NOT IN (SELECT id FROM sys._tables); +% sys.value_partitions, sys.value_partitions, sys.value_partitions # table_name +% table_id, partition_id, value # name +% int, int, varchar # type +% 1, 1, 0 # length +#SELECT * FROM sys.value_partitions WHERE "partition_id" NOT IN (SELECT id FROM sys.table_partitions); +% sys.value_partitions, sys.value_partitions, sys.value_partitions # table_name +% table_id, partition_id, value # name +% int, int, varchar # type +% 1, 1, 0 # length # 12:34:37 > # 12:34:37 > "Done." diff --git a/sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql b/sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql --- a/sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql +++ b/sql/test/sys-schema/Tests/check_MaxStrLength_violations.sql @@ -1,4 +1,5 @@ -- Character string data max length violation checks +-- All queries should return NO rows (so no violations found). -- query used to synthesize bam specific SQLs for checking data length violations: -- select s.name as sch_nm, t.name as tbl_nm, t.type, c.name as col_nm, c.type, c.type_digits diff --git a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql --- a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql +++ b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql @@ -1,3 +1,5 @@ +-- All queries should return NO rows (so no violations found). + -- query to fecth all columns (of all tables in all schemas) which are specified as NOT NULL -- select s.name, t.name, c.name -- from columns c join tables t on c.table_id = t.id join schemas s on t.schema_id = s.id @@ -36,6 +38,17 @@ SELECT "privilege_code_name", * FROM "sy -- moved to: geom_tables_checks.sql -- SELECT "srid", * FROM "sys"."spatial_ref_sys" WHERE "srid" IS NULL; +SELECT "atomwidth", * FROM "sys"."storagemodelinput" WHERE "atomwidth" IS NULL; +SELECT "column", * FROM "sys"."storagemodelinput" WHERE "column" IS NULL; +SELECT "count", * FROM "sys"."storagemodelinput" WHERE "count" IS NULL; +SELECT "distinct", * FROM "sys"."storagemodelinput" WHERE "distinct" IS NULL; +SELECT "isacolumn", * FROM "sys"."storagemodelinput" WHERE "isacolumn" IS NULL; +SELECT "reference", * FROM "sys"."storagemodelinput" WHERE "reference" IS NULL; +SELECT "schema", * FROM "sys"."storagemodelinput" WHERE "schema" IS NULL; +SELECT "table", * FROM "sys"."storagemodelinput" WHERE "table" IS NULL; +SELECT "type", * FROM "sys"."storagemodelinput" WHERE "type" IS NULL; +SELECT "typewidth", * FROM "sys"."storagemodelinput" WHERE "typewidth" IS NULL; + SELECT "function_id", * FROM "sys"."systemfunctions" WHERE "function_id" IS NULL; SELECT "table_type_id", * FROM "sys"."table_types" WHERE "table_type_id" IS NULL; @@ -125,12 +138,28 @@ SELECT "privileges", * FROM "sys"."privi SELECT "grantor", * FROM "sys"."privileges" WHERE "grantor" IS NULL; SELECT "grantable", * FROM "sys"."privileges" WHERE "grantable" IS NULL; +SELECT "maximum", * FROM "sys"."range_partitions" WHERE "maximum" IS NULL; +SELECT "minimum", * FROM "sys"."range_partitions" WHERE "minimum" IS NULL; +SELECT "partition_id", * FROM "sys"."range_partitions" WHERE "partition_id" IS NULL; +SELECT "table_id", * FROM "sys"."range_partitions" WHERE "table_id" IS NULL; +SELECT "with_nulls", * FROM "sys"."range_partitions" WHERE "with_nulls" IS NULL; + SELECT "id", * FROM "sys"."schemas" WHERE "id" IS NULL; SELECT "name", * FROM "sys"."schemas" WHERE "name" IS NULL; SELECT "authorization", * FROM "sys"."schemas" WHERE "authorization" IS NULL; SELECT "owner", * FROM "sys"."schemas" WHERE "owner" IS NULL; SELECT "system", * FROM "sys"."schemas" WHERE "system" IS NULL; +SELECT "cacheinc", * FROM "sys"."sequences" WHERE "cacheinc" IS NULL; +SELECT "cycle", * FROM "sys"."sequences" WHERE "cycle" IS NULL; +SELECT "id", * FROM "sys"."sequences" WHERE "id" IS NULL; +SELECT "increment", * FROM "sys"."sequences" WHERE "increment" IS NULL; +SELECT "maxvalue", * FROM "sys"."sequences" WHERE "maxvalue" IS NULL; +SELECT "minvalue", * FROM "sys"."sequences" WHERE "minvalue" IS NULL; +SELECT "name", * FROM "sys"."sequences" WHERE "name" IS NULL; +SELECT "schema_id", * FROM "sys"."sequences" WHERE "schema_id" IS NULL; +SELECT "start", * FROM "sys"."sequences" WHERE "start" IS NULL; + -- moved to: geom_tables_checks.sql -- SELECT "auth_name", * FROM "sys"."spatial_ref_sys" WHERE "auth_name" IS NULL; -- SELECT "auth_srid", * FROM "sys"."spatial_ref_sys" WHERE "auth_srid" IS NULL; @@ -150,6 +179,15 @@ SELECT "maxval", * FROM "sys"."statistic SELECT "sorted", * FROM "sys"."statistics" WHERE "sorted" IS NULL; SELECT "revsorted", * FROM "sys"."statistics" WHERE "revsorted" IS NULL; +SELECT "sorted", * FROM "sys"."storagemodelinput" WHERE "sorted" IS NULL; +SELECT "unique", * FROM "sys"."storagemodelinput" WHERE "unique" IS NULL; + +SELECT "id", * FROM "sys"."table_partitions" WHERE "id" IS NULL; +SELECT "table_id", * FROM "sys"."table_partitions" WHERE "table_id" IS NULL; +SELECT "type", * FROM "sys"."table_partitions" WHERE "type" IS NULL; +-- either column_id or expression must be populated +SELECT "column_id", "expression", * FROM "sys"."table_partitions" WHERE "column_id" IS NULL AND "expression" IS NULL; + SELECT "id", * FROM "sys"."triggers" WHERE "id" IS NULL; SELECT "name", * FROM "sys"."triggers" WHERE "name" IS NULL; SELECT "table_id", * FROM "sys"."triggers" WHERE "table_id" IS NULL; @@ -167,3 +205,10 @@ SELECT "radix", * FROM "sys"."types" WHE SELECT "eclass", * FROM "sys"."types" WHERE "eclass" IS NULL; SELECT "schema_id", * FROM "sys"."types" WHERE "schema_id" IS NULL; +SELECT "login_id", * FROM "sys"."user_role" WHERE "login_id" IS NULL; +SELECT "role_id", * FROM "sys"."user_role" WHERE "role_id" IS NULL; + +SELECT "partition_id", * FROM "sys"."value_partitions" WHERE "partition_id" IS NULL; +SELECT "table_id", * FROM "sys"."value_partitions" WHERE "table_id" IS NULL; +SELECT "value", * FROM "sys"."value_partitions" WHERE "value" IS NULL; + diff --git a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out --- a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out +++ b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out @@ -104,6 +104,56 @@ Ready. % privilege_code_name, privilege_code_id, privilege_code_name # name % varchar, int, varchar # type % 0, 1, 0 # length +#SELECT "atomwidth", * FROM "sys"."storagemodelinput" WHERE "atomwidth" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% atomwidth, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% int, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 1, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "column", * FROM "sys"."storagemodelinput" WHERE "column" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% column, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% varchar, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "count", * FROM "sys"."storagemodelinput" WHERE "count" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% count, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% bigint, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 1, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "distinct", * FROM "sys"."storagemodelinput" WHERE "distinct" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% distinct, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% bigint, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 1, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "isacolumn", * FROM "sys"."storagemodelinput" WHERE "isacolumn" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% isacolumn, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% boolean, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 5, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "reference", * FROM "sys"."storagemodelinput" WHERE "reference" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% reference, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% boolean, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 5, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "schema", * FROM "sys"."storagemodelinput" WHERE "schema" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% schema, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% varchar, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "table", * FROM "sys"."storagemodelinput" WHERE "table" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% table, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% varchar, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "type", * FROM "sys"."storagemodelinput" WHERE "type" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% type, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% varchar, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 0, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length +#SELECT "typewidth", * FROM "sys"."storagemodelinput" WHERE "typewidth" IS NULL; +% sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput, sys.storagemodelinput # table_name +% typewidth, schema, table, column, type, typewidth, count, distinct, atomwidth, reference, sorted, unique, isacolumn # name +% int, varchar, varchar, varchar, varchar, int, bigint, bigint, int, boolean, boolean, boolean, boolean # type +% 1, 0, 0, 0, 0, 1, 1, 1, 1, 5, 5, 5, 5 # length #SELECT "function_id", * FROM "sys"."systemfunctions" WHERE "function_id" IS NULL; % sys.systemfunctions, sys.systemfunctions # table_name % function_id, function_id # name @@ -424,6 +474,31 @@ Ready. % grantable, obj_id, auth_id, privileges, grantor, grantable # name % int, int, int, int, int, int # type % 1, 1, 1, 1, 1, 1 # length +#SELECT "maximum", * FROM "sys"."range_partitions" WHERE "maximum" IS NULL; +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% maximum, table_id, partition_id, minimum, maximum, with_nulls # name +% varchar, int, int, varchar, varchar, boolean # type +% 0, 1, 1, 0, 0, 5 # length +#SELECT "minimum", * FROM "sys"."range_partitions" WHERE "minimum" IS NULL; +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% minimum, table_id, partition_id, minimum, maximum, with_nulls # name +% varchar, int, int, varchar, varchar, boolean # type +% 0, 1, 1, 0, 0, 5 # length +#SELECT "partition_id", * FROM "sys"."range_partitions" WHERE "partition_id" IS NULL; +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% partition_id, table_id, partition_id, minimum, maximum, with_nulls # name +% int, int, int, varchar, varchar, boolean # type +% 1, 1, 1, 0, 0, 5 # length +#SELECT "table_id", * FROM "sys"."range_partitions" WHERE "table_id" IS NULL; +% sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions, sys.range_partitions # table_name +% table_id, table_id, partition_id, minimum, maximum, with_nulls # name +% int, int, int, varchar, varchar, boolean # type +% 1, 1, 1, 0, 0, 5 # length +#SELECT "with_nulls", * FROM "sys"."range_partitions" WHERE "with_nulls" IS NULL; _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
