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

Reply via email to