Changeset: db95892817bd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=db95892817bd
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:
Fix upgrade from Oct2014.
diffs (197 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
@@ -1215,10 +1215,16 @@ sql_update_feb2015(Client c)
/* change to 75_storagemodel */
pos += snprintf(buf+pos, bufsize - pos, "drop view
sys.storagemodel;\n");
pos += snprintf(buf+pos, bufsize - pos, "drop view
sys.tablestoragemodel;\n");
+ pos += snprintf(buf+pos, bufsize - pos, "drop view sys.storage;\n");
pos += snprintf(buf+pos, bufsize - pos, "drop function
sys.storagemodel;\n");
pos += snprintf(buf+pos, bufsize - pos, "drop function
sys.imprintsize;\n");
pos += snprintf(buf+pos, bufsize - pos, "drop function
sys.columnsize;\n");
+ pos += snprintf(buf+pos, bufsize - pos, "drop function sys.storage;\n");
pos += snprintf(buf+pos, bufsize - pos, "\
+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.columnsize(nme string, i bigint, d bigint)\n\
returns bigint\n\
begin\n\
@@ -1353,9 +1359,9 @@ where qd.id = ql.id and qd.owner = user;
pos += snprintf(buf+pos, bufsize - pos, "create view sys.tracelog as
select * from sys.tracelog();\n");
- pos += snprintf(buf + pos, bufsize - pos, "insert into
sys.systemfunctions (select id from sys.functions where name in ('like',
'ilike', 'columnsize', 'imprintsize', 'storagemodel', 'querylog_calls',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys') and
id not in (select function_id from sys.systemfunctions));\n");
+ pos += snprintf(buf + pos, bufsize - pos, "insert into
sys.systemfunctions (select id from sys.functions where name in ('like',
'ilike', 'columnsize', 'imprintsize', 'storage', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));\n");
pos += snprintf(buf + pos, bufsize - pos, "delete from systemfunctions
where function_id not in (select id from functions);\n");
- pos += snprintf(buf + pos, bufsize - pos, "update sys._tables set
system = true where name in ('statistics', 'storagemodel', 'tablestoragemodel',
'querylog_calls', 'querylog_history', 'tracelog') and schema_id = (select id
from sys.schemas where name = 'sys');\n");
+ pos += snprintf(buf + pos, bufsize - pos, "update sys._tables set
system = true where name in ('statistics', 'storage', 'storagemodel',
'tablestoragemodel', 'querylog_calls', 'querylog_history', 'tracelog') and
schema_id = (select id from sys.schemas where name = 'sys');\n");
{
char *msg;
@@ -1369,6 +1375,8 @@ where qd.id = ql.id and qd.owner = user;
if ((s = mvc_bind_schema(sql, "sys")) != NULL) {
sql_table *t;
+ if ((t = mvc_bind_table(sql, s, "storage")) !=
NULL)
+ t->system = 0;
if ((t = mvc_bind_table(sql, s,
"storagemodel")) != NULL)
t->system = 0;
if ((t = mvc_bind_table(sql, s,
"tablestoragemodel")) != NULL)
@@ -1395,15 +1403,6 @@ where qd.id = ql.id and qd.owner = user;
}
assert(pos < bufsize);
- /* update the 75_storagemodel script */
- pos += snprintf(buf + pos, bufsize - pos, "drop function
sys.storage();\n");
- pos += snprintf(buf + pos, bufsize - pos,
- "create function sys.\"storage\"()"
- "returns table (\"schema\" string, \"table\" string, \"column\"
string, \"type\" string,"
- "\"mode\" string, location string, \"count\" bigint, typewidth
int, columnsize bigint, "
- "heapsize bigint, hashes bigint, phash boolean, imprints
bigint, sorted boolean)"
- "external name sql.\"storage\";\n"
- );
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, &buf, "update", 1, 0, NULL);
GDKfree(buf);
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
@@ -38,9 +38,15 @@ create filter function sys."ilike"(val s
create filter function sys."ilike"(val string, pat string) external name
algebra."ilike";
drop view sys.storagemodel;
drop view sys.tablestoragemodel;
+drop view sys.storage;
drop function sys.storagemodel;
drop function sys.imprintsize;
drop function sys.columnsize;
+drop function sys.storage;
+create function sys.storage()
+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)
+external name sql.storage;
+create view sys.storage as select * from sys.storage();
create function sys.columnsize(nme string, i bigint, d bigint)
returns bigint
begin
@@ -161,9 +167,9 @@ create function sys.tracelog()
stmt string
) external name sql.dump_trace;
create view sys.tracelog as select * from sys.tracelog();
-insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
+insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storage', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
delete from systemfunctions where function_id not in (select id from
functions);
-update sys._tables set system = true where name in ('statistics',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
+update sys._tables set system = true where name in ('statistics', 'storage',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
drop procedure sys.cluster1;
drop procedure sys.cluster2;
set schema "testschema";
diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -90,9 +90,15 @@ create filter function sys."ilike"(val s
create filter function sys."ilike"(val string, pat string) external name
algebra."ilike";
drop view sys.storagemodel;
drop view sys.tablestoragemodel;
+drop view sys.storage;
drop function sys.storagemodel;
drop function sys.imprintsize;
drop function sys.columnsize;
+drop function sys.storage;
+create function sys.storage()
+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)
+external name sql.storage;
+create view sys.storage as select * from sys.storage();
create function sys.columnsize(nme string, i bigint, d bigint)
returns bigint
begin
@@ -213,9 +219,9 @@ create function sys.tracelog()
stmt string
) external name sql.dump_trace;
create view sys.tracelog as select * from sys.tracelog();
-insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
+insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storage', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
delete from systemfunctions where function_id not in (select id from
functions);
-update sys._tables set system = true where name in ('statistics',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
+update sys._tables set system = true where name in ('statistics', 'storage',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
drop procedure sys.cluster1;
drop procedure sys.cluster2;
set schema "testschema";
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
@@ -18,6 +18,15 @@ stdout of test 'upgrade` in directory 's
Ready.
Running database upgrade commands:
set schema "sys";
+CREATE FUNCTION "left_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME
inet."<<";
+CREATE FUNCTION "right_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME
inet.">>";
+CREATE FUNCTION "left_shift_assign"(i1 inet, i2 inet) RETURNS boolean EXTERNAL
NAME inet."<<=";
+CREATE FUNCTION "right_shift_assign"(i1 inet, i2 inet) RETURNS boolean
EXTERNAL NAME inet.">>=";
+insert into sys.systemfunctions (select id from sys.functions where name in
('left_shift', 'right_shift', 'left_shift_assign', 'right_shift_assign') and
schema_id = (select id from sys.schemas where name = 'sys') and id not in
(select function_id from sys.systemfunctions));
+set schema "testschema";
+
+Running database upgrade commands:
+set schema "sys";
drop filter function sys."like";
create filter function sys."like"(val string, pat string, esc string) external
name algebra."like";
create filter function sys."like"(val string, pat string) external name
algebra."like";
@@ -26,9 +35,15 @@ create filter function sys."ilike"(val s
create filter function sys."ilike"(val string, pat string) external name
algebra."ilike";
drop view sys.storagemodel;
drop view sys.tablestoragemodel;
+drop view sys.storage;
drop function sys.storagemodel;
drop function sys.imprintsize;
drop function sys.columnsize;
+drop function sys.storage;
+create function sys.storage()
+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)
+external name sql.storage;
+create view sys.storage as select * from sys.storage();
create function sys.columnsize(nme string, i bigint, d bigint)
returns bigint
begin
@@ -149,9 +164,9 @@ create function sys.tracelog()
stmt string
) external name sql.dump_trace;
create view sys.tracelog as select * from sys.tracelog();
-insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
+insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storage', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
delete from systemfunctions where function_id not in (select id from
functions);
-update sys._tables set system = true where name in ('statistics',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
+update sys._tables set system = true where name in ('statistics', 'storage',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
drop procedure sys.cluster1;
drop procedure sys.cluster2;
set schema "testschema";
diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
b/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
@@ -87,9 +87,15 @@ create filter function sys."ilike"(val s
create filter function sys."ilike"(val string, pat string) external name
algebra."ilike";
drop view sys.storagemodel;
drop view sys.tablestoragemodel;
+drop view sys.storage;
drop function sys.storagemodel;
drop function sys.imprintsize;
drop function sys.columnsize;
+drop function sys.storage;
+create function sys.storage()
+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)
+external name sql.storage;
+create view sys.storage as select * from sys.storage();
create function sys.columnsize(nme string, i bigint, d bigint)
returns bigint
begin
@@ -210,9 +216,9 @@ create function sys.tracelog()
stmt string
) external name sql.dump_trace;
create view sys.tracelog as select * from sys.tracelog();
-insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
+insert into sys.systemfunctions (select id from sys.functions where name in
('like', 'ilike', 'columnsize', 'imprintsize', 'storage', 'storagemodel',
'querylog_calls', 'tracelog') and schema_id = (select id from sys.schemas where
name = 'sys') and id not in (select function_id from sys.systemfunctions));
delete from systemfunctions where function_id not in (select id from
functions);
-update sys._tables set system = true where name in ('statistics',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
+update sys._tables set system = true where name in ('statistics', 'storage',
'storagemodel', 'tablestoragemodel', 'querylog_calls', 'querylog_history',
'tracelog') and schema_id = (select id from sys.schemas where name = 'sys');
drop procedure sys.cluster1;
drop procedure sys.cluster2;
set schema "testschema";
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list