MonetDB: remote_auth - Remove unnecessary line

2018-04-23 Thread Panagiotis Koutsourakis
Changeset: 35548344ece3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=35548344ece3
Modified Files:
monetdb5/mal/mal_authorize.c
Branch: remote_auth
Log Message:

Remove unnecessary line


diffs (12 lines):

diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -1000,8 +1000,6 @@ AUTHaddRemoteTableCredentials(const char
str tmp;
BUN p;
 
-   (void)remoteuser;
-
if (uri == NULL || strNil(uri))
throw(ILLARG, "addRemoteTableCredentials", "URI cannot be nil");
if (localuser == NULL || strNil(localuser))
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: remote_auth - Make sure that we are only storing hashed...

2018-04-23 Thread Panagiotis Koutsourakis
Changeset: 7227d2627b02 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7227d2627b02
Modified Files:
monetdb5/mal/mal_authorize.c
Branch: remote_auth
Log Message:

Make sure that we are only storing hashed passwords


diffs (21 lines):

diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -997,7 +997,7 @@ AUTHaddRemoteTableCredentials(const char
FILE *fp = fopen("/tmp/remote_table_auth.txt", "w");
char *password = NULL;
bool free_pw = false;
-   // str tmp;
+   str tmp;
BUN p;
 
(void)remoteuser;
@@ -1022,7 +1022,7 @@ AUTHaddRemoteTableCredentials(const char
password = mcrypt_BackendSum(pass, strlen(pass));
}
}
-   // rethrow("addUser", tmp, AUTHverifyPassword(password));
+   rethrow("addUser", tmp, AUTHverifyPassword(password));
 
fprintf(fp, "%s,%s,%s,%s\n",uri, localuser, remoteuser, password);
fclose(fp);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: remote_auth - Signal to MAPI that the password is hashed

2018-04-23 Thread Panagiotis Koutsourakis
Changeset: a7b565049fd9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7b565049fd9
Modified Files:
monetdb5/modules/mal/remote.c
Branch: remote_auth
Log Message:

Signal to MAPI that the password is hashed

This should fix the test
sql/test/BugTracker-2015/local-remotetable-crash.Bug-3754 that was
broken.


diffs (27 lines):

diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -279,10 +279,22 @@ RMTconnectURI(Client cntxt, MalBlkPtr mb
 
rethrow("remote.connect", tmp, AUTHgetRemoteTableCredentials(uri, 
cntxt, , ));
 
-   msg = RMTconnectScen(, , , , );
+   /* The password we just got is hashed. Add the byte \1 in front to
+* signal this fact to the mapi. */
+   size_t pwlen = strlen(passwd);
+   char *pwhash = (char*)GDKmalloc(pwlen + 2);
+   if (pwhash == NULL) {
+   GDKfree(remoteuser);
+   GDKfree(passwd);
+   throw(MAL, "remote.connect", SQLSTATE(HY001) MAL_MALLOC_FAIL);
+   }
+   snprintf(pwhash, pwlen + 2, "\1%s", passwd);
+
+   msg = RMTconnectScen(, , , , );
 
GDKfree(remoteuser);
GDKfree(passwd);
+   GDKfree(pwhash);
 
if (msg == MAL_SUCCEED) {
v = >stk[pci->argv[0]];
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: remote_auth - Avoid double initialization

2018-04-23 Thread Panagiotis Koutsourakis
Changeset: 762b13779627 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=762b13779627
Modified Files:
monetdb5/modules/mal/remote.c
Branch: remote_auth
Log Message:

Avoid double initialization


diffs (12 lines):

diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -271,8 +271,6 @@ RMTconnectURI(Client cntxt, MalBlkPtr mb
 
(void)mb;
 
-   v = >stk[pci->argv[0]];
-
uri = *getArgReference_str(stk, pci, 1);
scen = *getArgReference_str(stk, pci, 2);
if (uri == NULL || strcmp(uri, (str)str_nil) == 0) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: remote_auth - Merge with default

2018-04-23 Thread Panagiotis Koutsourakis
Changeset: b55fbdb0811b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b55fbdb0811b
Added Files:
sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.sql
sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.stable.err
sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.stable.out
sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.sql
sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.stable.err
sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.stable.out

sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.stable.out.int128

sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.sql

sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.stable.err

sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.stable.out

sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.sql

sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.stable.err

sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.stable.out

sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.sql

sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err

sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out

sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.err

sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out
Modified Files:
gdk/gdk_project.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_result.c
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/rel_select.c

sql/test/BugDay_2005-10-06_2.9.3/Tests/UNION_JOIN_vs_plain_set_UNION-2.SF-920585.stable.out

sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.stable.out.int128
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.stable.out
sql/test/BugTracker-2018/Tests/All

sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.sql

sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out.int128
sql/test/Tests/coalesce.stable.out
sql/test/Tests/median_stdev.stable.out
sql/test/Tests/string.stable.out
sql/test/pg_regress/Tests/select_views.stable.out
testing/Mtest.py.in
Branch: remote_auth
Log Message:

Merge with default


diffs (truncated from 1730 to 300 lines):

diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -18,7 +18,7 @@
 
 #define project_loop(TYPE) \
 static gdk_return  \
-project_##TYPE(BAT *bn, BAT *l, BAT *r, int nilcheck)  \
+project_##TYPE(BAT *bn, BAT *l, BAT *r, bool nilcheck) \
 {  \
oid lo, hi; \
const TYPE *restrict rt;\
@@ -39,11 +39,11 @@ project_##TYPE(BAT *bn, BAT *l, BAT *r, 
if (o[lo] < rseq || o[lo] >= rend) {\
if (is_oid_nil(o[lo])) {\
bt[lo] = TYPE##_nil;\
-   bn->tnonil = 0; \
-   bn->tnil = 1;   \
-   bn->tsorted = 0;\
-   bn->trevsorted = 0; \
-   bn->tkey = 0;   \
+   bn->tnonil = false; \
+   bn->tnil = true;\
+   bn->tsorted = false;\
+   bn->trevsorted = false; \
+   bn->tkey = false;   \
lo++;   \
break;  \
} else {  

MonetDB: default - Minimize differences between stable outputs o...

2018-04-23 Thread Sjoerd Mullender
Changeset: 1f70f5f301e0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1f70f5f301e0
Modified Files:
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: default
Log Message:

Minimize differences between stable outputs of emptydb/check test.


diffs (truncated from 1574 to 300 lines):

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
@@ -1,29 +1,28 @@
 stdout of test 'check` in directory 'sql/test/emptydb` itself:
 
 
-# 15:32:57 >  
-# 15:32:57 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=39456" "--set" 
"mapi_usock=/var/tmp/mtest-19169/.s.monetdb.39456" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb" "--set" 
"embedded_r=yes"
-# 15:32:57 >  
+# 16:23:48 >  
+# 16:23:48 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32016" "--set" 
"mapi_usock=/var/tmp/mtest-13569/.s.monetdb.32016" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb" "--set" 
"mal_listing=0" "--set" "embedded_r=yes"
+# 16:23:48 >  
 
-# MonetDB 5 server v11.23.14
+# MonetDB 5 server v11.30.0
 # This is an unreleased version
 # Serving database 'mTests_sql_test_emptydb', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
-# Found 15.589 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://madrid.da.cwi.nl:39456/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-19169/.s.monetdb.39456
+# Compiled for x86_64-pc-linux-gnu/64bit with 128bit integers
+# Found 62.695 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on 
mapi:monetdb://methuselah.da.cwi.nl:31575/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-32585/.s.monetdb.31575
 # MonetDB/GIS module loaded
 # MonetDB/SQL module loaded
-# MonetDB/R   module loaded
 
 Ready.
 
-# 15:32:58 >  
-# 15:32:58 >  "/usr/bin/python2" "check.SQL.py" "check"
-# 15:32:58 >  
+# 10:17:18 >  
+# 10:17:18 >  "/usr/bin/python2" "check.SQL.py" "check"
+# 10:17:18 >  
 
 \dn
 \dt
@@ -453,60 +452,60 @@ SYSTEM VIEW  sys.tablestoragemodel
 SYSTEM VIEW  sys.tracelog
 SYSTEM VIEW  sys.users
 SYSTEM VIEW  sys.var_values
-SYSTEM FUNCTION  sys.<
-SYSTEM FUNCTION  sys.<=
-SYSTEM FUNCTION  sys.<>
-SYSTEM FUNCTION  sys.=
-SYSTEM FUNCTION  sys.>
-SYSTEM FUNCTION  sys.>=
-SYSTEM FUNCTION  sys.abbrev
-SYSTEM FUNCTION  sys.abs
-SYSTEM FUNCTION  sys.acos
+SYSTEM FUNCTION sys.<
+SYSTEM FUNCTION sys.<=
+SYSTEM FUNCTION sys.<>
+SYSTEM FUNCTION sys.=
+SYSTEM FUNCTION sys.>
+SYSTEM FUNCTION sys.>=
+SYSTEM FUNCTION sys.abbrev
+SYSTEM FUNCTION sys.abs
+SYSTEM FUNCTION sys.acos
 SYSTEM AGGREGATEsys.all
-SYSTEM FUNCTION  sys.alpha
+SYSTEM FUNCTION sys.alpha
 SYSTEM PROCEDUREsys.analyze
-SYSTEM FUNCTION  sys.and
-SYSTEM FUNCTION  sys.ascii
-SYSTEM FUNCTION  sys.asin
-SYSTEM FUNCTION  sys.atan
+SYSTEM FUNCTION sys.and
+SYSTEM FUNCTION sys.ascii
+SYSTEM FUNCTION sys.asin
+SYSTEM FUNCTION sys.atan
 SYSTEM AGGREGATEsys.avg
 SYSTEM FUNCTION sys.bbp
-SYSTEM FUNCTION  sys.bit_and
-SYSTEM FUNCTION  sys.bit_not
-SYSTEM FUNCTION  sys.bit_or
-SYSTEM FUNCTION  sys.bit_xor
-SYSTEM FUNCTION  sys.broadcast
-SYSTEM FUNCTION  sys.ceil
-SYSTEM FUNCTION  sys.ceiling
-SYSTEM FUNCTION  sys.char_length
-SYSTEM FUNCTION  sys.character_length
-SYSTEM FUNCTION  sys.charindex
+SYSTEM FUNCTION sys.bit_and
+SYSTEM FUNCTION sys.bit_not
+SYSTEM FUNCTION sys.bit_or
+SYSTEM FUNCTION sys.bit_xor
+SYSTEM FUNCTION sys.broadcast
+SYSTEM FUNCTION sys.ceil
+SYSTEM FUNCTION sys.ceiling
+SYSTEM FUNCTION sys.char_length
+SYSTEM FUNCTION sys.character_length
+SYSTEM FUNCTION sys.charindex
 SYSTEM PROCEDUREsys.clearrejects
-SYSTEM FUNCTION  sys.code
-SYSTEM FUNCTION  sys.columnsize
-SYSTEM FUNCTION  sys.concat
-SYSTEM FUNCTION  sys.contains
+SYSTEM FUNCTION sys.code
+SYSTEM FUNCTION sys.columnsize
+SYSTEM FUNCTION sys.concat
+SYSTEM FUNCTION sys.contains
 SYSTEM FUNCTION sys.copyfrom
 SYSTEM AGGREGATE

MonetDB: default - Approve group_concat.

2018-04-23 Thread Sjoerd Mullender
Changeset: d90612eb12a6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d90612eb12a6
Modified Files:
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: default
Log Message:

Approve group_concat.


diffs (73 lines):

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
@@ -558,6 +558,7 @@ SYSTEM FUNCTION  sys.getprotocol
 SYSTEM FUNCTION  sys.getquery
 SYSTEM FUNCTION  sys.getroboturl
 SYSTEM FUNCTION  sys.getuser
+SYSTEM AGGREGATEsys.group_concat
 SYSTEM FUNCTION  sys.has_m
 SYSTEM FUNCTION  sys.has_z
 SYSTEM FUNCTION  sys.hash
@@ -4921,13 +4922,13 @@ drop function pcre_replace(string, strin
 % varchar, varchar,bigint, bigint, bigint, bigint, bigint, boolean 
# type
 % 0,   0,  1,  1,  1,  1,  1,  5 # length
 #select count(*) from sys.statistics;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0]
 #select count(*) from sys.storagemodelinput;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -562,6 +562,7 @@ SYSTEM FUNCTION  sys.getprotocol
 SYSTEM FUNCTION  sys.getquery
 SYSTEM FUNCTION  sys.getroboturl
 SYSTEM FUNCTION  sys.getuser
+SYSTEM AGGREGATEsys.group_concat
 SYSTEM FUNCTION  sys.has_m
 SYSTEM FUNCTION  sys.has_z
 SYSTEM FUNCTION  sys.hash
@@ -4925,13 +4926,13 @@ drop function pcre_replace(string, strin
 % varchar, varchar,bigint, bigint, bigint, bigint, bigint, boolean 
# type
 % 0,   0,  1,  1,  1,  1,  1,  5 # length
 #select count(*) from sys.statistics;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0]
 #select count(*) from sys.storagemodelinput;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128 
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -5131,13 +5131,13 @@ drop function pcre_replace(string, strin
 % varchar, varchar,bigint, bigint, bigint, bigint, bigint, boolean 
# type
 % 0,   0,  1,  1,  1,  1,  1,  5 # length
 #select count(*) from sys.statistics;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0]
 #select count(*) from sys.storagemodelinput;
-% sys.L4 # table_name
+% sys.L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Pushed function aggr.median(b:bat[:any_1]):an...

2018-04-23 Thread Sjoerd Mullender
Changeset: d3ce2e7e31a9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d3ce2e7e31a9
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
monetdb5/modules/kernel/aggr.c
monetdb5/modules/kernel/aggr.mal
monetdb5/modules/kernel/aggr.mal.sh
Branch: default
Log Message:

Pushed function aggr.median(b:bat[:any_1]):any_1; down to C level.
Also removed unused function aggr.median(b:bat[:any_1], g:bat[:oid], 
e:bat[:any_2]):bat[:any_1];


diffs (282 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
@@ -103,8 +103,7 @@ Ready.
 [ "aggr",  "jsonaggr", "command aggr.jsonaggr(val:bat[:str]):str ",
"JSONgroupStr;","Aggregate the string values to array." ]
 [ "aggr",  "max",  "command aggr.max(b:bat[:any_1], g:bat[:oid], 
e:bat[:any_2]):bat[:any_1] ", "AGGRmax3;",""  ]
 [ "aggr",  "max",  "command aggr.max(b:bat[:any_2]):any_2 ",   
"ALGmaxany;",   "Return the highest tail value or nil." ]
-[ "aggr",  "median",   "function aggr.median(b:bat[:any_1]):any_1;",   
"", ""  ]
-[ "aggr",  "median",   "command aggr.median(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2]):bat[:any_1] ",  "AGGRmedian3;", "Grouped median 
aggregate"  ]
+[ "aggr",  "median",   "command aggr.median(b:bat[:any_1]):any_1 ",
"AGGRmedian;",  "Median aggregate"  ]
 [ "aggr",  "min",  "command aggr.min(b:bat[:any_1], g:bat[:oid], 
e:bat[:any_2]):bat[:any_1] ", "AGGRmin3;",""  ]
 [ "aggr",  "min",  "command aggr.min(b:bat[:any_2]):any_2 ",   
"ALGminany;",   "Return the lowest tail value or nil."  ]
 [ "aggr",  "prod", "command aggr.prod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1]):bat[:bte] ","AGGRprod3_bte;",   "Grouped tail 
product on bte"   ]
@@ -188,8 +187,7 @@ Ready.
 [ "aggr",  "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid], 
nil_if_empty:bit):int ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",  "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid], 
nil_if_empty:bit):lng ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",  "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid], 
nil_if_empty:bit):sht ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
-[ "aggr",  "quantile", "function aggr.quantile(b:bat[:any_1], 
q:bat[:dbl]):any_1;","", ""  ]
-[ "aggr",  "quantile", "command aggr.quantile(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], q:bat[:dbl]):bat[:any_1] ",   "AGGRquantile3;", 
  "Grouped quantile aggregate"]
+[ "aggr",  "quantile", "command aggr.quantile(b:bat[:any_1], 
q:bat[:dbl]):any_1 ", "AGGRquantile;","Quantile aggregate"]
 [ "aggr",  "stdev","command aggr.stdev(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1]):bat[:dbl] ",   "AGGRstdev3_dbl;",  "Grouped tail 
standard deviation (sample/non-biased) on bte"]
 [ "aggr",  "stdev","command aggr.stdev(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1]):bat[:dbl] ",   "AGGRstdev3_dbl;",  "Grouped tail 
standard deviation (sample/non-biased) on dbl"]
 [ "aggr",  "stdev","command aggr.stdev(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1]):bat[:dbl] ",   "AGGRstdev3_dbl;",  "Grouped tail 
standard deviation (sample/non-biased) on flt"]
@@ -260,7 +258,6 @@ Ready.
 [ "aggr",  "submax",   "command aggr.submax(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",   "AGGRsubmax_val;",  
"Grouped maximum aggregate" ]
 [ "aggr",  "submax",   "command aggr.submax(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:oid] ",
"AGGRsubmaxcand;",  "Grouped maximum aggregate with candidates list"
]
 [ "aggr",  "submax",   "command aggr.submax(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",  
"AGGRsubmaxcand_val;",  "Grouped maximum aggregate with candidates list"
]
-[ "aggr",  "submedian","command aggr.submedian(b:bat[:any_1], 
skip_nils:bit):bat[:any_1] ","AGGRmedian;",  "Median aggregate"  ]
 [ "aggr",  "submedian","command aggr.submedian(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",
"AGGRsubmedian;",   "Grouped median aggregate"  ]
 [ "aggr",  "submedian","command aggr.submedian(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",   
"AGGRsubmediancand;",   "Grouped median aggregate with candidate list"  ]
 [ "aggr",  "submin",   "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2],