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], skip_nils:bit):bat[:oid] ", "AGGRsubmin;",
"Grouped minimum aggregate" ]
@@ -293,9 +290,8 @@ Ready.
[ "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[: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[: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], skip_nils:bit):bat[:any_1] ", "AGGRquantile;",
"Quantile aggregate" ]
[ "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[:oid],
skip_nils:bit):bat[:any_1] ", "AGGRsubquantilecand;", "Grouped median
quantile 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", "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" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:flt],
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" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -111,8 +111,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" ]
@@ -225,8 +224,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" ]
@@ -305,7 +303,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], skip_nils:bit):bat[:oid] ", "AGGRsubmin;",
"Grouped minimum aggregate" ]
@@ -348,9 +345,8 @@ Ready.
[ "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[: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[: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], skip_nils:bit):bat[:any_1] ", "AGGRquantile;",
"Quantile aggregate" ]
[ "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[:oid],
skip_nils:bit):bat[:any_1] ", "AGGRsubquantilecand;", "Grouped median
quantile 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", "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" ]
[ "aggr", "substdev", "command aggr.substdev(b:bat[:flt],
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" ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -593,8 +593,7 @@ str AGGRcount3(bat *retval, const bat *b
str AGGRcount3nils(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRcount3nonils(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRmax3(bat *retval, const bat *bid, const bat *gid, const bat *eid);
-str AGGRmedian(bat *retval, const bat *bid, const bit *skip_nils);
-str AGGRmedian3(bat *retval, const bat *bid, const bat *gid, const bat *eid);
+str AGGRmedian(void *retval, const bat *bid);
str AGGRmin3(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_bte(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_dbl(bat *retval, const bat *bid, const bat *gid, const bat *eid);
@@ -603,8 +602,7 @@ str AGGRprod3_hge(bat *retval, const bat
str AGGRprod3_int(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_lng(bat *retval, const bat *bid, const bat *gid, const bat *eid);
str AGGRprod3_sht(bat *retval, const bat *bid, const bat *gid, const bat *eid);
-str AGGRquantile(bat *retval, const bat *bid, const bat *quantile, const bit
*skip_nils);
-str AGGRquantile3(bat *retval, const bat *bid, const bat *gid, const bat *eid,
const bat *quantile);
+str AGGRquantile(void *retval, const bat *bid, const bat *qid);
str AGGRstdev3_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRstdevp3_dbl(bat *retval, const bat *bid, const bat *gid, const bat
*eid);
str AGGRstr_group_concat(bat *retval, const bat *bid, const bat *gid, const
bat *eid);
diff --git a/monetdb5/modules/kernel/aggr.c b/monetdb5/modules/kernel/aggr.c
--- a/monetdb5/modules/kernel/aggr.c
+++ b/monetdb5/modules/kernel/aggr.c
@@ -328,23 +328,6 @@ AGGRmax3(bat *retval, const bat *bid, co
return err;
}
-mal_export str AGGRmedian3(bat *retval, const bat *bid, const bat *gid, const
bat *eid);
-str
-AGGRmedian3(bat *retval, const bat *bid, const bat *gid, const bat *eid)
-{
- return AGGRgrouped(retval, NULL, bid, gid, eid, NULL, 0, 1, TYPE_any,
- BATgroupmedian, NULL, NULL, NULL,
"aggr.median");
-}
-
-mal_export str AGGRquantile3(bat *retval, const bat *bid, const bat *gid,
const bat *eid, const bat *quantile);
-str
-AGGRquantile3(bat *retval, const bat *bid, const bat *gid, const bat *eid,
const bat *quantile)
-{
- return AGGRgrouped(retval, NULL, bid, gid, eid, NULL, 0, 1, TYPE_any,
- NULL, NULL, BATgroupquantile,
quantile,
- "aggr.quantile");
-}
-
mal_export str AGGRsubsum_bte(bat *retval, const bat *bid, const bat *gid,
const bat *eid, const bit *skip_nils, const bit *abort_on_error);
str
AGGRsubsum_bte(bat *retval, const bat *bid, const bat *gid, const bat *eid,
const bit *skip_nils, const bit *abort_on_error)
@@ -817,13 +800,20 @@ AGGRsubmax_val(bat *retval, const bat *b
return AGGRsubmaxcand_val(retval, bid, gid, eid, NULL, skip_nils);
}
-mal_export str AGGRmedian(bat *retval, const bat *bid, const bit *skip_nils);
+mal_export str AGGRmedian(void *retval, const bat *bid);
str
-AGGRmedian(bat *retval, const bat *bid, const bit *skip_nils)
+AGGRmedian(void *retval, const bat *bid)
{
- return AGGRgrouped(retval, NULL, bid, NULL, NULL, NULL, *skip_nils,
- 0, TYPE_any, BATgroupmedian, NULL,
- NULL, NULL, "aggr.submedian");
+ str err;
+ bat rval;
+ if ((err = AGGRgrouped(&rval, NULL, bid, NULL, NULL, NULL, 1,
+ 0, TYPE_any, BATgroupmedian,
NULL,
+ NULL, NULL,
"aggr.submedian")) == MAL_SUCCEED) {
+ oid pos = 0;
+ err = ALGfetchoid(retval, &rval, &pos);
+ BBPrelease(rval);
+ }
+ return err;
}
mal_export str AGGRsubmedian(bat *retval, const bat *bid, const bat *gid,
const bat *eid, const bit *skip_nils);
@@ -845,13 +835,20 @@ AGGRsubmediancand(bat *retval, const bat
}
/* quantile functions, could make median functions obsolete completely */
-mal_export str AGGRquantile(bat *retval, const bat *bid, const bat *quantile,
const bit *skip_nils);
+mal_export str AGGRquantile(void *retval, const bat *bid, const bat *qid);
str
-AGGRquantile(bat *retval, const bat *bid, const bat *quantile, const bit
*skip_nils)
+AGGRquantile(void *retval, const bat *bid, const bat *qid)
{
- return AGGRgrouped(retval, NULL, bid, NULL, NULL, NULL, *skip_nils,
- 0, TYPE_any, NULL, NULL,
BATgroupquantile,
- quantile, "aggr.subquantile");
+ str err;
+ bat rval;
+ if ((err = AGGRgrouped(&rval, NULL, bid, NULL, NULL, NULL, 1,
+ 0, TYPE_any, NULL, NULL,
BATgroupquantile,
+ qid, "aggr.subquantile")) ==
MAL_SUCCEED) {
+ oid pos = 0;
+ err = ALGfetchoid(retval, &rval, &pos);
+ BBPrelease(rval);
+ }
+ return err;
}
mal_export str AGGRsubquantile(bat *retval, const bat *bid, const bat
*quantile, const bat *gid, const bat *eid, const bit *skip_nils);
diff --git a/monetdb5/modules/kernel/aggr.mal b/monetdb5/modules/kernel/aggr.mal
--- a/monetdb5/modules/kernel/aggr.mal
+++ b/monetdb5/modules/kernel/aggr.mal
@@ -859,16 +859,7 @@ address AGGRsubcountcand
comment "Grouped count aggregate with candidates list";
-command median(b:bat[:any_1],g:bat[:oid],e:bat[:any_2]) :bat[:any_1]
-address AGGRmedian3
-comment "Grouped median aggregate";
-
-function median(b:bat[:any_1]) :any_1;
- bn := submedian(b, true);
- return algebra.fetch(bn, 0@0);
-end aggr.median;
-
-command submedian(b:bat[:any_1],skip_nils:bit) :bat[:any_1]
+command median(b:bat[:any_1]) :any_1
address AGGRmedian
comment "Median aggregate";
@@ -881,16 +872,7 @@ address AGGRsubmediancand
comment "Grouped median aggregate with candidate list";
-command quantile(b:bat[:any_1],g:bat[:oid],e:bat[:any_2],q:bat[:dbl])
:bat[:any_1]
-address AGGRquantile3
-comment "Grouped quantile aggregate";
-
-function quantile(b:bat[:any_1],q:bat[:dbl]) :any_1;
- bn := subquantile(b, q, true);
- return algebra.fetch(bn, 0@0);
-end aggr.quantile;
-
-command subquantile(b:bat[:any_1],q:bat[:dbl],skip_nils:bit) :bat[:any_1]
+command quantile(b:bat[:any_1],q:bat[:dbl]) :any_1
address AGGRquantile
comment "Quantile aggregate";
@@ -900,7 +882,7 @@ comment "Grouped quantile aggregate";
command
subquantile(b:bat[:any_1],q:bat[:dbl],g:bat[:oid],e:bat[:any_2],s:bat[:oid],skip_nils:bit)
:bat[:any_1]
address AGGRsubquantilecand
-comment "Grouped median quantile with candidate list";
+comment "Grouped quantile aggregate with candidate list";
command str_group_concat(b:bat[:str],g:bat[:oid],e:bat[:any_1]) :bat[:str]
address AGGRstr_group_concat
diff --git a/monetdb5/modules/kernel/aggr.mal.sh
b/monetdb5/modules/kernel/aggr.mal.sh
--- a/monetdb5/modules/kernel/aggr.mal.sh
+++ b/monetdb5/modules/kernel/aggr.mal.sh
@@ -215,16 +215,7 @@ address AGGRsubcountcand
comment "Grouped count aggregate with candidates list";
-command median(b:bat[:any_1],g:bat[:oid],e:bat[:any_2]) :bat[:any_1]
-address AGGRmedian3
-comment "Grouped median aggregate";
-
-function median(b:bat[:any_1]) :any_1;
- bn := submedian(b, true);
- return algebra.fetch(bn, 0@0);
-end aggr.median;
-
-command submedian(b:bat[:any_1],skip_nils:bit) :bat[:any_1]
+command median(b:bat[:any_1]) :any_1
address AGGRmedian
comment "Median aggregate";
@@ -237,16 +228,7 @@ address AGGRsubmediancand
comment "Grouped median aggregate with candidate list";
-command quantile(b:bat[:any_1],g:bat[:oid],e:bat[:any_2],q:bat[:dbl])
:bat[:any_1]
-address AGGRquantile3
-comment "Grouped quantile aggregate";
-
-function quantile(b:bat[:any_1],q:bat[:dbl]) :any_1;
- bn := subquantile(b, q, true);
- return algebra.fetch(bn, 0@0);
-end aggr.quantile;
-
-command subquantile(b:bat[:any_1],q:bat[:dbl],skip_nils:bit) :bat[:any_1]
+command quantile(b:bat[:any_1],q:bat[:dbl]) :any_1
address AGGRquantile
comment "Quantile aggregate";
@@ -256,7 +238,7 @@ comment "Grouped quantile aggregate";
command
subquantile(b:bat[:any_1],q:bat[:dbl],g:bat[:oid],e:bat[:any_2],s:bat[:oid],skip_nils:bit)
:bat[:any_1]
address AGGRsubquantilecand
-comment "Grouped median quantile with candidate list";
+comment "Grouped quantile aggregate with candidate list";
EOF
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list