Changeset: 430a2787322c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=430a2787322c Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 sql/backends/monet5/sql.c sql/backends/monet5/sql.mal sql/backends/monet5/sql_upgrades.c sql/scripts/22_clients.sql sql/scripts/26_sysmon.sql sql/test/BugTracker-2014/Tests/queueError.Bug-3604.sql sql/test/BugTracker-2014/Tests/queueError.Bug-3604.stable.out sql/test/Users/Tests/sessioncontrol.sql sql/test/Users/Tests/sessioncontrol.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/miscellaneous/Tests/deallocate.sql sql/test/miscellaneous/Tests/deallocate.stable.out sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.sql sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out.int128 Branch: default Log Message:
Cleaned system view arguments names: - "user" is a SQL reserved keyword, so changed the respective parameter at sys.queue, sys.sessions and sys.prepared_statements to "username". - Changed sys.prepared_statements_args view arguments to match sys.args. Added "inout" column and "number" representing if the argument is from output or input and it's number in the list respectively. - Approved tests. diffs (truncated from 1027 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -11758,7 +11758,7 @@ stdout of test 'MAL-signatures` in direc [ "sql", "percent_rank", "pattern sql.percent_rank(b:any_1, p:bit, o:bit):dbl ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "sql", "prelude", "pattern sql.prelude():void ", "SQLprelude;", "" ] [ "sql", "prepared_statements", "pattern sql.prepared_statements() (sessionid:bat[:int], user:bat[:str], statementid:bat[:int], statement:bat[:str], created:bat[:timestamp]) ", "SQLsession_prepared_statements;", "Available prepared statements in the current session" ] -[ "sql", "prepared_statements_args", "pattern sql.prepared_statements_args() (statementid:bat[:int], parameter:bat[:bit], type:bat[:str], digits:bat[:int], scale:bat[:int], schema:bat[:str], table:bat[:str], column:bat[:str]) ", "SQLsession_prepared_statements_args;", "Available prepared statements' arguments in the current session" ] +[ "sql", "prepared_statements_args", "pattern sql.prepared_statements_args() (statementid:bat[:int], type:bat[:str], digits:bat[:int], scale:bat[:int], inout:bat[:bte], number:bat[:int], schema:bat[:str], table:bat[:str], column:bat[:str]) ", "SQLsession_prepared_statements_args;", "Available prepared statements' arguments in the current session" ] [ "sql", "prod", "pattern sql.prod(b:bte, s:lng, e:lng):lng ", "SQLprod;", "return the product of groups" ] [ "sql", "prod", "pattern sql.prod(b:dbl, s:lng, e:lng):dbl ", "SQLprod;", "return the product of groups" ] [ "sql", "prod", "pattern sql.prod(b:flt, s:lng, e:lng):dbl ", "SQLprod;", "return the product of groups" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -16164,7 +16164,7 @@ stdout of test 'MAL-signatures` in direc [ "sql", "percent_rank", "pattern sql.percent_rank(b:any_1, p:bit, o:bit):dbl ", "SQLpercent_rank;", "return the percentage into the total number of groups for each row" ] [ "sql", "prelude", "pattern sql.prelude():void ", "SQLprelude;", "" ] [ "sql", "prepared_statements", "pattern sql.prepared_statements() (sessionid:bat[:int], user:bat[:str], statementid:bat[:int], statement:bat[:str], created:bat[:timestamp]) ", "SQLsession_prepared_statements;", "Available prepared statements in the current session" ] -[ "sql", "prepared_statements_args", "pattern sql.prepared_statements_args() (statementid:bat[:int], parameter:bat[:bit], type:bat[:str], digits:bat[:int], scale:bat[:int], schema:bat[:str], table:bat[:str], column:bat[:str]) ", "SQLsession_prepared_statements_args;", "Available prepared statements' arguments in the current session" ] +[ "sql", "prepared_statements_args", "pattern sql.prepared_statements_args() (statementid:bat[:int], type:bat[:str], digits:bat[:int], scale:bat[:int], inout:bat[:bte], number:bat[:int], schema:bat[:str], table:bat[:str], column:bat[:str]) ", "SQLsession_prepared_statements_args;", "Available prepared statements' arguments in the current session" ] [ "sql", "prod", "pattern sql.prod(b:bte, s:lng, e:lng):hge ", "SQLprod;", "return the product of groups" ] [ "sql", "prod", "pattern sql.prod(b:bte, s:lng, e:lng):lng ", "SQLprod;", "return the product of groups" ] [ "sql", "prod", "pattern sql.prod(b:dbl, s:lng, e:lng):dbl ", "SQLprod;", "return the product of groups" ] diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -5363,15 +5363,16 @@ bailout: str SQLsession_prepared_statements_args(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { - BAT *statementid, *parameter, *type, *digits, *scale, *schema, *table, *column; + BAT *statementid, *type, *digits, *isinout, *number, *scale, *schema, *table, *column; bat *sid = getArgReference_bat(stk,pci,0); - bat *p = getArgReference_bat(stk,pci,1); - bat *t = getArgReference_bat(stk,pci,2); - bat *d = getArgReference_bat(stk,pci,3); - bat *s = getArgReference_bat(stk,pci,4); - bat *sch = getArgReference_bat(stk,pci,5); - bat *tbl = getArgReference_bat(stk,pci,6); - bat *col = getArgReference_bat(stk,pci,7); + bat *t = getArgReference_bat(stk,pci,1); + bat *d = getArgReference_bat(stk,pci,2); + bat *s = getArgReference_bat(stk,pci,3); + bat *io = getArgReference_bat(stk,pci,4); + bat *n = getArgReference_bat(stk,pci,5); + bat *sch = getArgReference_bat(stk,pci,6); + bat *tbl = getArgReference_bat(stk,pci,7); + bat *col = getArgReference_bat(stk,pci,8); str msg = MAL_SUCCEED; mvc *sql = NULL; cq *q = NULL; @@ -5386,14 +5387,15 @@ SQLsession_prepared_statements_args(Clie assert(sql->qc); statementid = COLnew(0, TYPE_int, 256, TRANSIENT); - parameter = COLnew(0, TYPE_bit, 256, TRANSIENT); type = COLnew(0, TYPE_str, 256, TRANSIENT); digits = COLnew(0, TYPE_int, 256, TRANSIENT); scale = COLnew(0, TYPE_int, 256, TRANSIENT); + isinout = COLnew(0, TYPE_bte, 256, TRANSIENT); + number = COLnew(0, TYPE_int, 256, TRANSIENT); schema = COLnew(0, TYPE_str, 256, TRANSIENT); table = COLnew(0, TYPE_str, 256, TRANSIENT); column = COLnew(0, TYPE_str, 256, TRANSIENT); - if (!statementid || !parameter || !type || !digits || !scale || !schema || !table || !column) { + if (!statementid || !type || !digits || !scale || !isinout || !number || !schema || !table || !column) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; } @@ -5401,13 +5403,14 @@ SQLsession_prepared_statements_args(Clie for (q = sql->qc->q; q; q = q->next) { if (q->prepared) { sql_rel *r = q->rel; - bool isparameter = false; + int arg_number = 0; + bte inout = ARG_OUT; if (r && is_topn(r->op)) r = r->l; if (r && is_project(r->op) && r->exps) { - for (node *n = r->exps->h; n; n = n->next) { + for (node *n = r->exps->h; n; n = n->next, arg_number++) { sql_exp *e = n->data; sql_subtype *t = exp_subtype(e); const char *name = exp_name(e), *rname = exp_relname(e), *rschema = ATOMnilptr(TYPE_str); @@ -5425,10 +5428,6 @@ SQLsession_prepared_statements_args(Clie msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; } - if (BUNappend(parameter, &isparameter, false) != GDK_SUCCEED) { - msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); - goto bailout; - } if (BUNappend(type, t->type->sqlname, false) != GDK_SUCCEED) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; @@ -5441,6 +5440,14 @@ SQLsession_prepared_statements_args(Clie msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; } + if (BUNappend(isinout, &inout, false) != GDK_SUCCEED) { + msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); + goto bailout; + } + if (BUNappend(number, &arg_number, false) != GDK_SUCCEED) { + msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); + goto bailout; + } if (BUNappend(schema, rschema, false) != GDK_SUCCEED) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; @@ -5457,18 +5464,14 @@ SQLsession_prepared_statements_args(Clie } if (q->params) { - isparameter = true; - for (int i = 0; i < q->paramlen; i++) { + inout = ARG_IN; + for (int i = 0; i < q->paramlen; i++, arg_number++) { sql_subtype t = q->params[i]; if (BUNappend(statementid, &(q->id), false) != GDK_SUCCEED) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; } - if (BUNappend(parameter, &isparameter, false) != GDK_SUCCEED) { - msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); - goto bailout; - } if (BUNappend(type, t.type->sqlname, false) != GDK_SUCCEED) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; @@ -5481,6 +5484,14 @@ SQLsession_prepared_statements_args(Clie msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; } + if (BUNappend(isinout, &inout, false) != GDK_SUCCEED) { + msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); + goto bailout; + } + if (BUNappend(number, &arg_number, false) != GDK_SUCCEED) { + msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); + goto bailout; + } if (BUNappend(schema, ATOMnilptr(TYPE_str), false) != GDK_SUCCEED) { msg = createException(SQL, "sql.session_prepared_statements_args", SQLSTATE(HY013) MAL_MALLOC_FAIL); goto bailout; @@ -5501,19 +5512,21 @@ SQLsession_prepared_statements_args(Clie bailout: if (msg) { BBPreclaim(statementid); - BBPreclaim(parameter); BBPreclaim(type); BBPreclaim(digits); BBPreclaim(scale); + BBPreclaim(isinout); + BBPreclaim(number); BBPreclaim(schema); BBPreclaim(table); BBPreclaim(column); } else { BBPkeepref(*sid = statementid->batCacheid); - BBPkeepref(*p = parameter->batCacheid); BBPkeepref(*t = type->batCacheid); BBPkeepref(*d = digits->batCacheid); BBPkeepref(*s = scale->batCacheid); + BBPkeepref(*io = isinout->batCacheid); + BBPkeepref(*n = number->batCacheid); BBPkeepref(*sch = schema->batCacheid); BBPkeepref(*tbl = table->batCacheid); BBPkeepref(*col = column->batCacheid); diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal --- a/sql/backends/monet5/sql.mal +++ b/sql/backends/monet5/sql.mal @@ -607,8 +607,8 @@ pattern prepared_statements()(sessionid: address SQLsession_prepared_statements comment "Available prepared statements in the current session"; -pattern prepared_statements_args()(statementid:bat[:int], parameter:bat[:bit], type:bat[:str], digits:bat[:int], scale:bat[:int], -schema:bat[:str], table:bat[:str], column:bat[:str]) +pattern prepared_statements_args()(statementid:bat[:int], type:bat[:str], digits:bat[:int], scale:bat[:int], inout:bat[:bte], +number:bat[:int], schema:bat[:str], table:bat[:str], column:bat[:str]) address SQLsession_prepared_statements_args comment "Available prepared statements' arguments in the current session"; 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 @@ -2404,7 +2404,7 @@ sql_update_default(Client c, mvc *sql, c "create function sys.sessions()\n" "returns table(\n" "\"sessionid\" int,\n" - "\"user\" string,\n" + "\"username\" string,\n" "\"login\" timestamp,\n" "\"idle\" timestamp,\n" "\"optimizer\" string,\n" @@ -2443,7 +2443,7 @@ sql_update_default(Client c, mvc *sql, c "create function sys.prepared_statements()\n" "returns table(\n" "\"sessionid\" int,\n" - "\"user\" string,\n" + "\"username\" string,\n" "\"statementid\" int,\n" "\"statement\" string,\n" "\"created\" timestamp)\n" @@ -2452,10 +2452,11 @@ sql_update_default(Client c, mvc *sql, c "create function sys.prepared_statements_args()\n" "returns table(\n" "\"statementid\" int,\n" - "\"parameter\" boolean,\n" "\"type\" string,\n" - "\"digits\" int,\n" - "\"scale\" int,\n" + "\"type_digits\" int,\n" + "\"type_scale\" int,\n" + "\"inout\" tinyint,\n" + "\"number\" int,\n" "\"schema\" string,\n" "\"table\" string,\n" "\"column\" string)\n" @@ -2492,17 +2493,16 @@ sql_update_default(Client c, mvc *sql, c "drop function sys.queue;\n" "create function sys.queue()\n" "returns table(\n" - " tag bigint,\n" - " sessionid int,\n" - " \"user\" string,\n" - " started timestamp,\n" - " status string,\n" - " query string,\n" - " progress int,\n" - " workers int,\n" - " memory int\n" - ")\n" - "external name sql.sysmon_queue;\n" + "\"tag\" bigint,\n" + "\"sessionid\" int,\n" + "\"username\" string,\n" + "\"started\" timestamp,\n" + "\"status\" string,\n" + "\"query\" string,\n" + "\"progress\" int,\n" + "\"workers\" int,\n" + "\"memory\" int)\n" + " external name sql.sysmon_queue;\n" "grant execute on function sys.queue to public;\n" "create view sys.queue as select * from sys.queue();\n" "grant select on sys.queue to public;\n" diff --git a/sql/scripts/22_clients.sql b/sql/scripts/22_clients.sql --- a/sql/scripts/22_clients.sql +++ b/sql/scripts/22_clients.sql @@ -15,7 +15,7 @@ external name sql.rt_credentials; create function sys.sessions() returns table( "sessionid" int, - "user" string, + "username" string, "login" timestamp, "idle" timestamp, "optimizer" string, @@ -23,7 +23,7 @@ returns table( "querytimeout" int, "workerlimit" int, "memorylimit" int - ) +) external name sql.sessions; create view sys.sessions as select * from sys.sessions(); @@ -86,7 +86,7 @@ create procedure sys.setprinttimeout("ti create function sys.prepared_statements() returns table( "sessionid" int, - "user" string, + "username" string, "statementid" int, "statement" string, "created" timestamp @@ -101,10 +101,11 @@ grant select on sys.prepared_statements create function sys.prepared_statements_args() returns table( "statementid" int, - "parameter" boolean, "type" string, - "digits" int, - "scale" int, + "type_digits" int, + "type_scale" int, + "inout" tinyint, + "number" int, "schema" string, "table" string, "column" string diff --git a/sql/scripts/26_sysmon.sql b/sql/scripts/26_sysmon.sql --- a/sql/scripts/26_sysmon.sql +++ b/sql/scripts/26_sysmon.sql @@ -9,15 +9,15 @@ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list