Changeset: d6dd1522c801 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d6dd1522c801
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        monetdb5/mal/mal_interpreter.h
        monetdb5/modules/atoms/batxml.mal
        monetdb5/modules/atoms/json.mal
        monetdb5/modules/kernel/00_aggr_hge.mal
        monetdb5/modules/kernel/00_aggr_hge.mal.sh
        monetdb5/modules/kernel/aggr.mal
        monetdb5/modules/kernel/aggr.mal.sh
        monetdb5/modules/kernel/algebra.mal
        monetdb5/modules/kernel/bat5.mal
        monetdb5/modules/kernel/batmmath.mal
        monetdb5/modules/kernel/group.mal
        monetdb5/modules/mal/00_batcalc_hge.mal
        monetdb5/modules/mal/00_batcalc_hge.mal.sh
        monetdb5/modules/mal/00_calc_hge.mal
        monetdb5/modules/mal/00_calc_hge.mal.sh
        monetdb5/modules/mal/01_batcalc.mal
        monetdb5/modules/mal/01_batcalc.mal.sh
        monetdb5/modules/mal/01_calc.mal
        monetdb5/modules/mal/01_calc.mal.sh
        monetdb5/modules/mal/Tests/inspect05.stable.out.int128
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/batmtime.mal
        monetdb5/modules/mal/batmtime.mal.sh
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/pcre.mal
Branch: msk-type
Log Message:

Allow msk type BATs as candidate lists.


diffs (truncated from 95027 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
@@ -164,6 +164,16 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], nil_if_empty:bit):int 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], nil_if_empty:bit):lng 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], nil_if_empty:bit):sht 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk]):bte ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk]):sht ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk], 
nil_if_empty:bit):bte ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk], 
nil_if_empty:bit):int ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk], 
nil_if_empty:bit):lng ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:msk], 
nil_if_empty:bit):sht ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:oid]):bte ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:oid]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
@@ -176,12 +186,18 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:bte], s:bat[:oid], 
nil_if_empty:bit):sht ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl]):dbl ",  "CMDBATprod;",  
"Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl], nil_if_empty:bit):dbl 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:dbl], s:bat[:oid], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt]):dbl ",  "CMDBATprod;",  
"Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt]):flt ",  "CMDBATprod;",  
"Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], nil_if_empty:bit):dbl 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], nil_if_empty:bit):flt 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:msk]):flt ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:msk], 
nil_if_empty:bit):flt ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:oid]):flt ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:flt], s:bat[:oid], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
@@ -192,6 +208,12 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], nil_if_empty:bit):dbl 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], nil_if_empty:bit):int 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], nil_if_empty:bit):lng 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk], 
nil_if_empty:bit):int ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:msk], 
nil_if_empty:bit):lng ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:oid]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:int], s:bat[:oid]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
@@ -202,6 +224,10 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng]):lng ",  "CMDBATprod;",  
"Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], nil_if_empty:bit):dbl 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], nil_if_empty:bit):lng 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:msk]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:msk], 
nil_if_empty:bit):lng ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:oid]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:lng], s:bat[:oid], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
@@ -214,6 +240,14 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], nil_if_empty:bit):int 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], nil_if_empty:bit):lng 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], nil_if_empty:bit):sht 
",        "CMDBATprod;",  "Calculate aggregate product of B."     ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk]):sht ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk], 
nil_if_empty:bit):dbl ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk], 
nil_if_empty:bit):int ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk], 
nil_if_empty:bit):lng ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
+[ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:msk], 
nil_if_empty:bit):sht ",   "CMDBATprod;",  "Calculate aggregate product of B 
with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid]):dbl ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid]):int ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
 [ "aggr",      "prod", "pattern aggr.prod(b:bat[:sht], s:bat[:oid]):lng ",     
"CMDBATprod;",  "Calculate aggregate product of B with candidate list." ]
@@ -242,10 +276,14 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "str_group_concat",     "command 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], g:bat[:oid], 
e:bat[:any_1]):bat[:str] ",     "AGGRstr_group_concat_sep;",    "Grouped string 
tail concat with custom separator"      ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str]):str ",      "CMDBATstr_group_concat;",      
"Calculate aggregate string concatenate of B."  ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], nil_if_empty:bit):str ",    
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B."  
]
+[ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], s:bat[:msk]):str ", 
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list."      ]
+[ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], s:bat[:msk], nil_if_empty:bit):str ",       
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list."      ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], s:bat[:oid]):str ", 
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list."      ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], s:bat[:oid], nil_if_empty:bit):str ",       
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list."      ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str]):str ",       
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with separator SEP."       ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], nil_if_empty:bit):str ",     
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with separator SEP."       ]
+[ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:msk]):str ",  
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list and separator SEP."    ]
+[ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:msk], 
nil_if_empty:bit):str ",        "CMDBATstr_group_concat;",      "Calculate 
aggregate string concatenate of B with candidate list and separator SEP."    ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid]):str ",  
"CMDBATstr_group_concat;",      "Calculate aggregate string concatenate of B 
with candidate list and separator SEP."    ]
 [ "aggr",      "str_group_concat",     "pattern 
aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid], 
nil_if_empty:bit):str ",        "CMDBATstr_group_concat;",      "Calculate 
aggregate string concatenate of B with candidate list and separator SEP."    ]
 [ "aggr",      "suballnotequal",       "command 
aggr.suballnotequal(l:bat[:any_1], r:bat[:any_1], rid:bat[:oid], gp:bat[:oid], 
gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLallnotequal_grp2;", "if all values 
in r are not equal to l return true, else if r has nil nil else false, except 
if rid is nil (ie empty) then true"        ]
@@ -258,11 +296,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",   
"AGGRsubavg1_dbl;",     "Grouped average aggregate"     ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",   
"AGGRsubavg1_dbl;",     "Grouped average aggregate"     ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",   
"AGGRsubavg1_dbl;",     "Grouped average aggregate"     ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
 "AGGRsubavg1cand_dbl;", "Grouped average aggregate with candidates list"       
 ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int):bat[:dbl] ",       
 "AGGRsubavg1s_dbl;",    "Grouped average aggregate"     ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int):bat[:dbl] ",       
 "AGGRsubavg1s_dbl;",    "Grouped average aggregate"     ]
@@ -270,11 +314,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int):bat[:dbl] ",       
 "AGGRsubavg1s_dbl;",    "Grouped average aggregate"     ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int):bat[:dbl] ",       
 "AGGRsubavg1s_dbl;",    "Grouped average aggregate"     ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int):bat[:dbl] ",       
 "AGGRsubavg1s_dbl;",    "Grouped average aggregate"     ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, 
scale:int):bat[:dbl] ",   "AGGRsubavg1scand_dbl;",        "Grouped average 
aggregate with candidates list"        ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",      "AGGRsubavg2_dbl;",     "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",      "AGGRsubavg2_dbl;",     "Grouped average aggregate, also 
returns count" ]
@@ -282,11 +332,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",      "AGGRsubavg2_dbl;",     "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",      "AGGRsubavg2_dbl;",     "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",      "AGGRsubavg2_dbl;",     "Grouped average aggregate, also 
returns count" ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit) (X_0:bat[:dbl], 
X_1:bat[:lng]) ", "AGGRsubavg2cand_dbl;", "Grouped average aggregate with 
candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",   "AGGRsubavg2s_dbl;",    "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",   "AGGRsubavg2s_dbl;",    "Grouped average aggregate, also 
returns count" ]
@@ -294,11 +350,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",   "AGGRsubavg2s_dbl;",    "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",   "AGGRsubavg2s_dbl;",    "Grouped average aggregate, also 
returns count" ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit, scale:int) (X_0:bat[:dbl], 
X_1:bat[:lng]) ",   "AGGRsubavg2s_dbl;",    "Grouped average aggregate, also 
returns count" ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
+[ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subavg",       "command aggr.subavg(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit, scale:int) 
(X_0:bat[:dbl], X_1:bat[:lng]) ",      "AGGRsubavg2scand_dbl;",        "Grouped 
average aggregate with candidates list, also returns count"    ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:bte], 
b2:bat[:bte], g:bat[:oid], e:bat[:any_1], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",   "AGGRsubcorr;", "Grouped correlation 
aggregate" ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:dbl], 
b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",   "AGGRsubcorr;", "Grouped correlation 
aggregate" ]
@@ -306,13 +368,20 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:int], 
b2:bat[:int], g:bat[:oid], e:bat[:any_1], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",   "AGGRsubcorr;", "Grouped correlation 
aggregate" ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:lng], 
b2:bat[:lng], g:bat[:oid], e:bat[:any_1], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",   "AGGRsubcorr;", "Grouped correlation 
aggregate" ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:sht], 
b2:bat[:sht], g:bat[:oid], e:bat[:any_1], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",   "AGGRsubcorr;", "Grouped correlation 
aggregate" ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:bte], 
b2:bat[:bte], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:bte], 
b2:bat[:bte], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:dbl], 
b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:dbl], 
b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:flt], 
b2:bat[:flt], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:flt], 
b2:bat[:flt], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:int], 
b2:bat[:int], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:int], 
b2:bat[:int], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:lng], 
b2:bat[:lng], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:lng], 
b2:bat[:lng], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
+[ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:sht], 
b2:bat[:sht], g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcorr",      "command aggr.subcorr(b1:bat[:sht], 
b2:bat[:sht], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",      "AGGRsubcorrcand;",     "Grouped 
correlation aggregate with candidate list"     ]
 [ "aggr",      "subcount",     "command aggr.subcount(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:lng] ",   "AGGRsubcount;",      
  "Grouped count aggregate"       ]
+[ "aggr",      "subcount",     "command aggr.subcount(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:msk], skip_nils:bit):bat[:lng] ",      
"AGGRsubcountcand;",    "Grouped count aggregate with candidates list"  ]
 [ "aggr",      "subcount",     "command aggr.subcount(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:lng] ",      
"AGGRsubcountcand;",    "Grouped count aggregate with candidates list"  ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     "AGGRsubcovariance;",   
"Grouped covariance sample aggregate"   ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     "AGGRsubcovariance;",   
"Grouped covariance sample aggregate"   ]
@@ -320,11 +389,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     "AGGRsubcovariance;",   
"Grouped covariance sample aggregate"   ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     "AGGRsubcovariance;",   
"Grouped covariance sample aggregate"   ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     "AGGRsubcovariance;",   
"Grouped covariance sample aggregate"   ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:flt], b2:bat[:flt], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:flt], b2:bat[:flt], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
+[ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariance",        "command 
aggr.subcovariance(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",        
"AGGRsubcovariancecand;",       "Grouped covariance sample aggregate with 
candidate list"       ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",    "AGGRsubcovariancep;",  
"Grouped covariance population aggregate"       ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",    "AGGRsubcovariancep;",  
"Grouped covariance population aggregate"       ]
@@ -332,28 +407,42 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",    "AGGRsubcovariancep;",  
"Grouped covariance population aggregate"       ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",    "AGGRsubcovariancep;",  
"Grouped covariance population aggregate"       ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
skip_nils:bit, abort_on_error:bit):bat[:dbl] ",    "AGGRsubcovariancep;",  
"Grouped covariance population aggregate"       ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:bte], b2:bat[:bte], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:dbl], b2:bat[:dbl], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:flt], b2:bat[:flt], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:flt], b2:bat[:flt], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:int], b2:bat[:int], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:lng], b2:bat[:lng], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
+[ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subcovariancep",       "command 
aggr.subcovariancep(b1:bat[:sht], b2:bat[:sht], g:bat[:oid], e:bat[:any_1], 
s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",       
"AGGRsubcovariancepcand;",      "Grouped covariance population aggregate with 
candidate list"   ]
 [ "aggr",      "subexist",     "command aggr.subexist(b:bat[:any_2], 
g:bat[:oid], e:bat[:oid], no_nil:bit):bat[:bit] ",        "SQLsubexist;", ""    
  ]
 [ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ",        "JSONsubjson;", 
"Grouped aggregation of values."        ]
 [ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:str], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ",        "JSONsubjson;", 
"Grouped aggregation of values."        ]
+[ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit):bat[:str] ",   
"JSONsubjsoncand;",     "Grouped aggregation of values with candidates list."   
]
 [ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit):bat[:str] ",   
"JSONsubjsoncand;",     "Grouped aggregation of values with candidates list."   
]
+[ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:str], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit):bat[:str] ",   
"JSONsubjsoncand;",     "Grouped aggregation of values with candidates list."   
]
 [ "aggr",      "subjsonaggr",  "command aggr.subjsonaggr(val:bat[:str], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit):bat[:str] ",   
"JSONsubjsoncand;",     "Grouped aggregation of values with candidates list."   
]
 [ "aggr",      "submax",       "command aggr.submax(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:oid] ",     "AGGRsubmax;",  
"Grouped maximum aggregate"     ]
 [ "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[:msk], 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[: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[:msk], skip_nils:bit):bat[:any_1] ",      
"AGGRsubmaxcand_val;",  "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], 
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[:msk], skip_nils:bit):bat[:any_1] ",   
"AGGRsubmediancand;",   "Grouped median aggregate with candidate list"  ]
 [ "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",      "submedian_avg",        "command 
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2], 
skip_nils:bit):bat[:dbl] ",      "AGGRsubmedian_avg;",   "Grouped median 
aggregate"      ]
+[ "aggr",      "submedian_avg",        "command 
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2], s:bat[:msk], 
skip_nils:bit):bat[:dbl] ", "AGGRsubmediancand_avg;",       "Grouped median 
aggregate with candidate list"  ]
 [ "aggr",      "submedian_avg",        "command 
aggr.submedian_avg(b:bat[:any_1], g:bat[:oid], e:bat[:any_2], s:bat[:oid], 
skip_nils:bit):bat[:dbl] ", "AGGRsubmediancand_avg;",       "Grouped median 
aggregate with candidate list"  ]
 [ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:oid] ",     "AGGRsubmin;",  
"Grouped minimum aggregate"     ]
 [ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ",   "AGGRsubmin_val;",  
    "Grouped minimum aggregate"     ]
+[ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:msk], skip_nils:bit):bat[:oid] ",        
"AGGRsubmincand;",      "Grouped minimum aggregate with candidates list"        
]
 [ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:oid] ",        
"AGGRsubmincand;",      "Grouped minimum aggregate with candidates list"        
]
+[ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:msk], skip_nils:bit):bat[:any_1] ",      
"AGGRsubmincand_val;",  "Grouped minimum aggregate with candidates list"        
]
 [ "aggr",      "submin",       "command aggr.submin(b:bat[:any_1], 
g:bat[:oid], e:bat[:any_2], s:bat[:oid], skip_nils:bit):bat[:any_1] ",      
"AGGRsubmincand_val;",  "Grouped minimum aggregate with candidates list"        
]
 [ "aggr",      "subnot_exist", "command aggr.subnot_exist(b:bat[:any_2], 
g:bat[:oid], e:bat[:oid], no_nil:bit):bat[:bit] ",    "SQLsubnot_exist;",     
""      ]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:bte] ",  
"AGGRsubprod_bte;",     "Grouped product aggregate"     ]
@@ -369,22 +458,37 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:lng] ",  
"AGGRsubprod_lng;",     "Grouped product aggregate"     ]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:sht] ",  
"AGGRsubprod_sht;",     "Grouped product aggregate"     ]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:sht] ",  
"AGGRsubprod_sht;",     "Grouped product aggregate"     ]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:bte] ",     
"AGGRsubprodcand_bte;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:bte] ",     
"AGGRsubprodcand_bte;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
"AGGRsubprodcand_dbl;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:dbl], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
"AGGRsubprodcand_dbl;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
"AGGRsubprodcand_dbl;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:dbl] ",     
"AGGRsubprodcand_dbl;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:flt] ",     
"AGGRsubprodcand_flt;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:flt], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:flt] ",     
"AGGRsubprodcand_flt;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:int] ",     
"AGGRsubprodcand_int;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:int], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:lng], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:lng] ",     
"AGGRsubprodcand_lng;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:sht] ",     
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:bte], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:sht] ",     
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"        
]
+[ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:msk], skip_nils:bit, abort_on_error:bit):bat[:sht] ",     
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subprod",      "command aggr.subprod(b:bat[:sht], g:bat[:oid], 
e:bat[:any_1], s:bat[:oid], skip_nils:bit, abort_on_error:bit):bat[:sht] ",     
"AGGRsubprodcand_sht;", "Grouped product aggregate with candidates list"        
]
 [ "aggr",      "subquantile",  "command aggr.subquantile(b:bat[:any_1], 
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], skip_nils:bit):bat[:any_1] ", 
"AGGRsubquantile;",     "Grouped quantile aggregate"    ]
+[ "aggr",      "subquantile",  "command aggr.subquantile(b:bat[:any_1], 
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], s:bat[:msk], 
skip_nils:bit):bat[:any_1] ",    "AGGRsubquantilecand;", "Grouped quantile 
aggregate with candidate list"        ]
 [ "aggr",      "subquantile",  "command aggr.subquantile(b:bat[:any_1], 
q:bat[:dbl], g:bat[:oid], e:bat[:any_2], s:bat[:oid], 
skip_nils:bit):bat[:any_1] ",    "AGGRsubquantilecand;", "Grouped quantile 
aggregate with candidate list"        ]
 [ "aggr",      "subquantile_avg",      "command 
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2], 
skip_nils:bit):bat[:dbl] ",       "AGGRsubquantile_avg;", "Grouped quantile 
aggregate"    ]
+[ "aggr",      "subquantile_avg",      "command 
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2], 
s:bat[:msk], skip_nils:bit):bat[:dbl] ",  "AGGRsubquantilecand_avg;",     
"Grouped quantile aggregate with candidate list"        ]
 [ "aggr",      "subquantile_avg",      "command 
aggr.subquantile_avg(b:bat[:any_1], q:bat[:dbl], g:bat[:oid], e:bat[:any_2], 
s:bat[:oid], skip_nils:bit):bat[:dbl] ",  "AGGRsubquantilecand_avg;",     
"Grouped quantile aggregate with candidate list"        ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:bte], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", 
"AGGRsubstdev_dbl;",    "Grouped standard deviation (sample/non-biased) 
aggregate"      ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", 
"AGGRsubstdev_dbl;",    "Grouped standard deviation (sample/non-biased) 
aggregate"      ]
@@ -392,11 +496,17 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:int], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", 
"AGGRsubstdev_dbl;",    "Grouped standard deviation (sample/non-biased) 
aggregate"      ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:lng], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", 
"AGGRsubstdev_dbl;",    "Grouped standard deviation (sample/non-biased) 
aggregate"      ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:sht], 
g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", 
"AGGRsubstdev_dbl;",    "Grouped standard deviation (sample/non-biased) 
aggregate"      ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:bte], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:bte], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:dbl], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:flt], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:flt], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:int], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:int], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:lng], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
 [ "aggr",      "substdev",     "command aggr.substdev(b:bat[:lng], 
g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
+[ "aggr",      "substdev",     "command aggr.substdev(b:bat[:sht], 
g:bat[:oid], e:bat[:any_1], s:bat[:msk], skip_nils:bit, 
abort_on_error:bit):bat[:dbl] ",    "AGGRsubstdevcand_dbl;",        "Grouped 
standard deviation (sample/non-biased) aggregate with candidates list" ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to