Changeset: 02e09ae5e0e9 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/02e09ae5e0e9 Modified Files: sql/backends/monet5/rel_physical.c Branch: ordered-set-aggregates Log Message:
properly check for median in the physical optimizer diffs (28 lines): diff --git a/sql/backends/monet5/rel_physical.c b/sql/backends/monet5/rel_physical.c --- a/sql/backends/monet5/rel_physical.c +++ b/sql/backends/monet5/rel_physical.c @@ -17,8 +17,9 @@ #include "rel_exp.h" #include "rel_rel.h" -#define IS_ORDER_BASED_AGGR(name) (strcmp((name), "quantile") == 0 || strcmp((name), "quantile_avg") == 0 || \ - strcmp((name), "median") == 0 || strcmp((name), "median_avg") == 0) +#define IS_ORDER_BASED_AGGR(fname, argc) (\ + (argc == 2 && (strcmp((fname), "quantile") == 0 || strcmp((fname), "quantile_avg") == 0)) || \ + (argc == 1 && (strcmp((fname), "median") == 0 || strcmp((fname), "median_avg") == 0))) static sql_rel * rel_add_orderby(visitor *v, sql_rel *rel) @@ -31,10 +32,10 @@ rel_add_orderby(visitor *v, sql_rel *rel if (is_aggr(e->type)) { sql_subfunc *af = e->f; - list *aa = e->l; + list *aa = e->l; /* for now we only handle one sort order */ - if (IS_ORDER_BASED_AGGR(af->func->base.name) && aa && list_length(aa) == 2) { + if (aa && IS_ORDER_BASED_AGGR(af->func->base.name, list_length(aa))) { sql_exp *nobe = aa->h->data; if (nobe && !obe) { sql_rel *l = rel->l = rel_project(v->sql->sa, rel->l, rel_projections(v->sql, rel->l, NULL, 1, 1)); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org