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

Reply via email to