MonetDB: remote_auth - Remove unnecessary line
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...
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
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
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
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...
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.
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...
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],