Changeset: b9863611e6b5 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b9863611e6b5 Modified Files: sql/backends/monet5/sql_upgrades.c sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.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.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.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.int128 Branch: default Log Message:
Upgrade for wlcr. diffs (truncated from 742 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 @@ -853,6 +853,69 @@ sql_update_jul2017_sp2(Client c) return err; /* usually NULL */ } +static str +sql_update_default(Client c, mvc *sql) +{ + size_t bufsize = 10000, pos = 0; + char *buf = GDKmalloc(bufsize), *err = NULL; + char *schema = stack_get_string(sql, "current_schema"); + + if( buf== NULL) + throw(SQL, "sql_update_jul2017", SQLSTATE(HY001) MAL_MALLOC_FAIL); + pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n"); + + /* 60_wlcr.sql */ + pos += snprintf(buf + pos, bufsize - pos, + "create procedure master()\n" + "external name wlc.master;\n" + "create procedure master(path string)\n" + "external name wlc.master;\n" + "create procedure stopmaster()\n" + "external name wlc.stopmaster;\n" + "create procedure masterbeat( duration int)\n" + "external name wlc.\"setmasterbeat\";\n" + "create function masterClock() returns string\n" + "external name wlc.\"getmasterclock\";\n" + "create function masterTick() returns bigint\n" + "external name wlc.\"getmastertick\";\n" + "create procedure replicate()\n" + "external name wlr.replicate;\n" + "create procedure replicate(pointintime timestamp)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string, pointintime timestamp)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string, id tinyint)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string, id smallint)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string, id integer)\n" + "external name wlr.replicate;\n" + "create procedure replicate(dbname string, id bigint)\n" + "external name wlr.replicate;\n" + "create procedure replicabeat(duration integer)\n" + "external name wlr.\"setreplicabeat\";\n" + "create function replicaClock() returns string\n" + "external name wlr.\"getreplicaclock\";\n" + "create function replicaTick() returns bigint\n" + "external name wlr.\"getreplicatick\";\n" + "insert into sys.systemfunctions (select id from sys.functions where name in ('master', 'stopmaster', 'masterbeat', 'masterclock', 'mastertick', 'replicate', 'replicabeat', 'replicaclock', 'replicatick') 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 sys.systemfunctions where function_id not in (select id from sys.functions);\n"); + + if (schema) + pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", schema); + + assert(pos < bufsize); + printf("Running database upgrade commands:\n%s\n", buf); + err = SQLstatementIntern(c, &buf, "update", 1, 0, NULL); + GDKfree(buf); + return err; /* usually MAL_SUCCEED */ +} + void SQLupgrades(Client c, mvc *m) { @@ -945,4 +1008,12 @@ SQLupgrades(Client c, mvc *m) fprintf(stderr, "!%s\n", err); freeException(err); } + + if (!sql_bind_func(m->sa, s, "master", NULL, NULL, F_PROC)) { + if ((err = sql_update_default(c, m)) != NULL) { + fprintf(stderr, "!%s\n", err); + freeException(err); + } + } + } 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 @@ -36,9 +36,50 @@ GRANT SELECT ON sys.privilege_codes TO P GRANT EXECUTE ON FUNCTION sys.environment() TO PUBLIC; GRANT SELECT ON sys.environment TO PUBLIC; -# 13:33:15 > -# 13:33:15 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-32047" "--port=35791" -# 13:33:15 > +Running database upgrade commands: +set schema "sys"; +create procedure master() +external name wlc.master; +create procedure master(path string) +external name wlc.master; +create procedure stopmaster() +external name wlc.stopmaster; +create procedure masterbeat( duration int) +external name wlc."setmasterbeat"; +create function masterClock() returns string +external name wlc."getmasterclock"; +create function masterTick() returns bigint +external name wlc."getmastertick"; +create procedure replicate() +external name wlr.replicate; +create procedure replicate(pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string) +external name wlr.replicate; +create procedure replicate(dbname string, pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string, id tinyint) +external name wlr.replicate; +create procedure replicate(dbname string, id smallint) +external name wlr.replicate; +create procedure replicate(dbname string, id integer) +external name wlr.replicate; +create procedure replicate(dbname string, id bigint) +external name wlr.replicate; +create procedure replicabeat(duration integer) +external name wlr."setreplicabeat"; +create function replicaClock() returns string +external name wlr."getreplicaclock"; +create function replicaTick() returns bigint +external name wlr."getreplicatick"; +insert into sys.systemfunctions (select id from sys.functions where name in ('master', 'stopmaster', 'masterbeat', 'masterclock', 'mastertick', 'replicate', 'replicabeat', 'replicaclock', 'replicatick') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); +delete from sys.systemfunctions where function_id not in (select id from sys.functions); +set schema "sys"; + + +# 13:50:24 > +# 13:50:24 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-7858" "--port=33066" +# 13:50:24 > #select 1; % .L2 # table_name diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out @@ -36,9 +36,50 @@ GRANT SELECT ON sys.privilege_codes TO P GRANT EXECUTE ON FUNCTION sys.environment() TO PUBLIC; GRANT SELECT ON sys.environment TO PUBLIC; -# 13:36:30 > -# 13:36:30 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-23413" "--port=30143" -# 13:36:30 > +Running database upgrade commands: +set schema "sys"; +create procedure master() +external name wlc.master; +create procedure master(path string) +external name wlc.master; +create procedure stopmaster() +external name wlc.stopmaster; +create procedure masterbeat( duration int) +external name wlc."setmasterbeat"; +create function masterClock() returns string +external name wlc."getmasterclock"; +create function masterTick() returns bigint +external name wlc."getmastertick"; +create procedure replicate() +external name wlr.replicate; +create procedure replicate(pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string) +external name wlr.replicate; +create procedure replicate(dbname string, pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string, id tinyint) +external name wlr.replicate; +create procedure replicate(dbname string, id smallint) +external name wlr.replicate; +create procedure replicate(dbname string, id integer) +external name wlr.replicate; +create procedure replicate(dbname string, id bigint) +external name wlr.replicate; +create procedure replicabeat(duration integer) +external name wlr."setreplicabeat"; +create function replicaClock() returns string +external name wlr."getreplicaclock"; +create function replicaTick() returns bigint +external name wlr."getreplicatick"; +insert into sys.systemfunctions (select id from sys.functions where name in ('master', 'stopmaster', 'masterbeat', 'masterclock', 'mastertick', 'replicate', 'replicabeat', 'replicaclock', 'replicatick') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); +delete from sys.systemfunctions where function_id not in (select id from sys.functions); +set schema "sys"; + + +# 14:06:25 > +# 14:06:25 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-32766" "--port=33975" +# 14:06:25 > #select 1; % .L2 # table_name diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 @@ -5361,6 +5361,46 @@ GRANT SELECT ON sys.privilege_codes TO P GRANT EXECUTE ON FUNCTION sys.environment() TO PUBLIC; GRANT SELECT ON sys.environment TO PUBLIC; +Running database upgrade commands: +set schema "sys"; +create procedure master() +external name wlc.master; +create procedure master(path string) +external name wlc.master; +create procedure stopmaster() +external name wlc.stopmaster; +create procedure masterbeat( duration int) +external name wlc."setmasterbeat"; +create function masterClock() returns string +external name wlc."getmasterclock"; +create function masterTick() returns bigint +external name wlc."getmastertick"; +create procedure replicate() +external name wlr.replicate; +create procedure replicate(pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string) +external name wlr.replicate; +create procedure replicate(dbname string, pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string, id tinyint) +external name wlr.replicate; +create procedure replicate(dbname string, id smallint) +external name wlr.replicate; +create procedure replicate(dbname string, id integer) +external name wlr.replicate; +create procedure replicate(dbname string, id bigint) +external name wlr.replicate; +create procedure replicabeat(duration integer) +external name wlr."setreplicabeat"; +create function replicaClock() returns string +external name wlr."getreplicaclock"; +create function replicaTick() returns bigint +external name wlr."getreplicatick"; +insert into sys.systemfunctions (select id from sys.functions where name in ('master', 'stopmaster', 'masterbeat', 'masterclock', 'mastertick', 'replicate', 'replicabeat', 'replicaclock', 'replicatick') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); +delete from sys.systemfunctions where function_id not in (select id from sys.functions); +set schema "sys"; + # 16:53:35 > # 16:53:35 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-30908" "--port=39660" diff --git a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 @@ -36,9 +36,50 @@ GRANT SELECT ON sys.privilege_codes TO P GRANT EXECUTE ON FUNCTION sys.environment() TO PUBLIC; GRANT SELECT ON sys.environment TO PUBLIC; -# 15:26:18 > -# 15:26:18 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21187" "--port=38946" -# 15:26:18 > +Running database upgrade commands: +set schema "sys"; +create procedure master() +external name wlc.master; +create procedure master(path string) +external name wlc.master; +create procedure stopmaster() +external name wlc.stopmaster; +create procedure masterbeat( duration int) +external name wlc."setmasterbeat"; +create function masterClock() returns string +external name wlc."getmasterclock"; +create function masterTick() returns bigint +external name wlc."getmastertick"; +create procedure replicate() +external name wlr.replicate; +create procedure replicate(pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string) +external name wlr.replicate; +create procedure replicate(dbname string, pointintime timestamp) +external name wlr.replicate; +create procedure replicate(dbname string, id tinyint) +external name wlr.replicate; +create procedure replicate(dbname string, id smallint) +external name wlr.replicate; +create procedure replicate(dbname string, id integer) +external name wlr.replicate; +create procedure replicate(dbname string, id bigint) +external name wlr.replicate; +create procedure replicabeat(duration integer) +external name wlr."setreplicabeat"; +create function replicaClock() returns string +external name wlr."getreplicaclock"; +create function replicaTick() returns bigint +external name wlr."getreplicatick"; +insert into sys.systemfunctions (select id from sys.functions where name in ('master', 'stopmaster', 'masterbeat', 'masterclock', 'mastertick', 'replicate', 'replicabeat', 'replicaclock', 'replicatick') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); +delete from sys.systemfunctions where function_id not in (select id from sys.functions); +set schema "sys"; + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list