Changeset: 89effe1e7bc8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=89effe1e7bc8
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: Dec2016
Log Message:
add upgrade code for old sql.settimeout change
diffs (51 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
@@ -2192,6 +2192,32 @@ sql_update_dec2016_sp2(Client c, mvc *sq
return err; /* usually MAL_SUCCEED */
}
+static str
+sql_update_dec2016_sp3(Client c, mvc *sql)
+{
+ size_t bufsize = 2048, pos = 0;
+ char *buf = GDKmalloc(bufsize), *err = NULL;
+ char *schema = stack_get_string(sql, "current_schema");
+
+ pos += snprintf(buf + pos, bufsize - pos,
+ "set schema \"sys\";\n"
+ "drop procedure sys.settimeout(bigint);"
+ "drop procedure sys.settimeout(bigint,bigint);"
+ "drop procedure sys.setsession(bigint);"
+ "create procedure sys.settimeout(\"query\" bigint)
external name clients.settimeout;"
+ "create procedure sys.settimeout(\"query\" bigint,
\"session\" bigint) external name clients.settimeout;"
+ "create procedure sys.setsession(\"timeout\" bigint)
external name clients.setsession;");
+ 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)
{
@@ -2345,4 +2371,14 @@ SQLupgrades(Client c, mvc *m)
fprintf(stderr, "!%s\n", err);
GDKfree(err);
}
+
+ sql_find_subtype(&tp, "bigint", 0, 0);
+ if ((f = sql_bind_func(m->sa, s, "settimeout", &tp, NULL, F_PROC)) !=
NULL &&
+ /* The settimeout function used to be in the sql module */
+ f->func->sql && f->func->query && strcasestr(f->func->query,
"sql") != NULL) {
+ if ((err = sql_update_dec2016_sp3(c, m)) != NULL) {
+ fprintf(stderr, "!%s\n", err);
+ GDKfree(err);
+ }
+ }
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list