Changeset: 5104fbfac107 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5104fbfac107
Modified Files:
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Oct2020
Log Message:
Approvals.
diffs (truncated from 5599 to 300 lines):
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -4415,6 +4415,282 @@ create aggregate quantile(val INTERVAL D
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTERVAL DAY, DOUBLE) TO PUBLIC;
update sys.functions set system = true where system <> true and name in
('median', 'quantile') and schema_id = (select id from sys.schemas where name =
'sys') and type = 3;
+create function sys.generate_series(first timestamp, "limit" timestamp,
stepsize interval day) returns table (value timestamp)
+ external name "generator"."series";
+update sys.functions set system = true where system <> true and name in
('generate_series') and schema_id = (select id from sys.schemas where name =
'sys') and type = 5;
+set schema "sys";
+
+Running database upgrade commands:
+set schema sys;
+drop view if exists sys.tablestoragemodel;
+drop view if exists sys.storagemodel cascade;
+drop function if exists sys.storagemodel() cascade;
+drop function if exists sys.imprintsize(varchar(1024), bigint) cascade;
+drop function if exists sys.hashsize(boolean, bigint) cascade;
+drop function if exists sys.columnsize(varchar(1024), bigint) cascade;
+drop function if exists sys.heapsize(varchar(1024), bigint, bigint, int)
cascade;
+drop procedure if exists sys.storagemodelinit();
+drop table if exists sys.storagemodelinput cascade;
+drop view if exists sys."storage" cascade;
+drop function if exists sys."storage"(varchar(1024), varchar(1024),
varchar(1024)) cascade;
+drop function if exists sys."storage"(varchar(1024), varchar(1024)) cascade;
+drop function if exists sys."storage"(varchar(1024)) cascade;
+drop function if exists sys."storage"() cascade;
+create function sys."storage"()
+returns table (
+ "schema" varchar(1024),
+ "table" varchar(1024),
+ "column" varchar(1024),
+ "type" varchar(1024),
+ "mode" varchar(15),
+ location varchar(1024),
+ "count" bigint,
+ typewidth int,
+ columnsize bigint,
+ heapsize bigint,
+ hashes bigint,
+ phash boolean,
+ "imprints" bigint,
+ sorted boolean,
+ revsorted boolean,
+ "unique" boolean,
+ orderidx bigint
+)
+external name sql."storage";
+create view sys."storage" as
+select * from sys."storage"()
+ where ("schema", "table") in (
+ SELECT sch."name", tbl."name"
+ FROM sys."tables" AS tbl JOIN sys."schemas" AS sch ON tbl.schema_id =
sch.id
+ WHERE tbl."system" = FALSE)
+order by "schema", "table", "column";
+create view sys."tablestorage" as
+select "schema", "table",
+ max("count") as "rowcount",
+ count(*) as "storages",
+ sum(columnsize) as columnsize,
+ sum(heapsize) as heapsize,
+ sum(hashes) as hashsize,
+ sum("imprints") as imprintsize,
+ sum(orderidx) as orderidxsize
+ from sys."storage"
+group by "schema", "table"
+order by "schema", "table";
+create view sys."schemastorage" as
+select "schema",
+ count(*) as "storages",
+ sum(columnsize) as columnsize,
+ sum(heapsize) as heapsize,
+ sum(hashes) as hashsize,
+ sum("imprints") as imprintsize,
+ sum(orderidx) as orderidxsize
+ from sys."storage"
+group by "schema"
+order by "schema";
+create function sys."storage"(sname varchar(1024))
+returns table (
+ "schema" varchar(1024),
+ "table" varchar(1024),
+ "column" varchar(1024),
+ "type" varchar(1024),
+ "mode" varchar(15),
+ location varchar(1024),
+ "count" bigint,
+ typewidth int,
+ columnsize bigint,
+ heapsize bigint,
+ hashes bigint,
+ phash boolean,
+ "imprints" bigint,
+ sorted boolean,
+ revsorted boolean,
+ "unique" boolean,
+ orderidx bigint
+)
+external name sql."storage";
+create function sys."storage"(sname varchar(1024), tname varchar(1024))
+returns table (
+ "schema" varchar(1024),
+ "table" varchar(1024),
+ "column" varchar(1024),
+ "type" varchar(1024),
+ "mode" varchar(15),
+ location varchar(1024),
+ "count" bigint,
+ typewidth int,
+ columnsize bigint,
+ heapsize bigint,
+ hashes bigint,
+ phash boolean,
+ "imprints" bigint,
+ sorted boolean,
+ revsorted boolean,
+ "unique" boolean,
+ orderidx bigint
+)
+external name sql."storage";
+create function sys."storage"(sname varchar(1024), tname varchar(1024), cname
varchar(1024))
+returns table (
+ "schema" varchar(1024),
+ "table" varchar(1024),
+ "column" varchar(1024),
+ "type" varchar(1024),
+ "mode" varchar(15),
+ location varchar(1024),
+ "count" bigint,
+ typewidth int,
+ columnsize bigint,
+ heapsize bigint,
+ hashes bigint,
+ phash boolean,
+ "imprints" bigint,
+ sorted boolean,
+ revsorted boolean,
+ "unique" boolean,
+ orderidx bigint
+)
+external name sql."storage";
+create table sys.storagemodelinput(
+ "schema" varchar(1024) NOT NULL,
+ "table" varchar(1024) NOT NULL,
+ "column" varchar(1024) NOT NULL,
+ "type" varchar(1024) NOT NULL,
+ typewidth int NOT NULL,
+ "count" bigint NOT NULL,
+ "distinct" bigint NOT NULL,
+ atomwidth int NOT NULL,
+ reference boolean NOT NULL DEFAULT FALSE,
+ sorted boolean,
+ "unique" boolean,
+ isacolumn boolean NOT NULL DEFAULT TRUE
+);
+create procedure sys.storagemodelinit()
+begin
+ delete from sys.storagemodelinput;
+ insert into sys.storagemodelinput
+ select "schema", "table", "column", "type", typewidth, "count",
+ case when ("unique" or "type" IN ('varchar', 'char', 'clob',
'json', 'url', 'blob', 'geometry', 'geometrya'))
+ then "count" else 0 end,
+ case when "count" > 0 and heapsize >= 8192 and "type" in
('varchar', 'char', 'clob', 'json', 'url')
+ then cast((heapsize - 8192) / "count" as bigint)
+ when "count" > 0 and heapsize >= 32 and "type" in ('blob',
'geometry', 'geometrya')
+ then cast((heapsize - 32) / "count" as bigint)
+ else typewidth end,
+ FALSE, case sorted when true then true else false end,
"unique", TRUE
+ from sys."storage";
+ update sys.storagemodelinput
+ set reference = TRUE
+ where ("schema", "table", "column") in (
+ SELECT fkschema."name", fktable."name", fkkeycol."name"
+ FROM sys."keys" AS fkkey,
+ sys."objects" AS fkkeycol,
+ sys."tables" AS fktable,
+ sys."schemas" AS fkschema
+ WHERE fktable."id" = fkkey."table_id"
+ AND fkkey."id" = fkkeycol."id"
+ AND fkschema."id" = fktable."schema_id"
+ AND fkkey."rkey" > -1 );
+ update sys.storagemodelinput
+ set isacolumn = FALSE
+ where ("schema", "table", "column") NOT in (
+ SELECT sch."name", tbl."name", col."name"
+ FROM sys."schemas" AS sch,
+ sys."tables" AS tbl,
+ sys."columns" AS col
+ WHERE sch."id" = tbl."schema_id"
+ AND tbl."id" = col."table_id");
+end;
+create function sys.columnsize(tpe varchar(1024), count bigint)
+returns bigint
+begin
+ if tpe in ('tinyint', 'boolean')
+ then return count;
+ end if;
+ if tpe = 'smallint'
+ then return 2 * count;
+ end if;
+ if tpe in ('int', 'real', 'date', 'time', 'timetz', 'sec_interval',
'day_interval', 'month_interval')
+ then return 4 * count;
+ end if;
+ if tpe in ('bigint', 'double', 'timestamp', 'timestamptz', 'inet',
'oid')
+ then return 8 * count;
+ end if;
+ if tpe in ('hugeint', 'decimal', 'uuid', 'mbr')
+ then return 16 * count;
+ end if;
+ if tpe in ('varchar', 'char', 'clob', 'json', 'url')
+ then return 4 * count;
+ end if;
+ if tpe in ('blob', 'geometry', 'geometrya')
+ then return 8 * count;
+ end if;
+ return 8 * count;
+end;
+create function sys.heapsize(tpe varchar(1024), count bigint, distincts
bigint, avgwidth int)
+returns bigint
+begin
+ if tpe in ('varchar', 'char', 'clob', 'json', 'url')
+ then return 8192 + ((avgwidth + 8) * distincts);
+ end if;
+ if tpe in ('blob', 'geometry', 'geometrya')
+ then return 32 + (avgwidth * count);
+ end if;
+ return 0;
+end;
+create function sys.hashsize(b boolean, count bigint)
+returns bigint
+begin
+ if b = true
+ then return 8 * count;
+ end if;
+ return 0;
+end;
+create function sys.imprintsize(tpe varchar(1024), count bigint)
+returns bigint
+begin
+ if tpe in ('tinyint', 'boolean')
+ then return cast(0.2 * count as bigint);
+ end if;
+ if tpe = 'smallint'
+ then return cast(0.4 * count as bigint);
+ end if;
+ if tpe in ('int', 'real', 'date', 'time', 'timetz', 'sec_interval',
'day_interval', 'month_interval')
+ then return cast(0.8 * count as bigint);
+ end if;
+ if tpe in ('bigint', 'double', 'timestamp', 'timestamptz', 'inet',
'oid')
+ then return cast(1.6 * count as bigint);
+ end if;
+ if tpe in ('hugeint', 'decimal', 'uuid', 'mbr')
+ then return cast(3.2 * count as bigint);
+ end if;
+ return 0;
+end;
+create view sys.storagemodel as
+select "schema", "table", "column", "type", "count",
+ sys.columnsize("type", "count") as columnsize,
+ sys.heapsize("type", "count", "distinct", "atomwidth") as heapsize,
+ sys.hashsize("reference", "count") as hashsize,
+ case when isacolumn then sys.imprintsize("type", "count") else 0 end as
imprintsize,
+ case when (isacolumn and not sorted) then cast(8 * "count" as bigint)
else 0 end as orderidxsize,
+ sorted, "unique", isacolumn
+ from sys.storagemodelinput
+order by "schema", "table", "column";
+create view sys.tablestoragemodel as
+select "schema", "table",
+ max("count") as "rowcount",
+ count(*) as "storages",
+ sum(sys.columnsize("type", "count")) as columnsize,
+ sum(sys.heapsize("type", "count", "distinct", "atomwidth")) as heapsize,
+ sum(sys.hashsize("reference", "count")) as hashsize,
+ sum(case when isacolumn then sys.imprintsize("type", "count") else 0
end) as imprintsize,
+ sum(case when (isacolumn and not sorted) then cast(8 * "count" as
bigint) else 0 end) as orderidxsize
+ from sys.storagemodelinput
+group by "schema", "table"
+order by "schema", "table";
+update sys._tables set system = true where schema_id = (select id from
sys.schemas where name = 'sys') and name in ('storage', 'tablestorage',
'schemastorage', 'storagemodelinput', 'storagemodel', 'tablestoragemodel');
+update sys.functions set system = true where system <> true and schema_id =
(select id from sys.schemas where name = 'sys') and name in ('storage') and
type = 5;
+update sys.functions set system = true where system <> true and schema_id =
(select id from sys.schemas where name = 'sys') and name in
('storagemodelinit') and type = 2;
+update sys.functions set system = true where system <> true and schema_id =
(select id from sys.schemas where name = 'sys') and name in ('columnsize',
'heapsize', 'hashsize', 'imprintsize') and type = 1;
set schema "sys";
# MonetDB/SQL module loaded
diff --git
a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
@@ -4415,6 +4415,282 @@ create aggregate quantile(val INTERVAL D
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTERVAL DAY, DOUBLE) TO PUBLIC;
update sys.functions set system = true where system <> true and name in
('median', 'quantile') and schema_id = (select id from sys.schemas where name =
'sys') and type = 3;
+create function sys.generate_series(first timestamp, "limit" timestamp,
stepsize interval day) returns table (value timestamp)
+ external name "generator"."series";
+update sys.functions set system = true where system <> true and name in
('generate_series') and schema_id = (select id from sys.schemas where name =
'sys') and type = 5;
+set schema "sys";
+
+Running database upgrade commands:
+set schema sys;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list