Changeset: b7c474806ce8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7c474806ce8 Modified Files: sql/backends/monet5/sql_upgrades.c sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out.int128 Branch: default Log Message:
Fixed upgrades and tests approval diffs (truncated from 768 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 @@ -2264,7 +2264,7 @@ static str sql_update_default(Client c, mvc *sql, const char *prev_schema) { sql_table *t; - size_t bufsize = 4096, pos = 0; + size_t bufsize = 8192, pos = 0; char *err = NULL, *buf = GDKmalloc(bufsize); sql_schema *sys = mvc_bind_schema(sql, "sys"); @@ -2325,13 +2325,32 @@ sql_update_default(Client c, mvc *sql, c "create view sys.sessions as select * from sys.sessions();\n"); pos += snprintf(buf + pos, bufsize - pos, + "drop procedure sys.settimeout(bigint);\n" "drop procedure sys.settimeout(bigint,bigint);\n" - "create procedure sys.querytimeout(\"sessionid\" int, \"query\" bigint)\n" - "external name clients.querytimeout;\n" - "create procedure sys.sessiontimeout(\"sessionid\" int, \"query\" bigint)\n" - "external name clients.sessiontimeout;\n" + "drop procedure sys.setsession(bigint);\n" + + "create procedure sys.setoptimizer(\"optimizer\" string)\n" + " external name clients.setoptimizer;\n" + "create procedure sys.setquerytimeout(\"query\" bigint)\n" + " external name clients.setquerytimeout;\n" + "create procedure sys.setsessiontimeout(\"timeout\" bigint)\n" + " external name clients.setsessiontimeout;\n" + "create procedure sys.setworkerlimit(\"limit\" int)\n" + " external name clients.setworkerlimit;\n" + "create procedure sys.setmemorylimit(\"limit\" bigint)\n" + " external name clients.setmemorylimit;\n" + "create procedure sys.setoptimizer(\"sessionid\" int, \"optimizer\" string)\n" + " external name clients.setoptimizer;\n" + "create procedure sys.setquerytimeout(\"sessionid\" int, \"query\" bigint)\n" + " external name clients.setquerytimeout;\n" + "create procedure sys.setsessiontimeout(\"sessionid\" int, \"query\" bigint)\n" + " external name clients.setsessiontimeout;\n" + "create procedure sys.setworkerlimit(\"sessionid\" int, \"limit\" int)\n" + " external name clients.setworkerlimit;\n" + "create procedure sys.setmemorylimit(\"sessionid\" int, \"limit\" bigint)\n" + " external name clients.setmemorylimit;\n" "create procedure sys.stopsession(\"sessionid\" int)\n" - "external name clients.stopsession;\n"); + " external name clients.stopsession;\n"); pos += snprintf(buf + pos, bufsize - pos, "update sys.functions set system = true where schema_id = (select id from sys.schemas where name = 'sys')" @@ -2341,7 +2360,7 @@ sql_update_default(Client c, mvc *sql, c " and name = 'sessions';\n"); pos += snprintf(buf + pos, bufsize - pos, "update sys.functions set system = true where schema_id = (select id from sys.schemas where name = 'sys')" - " and name in ('querytimeout', 'sessiontimeout', 'stopsession') and type = %d;\n", (int) F_PROC); + " and name in ('setoptimizer', 'setquerytimeout', 'setsessiontimeout', 'setworkerlimit', 'setmemorylimit', 'setoptimizer', 'stopsession') and type = %d;\n", (int) F_PROC); /* 26_sysmon */ t = mvc_bind_table(sql, sys, "queue"); diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out --- a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out @@ -72,7 +72,7 @@ stdout of test 'crash_correlated_subquer [ "sys", 2000, "dependency_columns_on_types", true, 8 ] [ "sys", 2000, "dependency_functions_on_types", true, 6 ] [ "sys", 2000, "dependency_args_on_types", true, 8 ] -[ "sys", 2000, "sessions", true, 7 ] +[ "sys", 2000, "sessions", true, 9 ] [ "sys", 2000, "optimizers", true, 3 ] [ "sys", 2000, "environment", true, 2 ] [ "sys", 2000, "queue", true, 9 ] @@ -125,7 +125,7 @@ stdout of test 'crash_correlated_subquer [ "sys", 2000, "dependency_columns_on_types", true, 8 ] [ "sys", 2000, "dependency_functions_on_types", true, 6 ] [ "sys", 2000, "dependency_args_on_types", true, 8 ] -[ "sys", 2000, "sessions", true, 7 ] +[ "sys", 2000, "sessions", true, 9 ] [ "sys", 2000, "optimizers", true, 3 ] [ "sys", 2000, "environment", true, 2 ] [ "sys", 2000, "queue", true, 9 ] diff --git a/sql/test/BugTracker/Tests/explain.SF-1739353.stable.out b/sql/test/BugTracker/Tests/explain.SF-1739353.stable.out --- a/sql/test/BugTracker/Tests/explain.SF-1739353.stable.out +++ b/sql/test/BugTracker/Tests/explain.SF-1739353.stable.out @@ -29,17 +29,17 @@ Operation successful | mal | +========================================================================================================================+ | function user.s4_0():void; | -| X_1:void := querylog.define("explain select \"name\" from \"tables\"\n;":str, "sequential_pipe":str, 36:int); | +| X_1:void := querylog.define("explain select \"name\" from \"tables\"\n;":str, "sequential_pipe":str, 31:int); | | X_35:bat[:str] := bat.new(nil:str); | | X_4:int := sql.mvc(); | | X_18:bat[:sht] := sql.bind(X_4:int, "sys":str, "_tables":str, "type":str, 0:int); | | C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "_tables":str); | -| C_94:bat[:oid] := algebra.thetaselect(X_18:bat[:sht], C_5:bat[:oid], 2:sht, "!=":str); | +| C_88:bat[:oid] := algebra.thetaselect(X_18:bat[:sht], C_5:bat[:oid], 2:sht, "!=":str); | | (X_21:bat[:oid], X_22:bat[:sht]) := sql.bind(X_4:int, "sys":str, "_tables":str, "type":str, 2:int); | -| C_95:bat[:oid] := algebra.thetaselect(X_22:bat[:sht], nil:bat[:oid], 2:sht, "!=":str); | +| C_89:bat[:oid] := algebra.thetaselect(X_22:bat[:sht], nil:bat[:oid], 2:sht, "!=":str); | | X_20:bat[:sht] := sql.bind(X_4:int, "sys":str, "_tables":str, "type":str, 1:int); | -| C_97:bat[:oid] := algebra.thetaselect(X_20:bat[:sht], C_5:bat[:oid], 2:sht, "!=":str); | -| C_27:bat[:oid] := sql.subdelta(C_94:bat[:oid], C_5:bat[:oid], X_21:bat[:oid], C_95:bat[:oid], C_97:bat[:oid]); | +| C_91:bat[:oid] := algebra.thetaselect(X_20:bat[:sht], C_5:bat[:oid], 2:sht, "!=":str); | +| C_27:bat[:oid] := sql.subdelta(C_88:bat[:oid], C_5:bat[:oid], X_21:bat[:oid], C_89:bat[:oid], C_91:bat[:oid]); | | X_8:bat[:str] := sql.bind(X_4:int, "sys":str, "_tables":str, "name":str, 0:int); | | (X_13:bat[:oid], X_14:bat[:str]) := sql.bind(X_4:int, "sys":str, "_tables":str, "name":str, 2:int); | | X_11:bat[:str] := sql.bind(X_4:int, "sys":str, "_tables":str, "name":str, 1:int); | @@ -49,45 +49,40 @@ Operation successful | X_34:bat[:str] := algebra.projection(C_31:bat[:oid], X_33:bat[:str]); | | X_37:bat[:str] := bat.append(X_35:bat[:str], X_29:bat[:str], true:bit); | | X_39:bat[:str] := bat.append(X_37:bat[:str], X_34:bat[:str], true:bit); | -| X_41:bat[:str] := bat.new(nil:str); | -| X_46:bat[:int] := bat.new(nil:int); | -| X_44:bat[:int] := bat.new(nil:int); | -| X_43:bat[:str] := bat.new(nil:str); | -| X_42:bat[:str] := bat.new(nil:str); | -| X_47:bat[:str] := bat.append(X_41:bat[:str], ".tables":str); | -| X_49:bat[:str] := bat.append(X_42:bat[:str], "name":str); | -| X_51:bat[:str] := bat.append(X_43:bat[:str], "varchar":str); | -| X_53:bat[:int] := bat.append(X_44:bat[:int], 1024:int); | -| X_55:bat[:int] := bat.append(X_46:bat[:int], 0:int); | -| sql.resultSet(X_47:bat[:str], X_49:bat[:str], X_51:bat[:str], X_53:bat[:int], X_55:bat[:int], X_39:bat[:str]); | +| X_41:bat[:str] := bat.pack(".tables":str); | +| X_42:bat[:str] := bat.pack("name":str); | +| X_43:bat[:str] := bat.pack("varchar":str); | +| X_44:bat[:int] := bat.pack(1024:int); | +| X_45:bat[:int] := bat.pack(0:int); | +| sql.resultSet(X_41:bat[:str], X_42:bat[:str], X_43:bat[:str], X_44:bat[:int], X_45:bat[:int], X_39:bat[:str]); | | end user.s4_0; | -| #inline actions= 0 time=0 usec | +| #inline actions= 0 time=2 usec | | #remap actions= 0 time=2 usec | -| #costmodel actions= 1 time=1 usec | -| #coercion actions= 1 time=5 usec | -| #aliases actions= 1 time=5 usec | -| #evaluate actions= 0 time=4 usec | -| #emptybind actions= 0 time=1 usec | -| #pushselect actions= 5 time=22 usec | -| #aliases actions= 2 time=5 usec | -| #mergetable actions= 0 time=31 usec | -| #deadcode actions= 3 time=8 usec | -| #aliases actions= 0 time=0 usec | -| #constants actions= 2 time=5 usec | -| #commonTerms actions= 0 time=5 usec | -| #projectionpath actions= 0 time=3 usec | -| #deadcode actions= 0 time=7 usec | -| #reorder actions= 1 time=19 usec | -| #matpack actions= 0 time=0 usec | -| #multiplex actions= 0 time=1 usec | +| #costmodel actions= 1 time=3 usec | +| #coercion actions= 1 time=7 usec | +| #aliases actions= 1 time=8 usec | +| #evaluate actions= 0 time=7 usec | +| #emptybind actions= 0 time=0 usec | +| #pushselect actions= 5 time=34 usec | +| #aliases actions= 2 time=8 usec | +| #mergetable actions= 0 time=51 usec | +| #deadcode actions= 3 time=14 usec | +| #aliases actions= 0 time=1 usec | +| #constants actions= 2 time=8 usec | +| #commonTerms actions= 0 time=10 usec | +| #projectionpath actions= 0 time=4 usec | +| #deadcode actions= 0 time=11 usec | +| #reorder actions= 1 time=31 usec | +| #matpack actions= 0 time=1 usec | +| #multiplex actions= 0 time=2 usec | | #profiler actions= 1 time=1 usec | | #candidates actions= 1 time=1 usec | -| #deadcode actions= 0 time=6 usec | +| #deadcode actions= 0 time=11 usec | | #wlc actions= 0 time=0 usec | -| #garbagecollector actions= 1 time=18 usec | -| #total actions=27 time=228 usec | +| #garbagecollector actions= 1 time=54 usec | +| #total actions=27 time=413 usec | +------------------------------------------------------------------------------------------------------------------------+ -58 rows +53 rows # 15:11:18 > # 15:11:18 > "Done." diff --git a/sql/test/emptydb/Tests/check.stable.out b/sql/test/emptydb/Tests/check.stable.out --- a/sql/test/emptydb/Tests/check.stable.out +++ b/sql/test/emptydb/Tests/check.stable.out @@ -238,9 +238,12 @@ stdout of test 'check` in directory 'sql \dSf sys."right_shift_assign" \dSf sys."sessions" \dSf sys."setmasklen" +\dSf sys."setmemorylimit" +\dSf sys."setoptimizer" \dSf sys."setprinttimeout" -\dSf sys."setsession" -\dSf sys."settimeout" +\dSf sys."setquerytimeout" +\dSf sys."setsessiontimeout" +\dSf sys."setworkerlimit" \dSf sys."shpattach" \dSf sys."shpload" \dSf sys."shrink" @@ -341,6 +344,7 @@ stdout of test 'check` in directory 'sql \dSf sys."stddev_pop" \dSf sys."stddev_samp" \dSf sys."stop" +\dSf sys."stopsession" \dSf sys."storage" \dSf sys."storagemodelinit" \dSf sys."str_to_date" @@ -693,9 +697,12 @@ SYSTEM FUNCTION sys.scale_up SYSTEM FUNCTION sys.second SYSTEM FUNCTION sys.sessions SYSTEM FUNCTION sys.setmasklen +SYSTEM PROCEDURE sys.setmemorylimit +SYSTEM PROCEDURE sys.setoptimizer SYSTEM PROCEDURE sys.setprinttimeout -SYSTEM PROCEDURE sys.setsession -SYSTEM PROCEDURE sys.settimeout +SYSTEM PROCEDURE sys.setquerytimeout +SYSTEM PROCEDURE sys.setsessiontimeout +SYSTEM PROCEDURE sys.setworkerlimit SYSTEM PROCEDURE sys.shpattach SYSTEM PROCEDURE sys.shpload SYSTEM PROCEDURE sys.shrink @@ -816,6 +823,7 @@ SYSTEM FUNCTION sys.st_z SYSTEM AGGREGATE sys.stddev_pop SYSTEM AGGREGATE sys.stddev_samp SYSTEM PROCEDURE sys.stop +SYSTEM PROCEDURE sys.stopsession SYSTEM FUNCTION sys.storage SYSTEM PROCEDURE sys.storagemodelinit SYSTEM FUNCTION sys.str_to_date @@ -1081,6 +1089,7 @@ create function sys.optimizers () return create function sys.password_hash (username string) returns string external name sql.password; create procedure sys.pause(tag bigint) external name sql.sysmon_pause; create procedure sys.pause(tag int) external name sql.sysmon_pause; +create procedure sys.pause(tag tinyint) external name sql.sysmon_pause; create aggregate quantile(val bigint, q double) returns bigint external name "aggr"."quantile"; create aggregate quantile(val date, q double) returns date external name "aggr"."quantile"; create aggregate quantile(val decimal, q double) returns decimal external name "aggr"."quantile"; @@ -1106,23 +1115,31 @@ create procedure sys.querylog_disable() create procedure sys.querylog_empty() external name sql.querylog_empty; create procedure sys.querylog_enable() external name sql.querylog_enable; create procedure sys.querylog_enable(threshold integer) external name sql.querylog_enable; -create function sys.queue() returns table(qtag bigint, "user" string, started timestamp, estimate timestamp, progress int, status string, tag oid, query string) external name sql.sysmon_queue; +create function sys.queue() returns table(qtag bigint, sessionid int, "user" string, started timestamp, estimate timestamp, progress int, status string, tag oid, query string) external name sql.sysmon_queue; create function radians(d double) returns double return d*pi()/180; create function sys.rejects() returns table(rowid bigint, fldid int, "message" string, "input" string) external name sql.copy_rejects; create function sys.remote_table_credentials (tablename string) returns table ("uri" string, "username" string, "hash" string) external name sql.rt_credentials; create procedure sys.resume(tag bigint) external name sql.sysmon_resume; create procedure sys.resume(tag int) external name sql.sysmon_resume; +create procedure sys.resume(tag tinyint) external name sql.sysmon_resume; create procedure resume_log_flushing() external name sql.resume_log_flushing; create procedure reuse(sys string, tab string) external name sql.reuse; create function reverse(src string) returns string external name udf.reverse; create function "right_shift"(i1 inet, i2 inet) returns boolean external name inet.">>"; create function "right_shift_assign"(i1 inet, i2 inet) returns boolean external name inet.">>="; -create function sys.sessions() returns table("user" string, "login" timestamp, "sessiontimeout" bigint, "lastcommand" timestamp, "querytimeout" bigint, "active" bool) external name sql.sessions; +create function sys.sessions() returns table("sessionid" int, "user" string, "login" timestamp, "idle" timestamp, "optimizer" string, "sessiontimeout" bigint, "querytimeout" bigint, "workerlimit" int, "memorylimit" bigint) external name sql.sessions; create function "setmasklen" (p inet, mask int) returns inet external name inet."setmasklen"; +create procedure sys.setmemorylimit("limit" bigint) external name clients.setmemorylimit; +create procedure sys.setmemorylimit("sessionid" int, "limit" bigint) external name clients.setmemorylimit; +create procedure sys.setoptimizer("optimizer" string) external name clients.setoptimizer; +create procedure sys.setoptimizer("sessionid" int, "optimizer" string) external name clients.setoptimizer; create procedure sys.setprinttimeout("timeout" integer) external name clients.setprinttimeout; -create procedure sys.setsession("timeout" bigint) external name clients.setsession; -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.setquerytimeout("query" bigint) external name clients.setquerytimeout; +create procedure sys.setquerytimeout("sessionid" int, "query" bigint) external name clients.setquerytimeout; +create procedure sys.setsessiontimeout("sessionid" int, "query" bigint) external name clients.setsessiontimeout; +create procedure sys.setsessiontimeout("timeout" bigint) external name clients.setsessiontimeout; +create procedure sys.setworkerlimit("limit" int) external name clients.setworkerlimit; +create procedure sys.setworkerlimit("sessionid" int, "limit" int) external name clients.setworkerlimit; create procedure shpattach(fname string) external name shp.attach; create procedure shpload(fid integer) external name shp.import; create procedure shpload(fid integer, filter geometry) external name shp.import; @@ -1266,6 +1283,8 @@ create aggregate stddev_samp(val timesta create aggregate stddev_samp(val tinyint) returns double external name "aggr"."stdev"; create procedure sys.stop(tag bigint) external name sql.sysmon_stop; create procedure sys.stop(tag int) external name sql.sysmon_stop; +create procedure sys.stop(tag tinyint) external name sql.sysmon_stop; +create procedure sys.stopsession("sessionid" int) external name clients.stopsession; create function sys."storage"() returns table ("schema" varchar(1024), "table" varchar(1024), "column" varchar(1024), "type" varchar(1024), "mode" varchar(15), location varchar(1024), "count" bigint, typewidth int, columnsize bigint, heapsize bigint, hashes bigint, phash boolean, "imprints" bigint, sorted boolean, revsorted boolean, "unique" boolean, orderidx bigint) external name sql."storage"; create function sys."storage"(sname varchar(1024)) returns table ("schema" varchar(1024), "table" varchar(1024), "column" varchar(1024), "type" varchar(1024), "mode" varchar(15), location varchar(1024), "count" bigint, typewidth int, columnsize bigint, heapsize bigint, hashes bigint, phash boolean, "imprints" bigint, sorted boolean, revsorted boolean, "unique" boolean, orderidx bigint) external name sql."storage"; create function sys."storage"(sname varchar(1024), tname varchar(1024)) returns table ("schema" varchar(1024), "table" varchar(1024), "column" varchar(1024), "type" varchar(1024), "mode" varchar(15), location varchar(1024), "count" bigint, typewidth int, columnsize bigint, heapsize bigint, hashes bigint, phash boolean, "imprints" bigint, sorted boolean, revsorted boolean, "unique" boolean, orderidx bigint) external name sql."storage"; @@ -1900,13 +1919,14 @@ drop function pcre_replace(string, strin [ "querylog_history", "cpu", "int", 32, 0, NULL, true, 14, NULL ] [ "querylog_history", "io", "int", 32, 0, NULL, true, 15, NULL ] [ "queue", "qtag", "bigint", 64, 0, NULL, true, 0, NULL ] -[ "queue", "user", "clob", 0, 0, NULL, true, 1, NULL ] -[ "queue", "started", "timestamp", 7, 0, NULL, true, 2, NULL ] -[ "queue", "estimate", "timestamp", 7, 0, NULL, true, 3, NULL ] -[ "queue", "progress", "int", 32, 0, NULL, true, 4, NULL ] -[ "queue", "status", "clob", 0, 0, NULL, true, 5, NULL ] -[ "queue", "tag", "oid", 63, 0, NULL, true, 6, NULL ] -[ "queue", "query", "clob", 0, 0, NULL, true, 7, NULL ] +[ "queue", "sessionid", "int", 32, 0, NULL, true, 1, NULL ] +[ "queue", "user", "clob", 0, 0, NULL, true, 2, NULL ] +[ "queue", "started", "timestamp", 7, 0, NULL, true, 3, NULL ] +[ "queue", "estimate", "timestamp", 7, 0, NULL, true, 4, NULL ] +[ "queue", "progress", "int", 32, 0, NULL, true, 5, NULL ] +[ "queue", "status", "clob", 0, 0, NULL, true, 6, NULL ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list