Changeset: 260580aabca7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=260580aabca7 Modified Files: sql/backends/monet5/sql_scenario.c sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out Branch: generator Log Message:
Fixed upgrade code (changeset 67e839c04d97). Stick it in the correct function, and approve output. diffs (220 lines): diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -575,8 +575,8 @@ update sys._tables\n\ static str sql_update_feb2013_sp3(Client c) { - char *buf = GDKmalloc(8192), *err = NULL; - size_t bufsize = 8192, pos = 0; + size_t bufsize = 4096, pos = 0; + char *buf = GDKmalloc(bufsize), *err = NULL; /* aggregates on type WRD */ pos += snprintf(buf + pos, bufsize - pos, "create aggregate sys.stddev_samp(val WRD) returns DOUBLE external name \"aggr\".\"stdev\";\n"); @@ -827,46 +827,6 @@ external name sql.analyze;\n"); pos += snprintf(buf + pos, bufsize - pos, "drop procedure gzctruncate;\n"); pos += snprintf(buf + pos, bufsize - pos, "drop procedure gzcexpand;\n"); - pos += snprintf(buf+pos, bufsize - pos, "create function sys.generate_series(first tinyint, last tinyint)" - "returns table (value tinyint)" - "external name generator.series;" - "" - "create function sys.generate_series(first tinyint, last tinyint, stepsize tinyint)" - "returns table (value tinyint)" - "external name generator.series;" - "" - "create function sys.generate_series(first int, last int)" - "returns table (value int)" - "external name generator.series;" - "" - "create function sys.generate_series(first int, last int, stepsize int)" - "returns table (value int)" - "external name generator.series;" - "" - "create function sys.generate_series(first bigint, last bigint)" - "returns table (value bigint)" - "external name generator.series;" - "" - "create function sys.generate_series(first bigint, last bigint, stepsize bigint)" - "returns table (value bigint)" - "external name generator.series;" - "" - "create function sys.generate_series(first real, last real, stepsize real)" - "returns table (value real)" - "external name generator.series;" - "" - "create function sys.generate_series(first double, last double, stepsize double)" - "returns table (value double)" - "external name generator.series;" - "" - "create function sys.generate_series(first decimal(10,2), last decimal(10,2), stepsize decimal(10,2))" - "returns table (value decimal(10,2))" - "external name generator.series;" - "" - "create function sys.generate_series(first timestamp, last timestamp, stepsize interval second)" - "returns table (value timestamp)" - "external name generator.series;"); - if (schema) { pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", schema); free(schema); @@ -1036,12 +996,53 @@ create aggregate json.tojsonarray( x dou pos += snprintf(buf + pos, bufsize - pos, "create view sys.storagemodel as select * from sys.storagemodel();\n"); pos += snprintf(buf + pos, bufsize - pos, "update sys._tables set system = true where name in ('storage','storagemodel','tablestoragemodel') and schema_id = (select id from sys.schemas where name = 'sys');\n"); + /* new file 90_generator.sql */ + pos += snprintf(buf+pos, bufsize - pos, "create function sys.generate_series(first tinyint, last tinyint)\n" + "returns table (value tinyint)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first tinyint, last tinyint, stepsize tinyint)\n" + "returns table (value tinyint)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first int, last int)\n" + "returns table (value int)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first int, last int, stepsize int)\n" + "returns table (value int)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first bigint, last bigint)\n" + "returns table (value bigint)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first bigint, last bigint, stepsize bigint)\n" + "returns table (value bigint)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first real, last real, stepsize real)\n" + "returns table (value real)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first double, last double, stepsize double)\n" + "returns table (value double)\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first decimal(10,2), last decimal(10,2), stepsize decimal(10,2))\n" + "returns table (value decimal(10,2))\n" + "external name generator.series;\n" + "\n" + "create function sys.generate_series(first timestamp, last timestamp, stepsize interval second)\n" + "returns table (value timestamp)\n" + "external name generator.series;\n"); + pos += snprintf(buf + pos, bufsize - pos, "insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('hashsize', 'imprintsize', 'isauuid', 'md5', 'uuid') and f.type = %d and f.schema_id = s.id and s.name = 'sys');\n", F_FUNC); pos += snprintf(buf + pos, bufsize - pos, - "insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'storage', 'storagemodel') and f.type = %d and f.schema_id = s.id and s.name = 'sys');\n", + "insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'generate_series', 'storage', 'storagemodel') and f.type = %d and f.schema_id = s.id and s.name = 'sys');\n", F_UNION); if (schema) { diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out @@ -109,8 +109,47 @@ create function sys.hashsize(b boolean, 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 auxillary from sys.storagemodel() group by "schema","table"; create view sys.storagemodel as select * from sys.storagemodel(); update sys._tables set system = true where name in ('storage','storagemodel','tablestoragemodel') and schema_id = (select id from sys.schemas where name = 'sys'); +create function sys.generate_series(first tinyint, last tinyint) +returns table (value tinyint) +external name generator.series; + +create function sys.generate_series(first tinyint, last tinyint, stepsize tinyint) +returns table (value tinyint) +external name generator.series; + +create function sys.generate_series(first int, last int) +returns table (value int) +external name generator.series; + +create function sys.generate_series(first int, last int, stepsize int) +returns table (value int) +external name generator.series; + +create function sys.generate_series(first bigint, last bigint) +returns table (value bigint) +external name generator.series; + +create function sys.generate_series(first bigint, last bigint, stepsize bigint) +returns table (value bigint) +external name generator.series; + +create function sys.generate_series(first real, last real, stepsize real) +returns table (value real) +external name generator.series; + +create function sys.generate_series(first double, last double, stepsize double) +returns table (value double) +external name generator.series; + +create function sys.generate_series(first decimal(10,2), last decimal(10,2), stepsize decimal(10,2)) +returns table (value decimal(10,2)) +external name generator.series; + +create function sys.generate_series(first timestamp, last timestamp, stepsize interval second) +returns table (value timestamp) +external name generator.series; insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('hashsize', 'imprintsize', 'isauuid', 'md5', 'uuid') and f.type = 1 and f.schema_id = s.id and s.name = 'sys'); -insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'storage', 'storagemodel') and f.type = 5 and f.schema_id = s.id and s.name = 'sys'); +insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'generate_series', 'storage', 'storagemodel') and f.type = 5 and f.schema_id = s.id and s.name = 'sys'); set schema "testschema"; #Interpreting bte as bit. diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out b/sql/test/testdb-upgrade/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out @@ -106,8 +106,47 @@ create function sys.hashsize(b boolean, 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 auxillary from sys.storagemodel() group by "schema","table"; create view sys.storagemodel as select * from sys.storagemodel(); update sys._tables set system = true where name in ('storage','storagemodel','tablestoragemodel') and schema_id = (select id from sys.schemas where name = 'sys'); +create function sys.generate_series(first tinyint, last tinyint) +returns table (value tinyint) +external name generator.series; + +create function sys.generate_series(first tinyint, last tinyint, stepsize tinyint) +returns table (value tinyint) +external name generator.series; + +create function sys.generate_series(first int, last int) +returns table (value int) +external name generator.series; + +create function sys.generate_series(first int, last int, stepsize int) +returns table (value int) +external name generator.series; + +create function sys.generate_series(first bigint, last bigint) +returns table (value bigint) +external name generator.series; + +create function sys.generate_series(first bigint, last bigint, stepsize bigint) +returns table (value bigint) +external name generator.series; + +create function sys.generate_series(first real, last real, stepsize real) +returns table (value real) +external name generator.series; + +create function sys.generate_series(first double, last double, stepsize double) +returns table (value double) +external name generator.series; + +create function sys.generate_series(first decimal(10,2), last decimal(10,2), stepsize decimal(10,2)) +returns table (value decimal(10,2)) +external name generator.series; + +create function sys.generate_series(first timestamp, last timestamp, stepsize interval second) +returns table (value timestamp) +external name generator.series; insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('hashsize', 'imprintsize', 'isauuid', 'md5', 'uuid') and f.type = 1 and f.schema_id = s.id and s.name = 'sys'); -insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'storage', 'storagemodel') and f.type = 5 and f.schema_id = s.id and s.name = 'sys'); +insert into sys.systemfunctions (select f.id from sys.functions f, sys.schemas s where f.name in ('bbp', 'generate_series', 'storage', 'storagemodel') and f.type = 5 and f.schema_id = s.id and s.name = 'sys'); set schema "testschema"; #Interpreting bte as bit. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list