Changeset: 027b57224e46 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=027b57224e46
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/scripts/17_temporal.sql
sql/scripts/75_storagemodel.sql
sql/scripts/80_statistics.sql
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/dump.stable.out
sql/test/testdb-upgrade-chain/Tests/dump.stable.out.Windows
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/dump.stable.out
sql/test/testdb-upgrade/Tests/dump.stable.out.Windows
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Jul2015
Log Message:
Fixed upgrade code, added schema to initialization scripts.
diffs (truncated from 1752 to 300 lines):
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -1166,45 +1166,30 @@ sql_update_hugeint(Client c)
"returns table (value hugeint)\n"
"external name generator.series;\n");
+ /* 39_analytics_hge.sql */
pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.stddev_samp(val hugeint)\n"
- "returns double\n"
- "external name aggr.stdev;\n");
+ "create aggregate sys.stddev_samp(val HUGEINT) returns
DOUBLE\n"
+ " external name \"aggr\".\"stdev\";\n"
+ "create aggregate sys.stddev_pop(val HUGEINT) returns
DOUBLE\n"
+ " external name \"aggr\".\"stdevp\";\n"
+ "create aggregate sys.var_samp(val HUGEINT) returns
DOUBLE\n"
+ " external name \"aggr\".\"variance\";\n"
+ "create aggregate sys.var_pop(val HUGEINT) returns
DOUBLE\n"
+ " external name \"aggr\".\"variancep\";\n"
+ "create aggregate sys.median(val HUGEINT) returns
HUGEINT\n"
+ " external name \"aggr\".\"median\";\n"
+ "create aggregate sys.quantile(val HUGEINT, q DOUBLE)
returns HUGEINT\n"
+ " external name \"aggr\".\"quantile\";\n"
+ "create aggregate sys.corr(e1 HUGEINT, e2 HUGEINT)
returns HUGEINT\n"
+ " external name \"aggr\".\"corr\";\n");
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.stddev_pop(val hugeint)\n"
- "returns double\n"
- "external name aggr.stdevp;\n");
-
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.var_samp(val hugeint)\n"
- "returns double\n"
- "external name aggr.variance;\n");
-
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.var_pop(val hugeint)\n"
- "returns double\n"
- "external name aggr.variancep;\n");
-
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.median(val hugeint)\n"
- "returns hugeint\n"
- "external name aggr.median;\n");
-
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.quantile(val hugeint, q double)\n"
- "returns hugeint\n"
- "external name aggr.quantile;\n");
-
- pos += snprintf(buf + pos, bufsize - pos,
- "create aggregate sys.corr(e1 hugeint, e2 hugeint)\n"
- "returns hugeint\n"
- "external name aggr.corr;\n");
-
+ /* 40_json_hge.sql */
pos += snprintf(buf + pos, bufsize - pos,
"create function json.filter(js json, name hugeint)\n"
"returns json\n"
- "external name json.filter;\n"
+ "external name json.filter;\n");
+
+ pos += snprintf(buf + pos, bufsize - pos,
"drop view sys.tablestoragemodel;\n"
"create view sys.tablestoragemodel\n"
"as select \"schema\",\"table\",max(count) as
\"count\",\n"
@@ -1261,7 +1246,7 @@ sql_update_hugeint(Client c)
static str
sql_update_jul2015(Client c)
{
- size_t bufsize = 10240, pos = 0;
+ size_t bufsize = 15360, pos = 0;
char *buf = GDKmalloc(bufsize), *err = NULL;
mvc *sql = ((backend*) c->sqlcontext)->mvc;
ValRecord *schvar = stack_get_var(sql, "current_schema");
@@ -1280,10 +1265,98 @@ sql_update_jul2015(Client c)
"create filter function sys.\"ilike\"(val string, pat
string, esc string) external name algebra.\"ilike\";\n"
"create filter function sys.\"ilike\"(val string, pat
string) external name algebra.\"ilike\";\n");
+ /* change to 13_date */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "create function sys.str_to_time(s string, format
string) returns time external name mtime.\"str_to_time\";\n"
+ "create function sys.time_to_str(d time, format string)
returns string external name mtime.\"time_to_str\";\n"
+ "create function sys.str_to_timestamp(s string, format
string) returns timestamp external name mtime.\"str_to_timestamp\";\n"
+ "create function sys.timestamp_to_str(d timestamp,
format string) returns string external name mtime.\"timestamp_to_str\";\n");
+
+ /* change to 15_querylog */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop view sys.querylog_history;\n"
+ "drop view sys.querylog_calls;\n"
+ "drop function sys.querylog_calls;\n"
+ "drop view sys.querylog_catalog;\n"
+ "drop function sys.querylog_catalog;\n"
+ "create function sys.querylog_catalog()\n"
+ "returns table(\n"
+ " id oid,\n"
+ " owner string,\n"
+ " defined timestamp,\n"
+ " query string,\n"
+ " pipe string,\n"
+ " \"plan\" string,\n"
+ " mal int,\n"
+ " optimize bigint\n"
+ ") external name sql.querylog_catalog;\n"
+ "create function sys.querylog_calls()\n"
+ "returns table(\n"
+ " id oid,\n"
+ " \"start\" timestamp,\n"
+ " \"stop\" timestamp,\n"
+ " arguments string,\n"
+ " tuples wrd,\n"
+ " run bigint,\n"
+ " ship bigint,\n"
+ " cpu int,\n"
+ " io int\n"
+ ") external name sql.querylog_calls;\n"
+ "create view sys.querylog_catalog as select * from
sys.querylog_catalog();\n"
+ "create view sys.querylog_calls as select * from
sys.querylog_calls();\n"
+ "create view sys.querylog_history as\n"
+ "select qd.*, ql.\"start\",ql.\"stop\", ql.arguments,
ql.tuples, ql.run, ql.ship, ql.cpu, ql.io\n"
+ "from sys.querylog_catalog() qd, sys.querylog_calls()
ql\n"
+ "where qd.id = ql.id and qd.owner = user;\n");
+
+
+ /* change to 16_tracelog */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop view sys.tracelog;\n"
+ "drop function sys.tracelog;\n"
+ "create function sys.tracelog()\n"
+ "returns table (\n"
+ " event integer,\n"
+ " clk varchar(20),\n"
+ " pc varchar(50),\n"
+ " thread int,\n"
+ " ticks bigint,\n"
+ " rrsMB bigint,\n"
+ " vmMB bigint,\n"
+ " reads bigint,\n"
+ " writes bigint,\n"
+ " minflt bigint,\n"
+ " majflt bigint,\n"
+ " nvcsw bigint,\n"
+ " stmt string\n"
+ " ) external name sql.dump_trace;\n"
+ "create view sys.tracelog as select * from
sys.tracelog();\n"
+ "create procedure sys.profiler_openstream(host string,
port int) external name profiler.\"openStream\";\n"
+ "create procedure sys.profiler_stethoscope(ticks int)
external name profiler.stethoscope;\n");
+
/* change to 17_temporal */
pos += snprintf(buf + pos, bufsize - pos,
+ "create function sys.\"epoch\"(sec BIGINT) returns
TIMESTAMP external name timestamp.\"epoch\";\n"
"create function sys.\"epoch\"(ts TIMESTAMP WITH TIME
ZONE) returns INT external name timestamp.\"epoch\";\n");
+ /* removal of 19_cluster.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop procedure sys.cluster1;\n"
+ "drop procedure sys.cluster2;\n");
+
+ /* new file 27_rejects.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "create function sys.rejects()\n"
+ "returns table(\n"
+ " rowid bigint,\n"
+ " fldid int,\n"
+ " \"message\" string,\n"
+ " \"input\" string\n"
+ ") external name sql.copy_rejects;\n"
+ "create view sys.rejects as select * from
sys.rejects();\n"
+ "create procedure sys.clearrejects()\n"
+ "external name sql.copy_rejects_clear;\n");
+
/* new file 51_sys_schema_extension.sql */
pos += snprintf(buf + pos, bufsize - pos,
"CREATE TABLE sys.keywords (\n"
@@ -1319,11 +1392,8 @@ sql_update_jul2015(Client c)
" table_type_name VARCHAR(25) NOT NULL UNIQUE);\n"
"INSERT INTO sys.table_types (table_type_id,
table_type_name) VALUES\n"
- "-- values from sys._tables.type: 0=Table, 1=View,
2=Generated, 3=Merge, etc.\n"
" (0, 'TABLE'), (1, 'VIEW'), /* (2, 'GENERATED'), */
(3, 'MERGE TABLE'), (4, 'STREAM TABLE'), (5, 'REMOTE TABLE'), (6, 'REPLICA
TABLE'),\n"
- "-- synthetically constructed system obj variants
(added 10 to sys._tables.type value when sys._tables.system is true).\n"
" (10, 'SYSTEM TABLE'), (11, 'SYSTEM VIEW'),\n"
- "-- synthetically constructed temporary variants (added
20 or 30 to sys._tables.type value depending on values of temporary and
commit_action).\n"
" (20, 'GLOBAL TEMPORARY TABLE'),\n"
" (30, 'LOCAL TEMPORARY TABLE');\n"
@@ -1332,25 +1402,68 @@ sql_update_jul2015(Client c)
" dependency_type_name VARCHAR(15) NOT NULL
UNIQUE);\n"
"INSERT INTO sys.dependency_types (dependency_type_id,
dependency_type_name) VALUES\n"
- "-- values taken from sql_catalog.h\n"
" (1, 'SCHEMA'), (2, 'TABLE'), (3, 'COLUMN'), (4,
'KEY'), (5, 'VIEW'), (6, 'USER'), (7, 'FUNCTION'), (8, 'TRIGGER'),\n"
- " (9, 'OWNER'), (10, 'INDEX'), (11, 'FKEY'), (12,
'SEQUENCE'), (13, 'PROCEDURE'), (14, 'BE_DROPPED');\n"
+ " (9, 'OWNER'), (10, 'INDEX'), (11, 'FKEY'), (12,
'SEQUENCE'), (13, 'PROCEDURE'), (14, 'BE_DROPPED');\n");
+
+ /* the attendant change to the sys.tables view */
+ pos += snprintf(buf + pos, bufsize - pos,
"drop view sys.tables;\n"
"create view sys.tables as 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\";\n");
/* change to 75_storagemodel */
pos += snprintf(buf + pos, bufsize - pos,
+ "drop view sys.tablestoragemodel;\n"
"drop view sys.storagemodel;\n"
- "drop view sys.tablestoragemodel;\n"
- "drop view sys.storage;\n"
"drop function sys.storagemodel;\n"
"drop function sys.imprintsize;\n"
"drop function sys.columnsize;\n"
+ "drop procedure sys.storagemodelinit;\n"
+ "drop view sys.storage;\n"
"drop function sys.storage;\n"
- "create function sys.storage()\n"
- "returns table (\"schema\" string, \"table\" string,
\"column\" string, \"type\" string, location string, \"count\" bigint,
typewidth int, columnsize bigint, heapsize bigint, hashes bigint, imprints
bigint, sorted boolean)\n"
- "external name sql.storage;\n"
- "create view sys.storage as select * from
sys.storage();\n"
+
+ "create function sys.\"storage\"()\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"mode\" string,\n"
+ " location string,\n"
+ " \"count\" bigint,\n"
+ " typewidth int,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " phash boolean,\n"
+ " imprints bigint,\n"
+ " sorted boolean\n"
+ ")\n"
+ "external name sql.\"storage\";\n"
+
+ "create view sys.\"storage\" as select * from
sys.\"storage\"();\n"
+
+ "create procedure sys.storagemodelinit()\n"
+ "begin\n"
+ " delete from sys.storagemodelinput;\n"
+ " insert into sys.storagemodelinput\n"
+ " select X.\"schema\", X.\"table\", X.\"column\",
X.\"type\", X.typewidth, X.count, 0, X.typewidth, false, X.sorted from
sys.\"storage\"() X;\n"
+ " update sys.storagemodelinput\n"
+ " set reference = true\n"
+ " where concat(concat(\"schema\",\"table\"),
\"column\") in (\n"
+ " SELECT concat( concat(\"fkschema\".\"name\",
\"fktable\".\"name\"), \"fkkeycol\".\"name\" )\n"
+ " FROM \"sys\".\"keys\" AS \"fkkey\",\n"
+ " \"sys\".\"objects\" AS \"fkkeycol\",\n"
+ " \"sys\".\"tables\" AS \"fktable\",\n"
+ " \"sys\".\"schemas\" AS \"fkschema\"\n"
+ " WHERE \"fktable\".\"id\" =
\"fkkey\".\"table_id\"\n"
+ " AND \"fkkey\".\"id\" = \"fkkeycol\".\"id\"\n"
+ " AND \"fkschema\".\"id\" =
\"fktable\".\"schema_id\"\n"
+ " AND \"fkkey\".\"rkey\" > -1);\n"
+ " update sys.storagemodelinput\n"
+ " set \"distinct\" = \"count\" -- assume all
distinct\n"
+ " where \"type\" = 'varchar' or \"type\"='clob';\n"
+ "end;\n"
+
"create function sys.columnsize(nme string, i bigint, d
bigint)\n"
"returns bigint\n"
"begin\n"
@@ -1372,6 +1485,7 @@ sql_update_jul2015(Client c)
" else return 8 * i;\n"
" end case;\n"
"end;\n"
+
"create function sys.imprintsize(i bigint, nme
string)\n"
"returns bigint\n"
"begin\n"
@@ -1391,6 +1505,7 @@ sql_update_jul2015(Client c)
" end if;\n"
" return 0;\n"
"end;\n"
+
"create function sys.storagemodel()\n"
"returns table (\n"
" \"schema\" string,\n"
@@ -1412,7 +1527,9 @@ sql_update_jul2015(Client c)
" I.sorted\n"
" from sys.storagemodelinput I;\n"
"end;\n"
+
"create view sys.storagemodel as select * from
sys.storagemodel();\n"
+
"create view sys.tablestoragemodel\n"
"as select \"schema\",\"table\",max(count) as
\"count\",\n"
" sum(columnsize) as columnsize,\n"
@@ -1424,85 +1541,33 @@ sql_update_jul2015(Client c)
/* change to 80_statistics */
pos += snprintf(buf + pos, bufsize - pos,
+ "drop all procedure sys.analyze;\n"
"drop table sys.statistics;\n"
"create table sys.statistics(\n"
- " \"column_id\" integer,\n"
- " \"type\" string,\n"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list