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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list