Changeset: 4cc759c56763 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4cc759c56763 Modified Files: gdk/gdk_aggr.c sql/server/rel_optimizer.c Branch: Oct2020 Log Message:
Merge with Jun2020 branch. diffs (109 lines): diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -3683,7 +3683,8 @@ static BAT * doBATgroupquantile(BAT *b, BAT *g, BAT *e, BAT *s, int tp, double quantile, bool skip_nils, bool abort_on_error, bool average) { - bool freeb = false, freeg = false; + BAT *origb = b; + BAT *origg = g; oid min, max; BUN ngrp; BUN nils = 0; @@ -3750,12 +3751,10 @@ doBATgroupquantile(BAT *b, BAT *g, BAT * b = BATproject(s, b); if (b == NULL) return NULL; - freeb = true; if (g) { g = BATproject(s, g); if (g == NULL) goto bunins_failed; - freeg = true; } } @@ -3775,27 +3774,25 @@ doBATgroupquantile(BAT *b, BAT *g, BAT * else bn = COLcopy(b, tp, false, TRANSIENT); BAThseqbase(bn, g->tseqbase); /* deals with NULL */ - if (freeb) + if (b != origb) BBPunfix(b->batCacheid); - if (freeg) + if (g != origg) BBPunfix(g->batCacheid); return bn; } if (BATsort(&t1, &t2, NULL, g, NULL, NULL, false, false, false) != GDK_SUCCEED) goto bunins_failed; - if (freeg) + if (g != origg) BBPunfix(g->batCacheid); g = t1; - freeg = true; if (BATsort(&t1, NULL, NULL, b, t2, g, false, false, false) != GDK_SUCCEED) { BBPunfix(t2->batCacheid); goto bunins_failed; } - if (freeb) + if (b != origb) BBPunfix(b->batCacheid); b = t1; - freeb = true; BBPunfix(t2->batCacheid); if (average) @@ -3969,7 +3966,7 @@ doBATgroupquantile(BAT *b, BAT *g, BAT * goto bunins_failed; } - if (freeb) + if (b != origb) BBPunfix(b->batCacheid); bn->tkey = BATcount(bn) <= 1; @@ -3981,15 +3978,15 @@ doBATgroupquantile(BAT *b, BAT *g, BAT * "e=" ALGOOPTBATFMT ",s=" ALGOOPTBATFMT ",quantile=%g,average=%s -> " ALGOOPTBATFMT "; start " OIDFMT ", count " BUNFMT " (" LLFMT " usec)\n", - ALGOBATPAR(b), ALGOOPTBATPAR(g), ALGOOPTBATPAR(e), + ALGOBATPAR(origb), ALGOOPTBATPAR(origg), ALGOOPTBATPAR(e), ALGOOPTBATPAR(s), quantile, average ? "true" : "false", ALGOOPTBATPAR(bn), ci.seq, ncand, GDKusec() - t0); return bn; bunins_failed: - if (freeb) + if (b && b != origb) BBPunfix(b->batCacheid); - if (freeg) + if (g && g != origg) BBPunfix(g->batCacheid); if (bn) BBPunfix(bn->batCacheid); diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -889,8 +889,8 @@ order_joins(visitor *v, list *rels, list /* complex expressions may touch multiple base tables * Should be pushed up to extra selection. * */ - if (cje->type != e_cmp || is_complex_exp(cje->flag) || !find_prop(cje->p, PROP_HASHCOL) /*|| - (cje->type == e_cmp && cje->f == NULL)*/) { + if (cje->type != e_cmp || is_complex_exp(cje->flag) || !find_prop(cje->p, PROP_HASHCOL) || + (cje->type == e_cmp && cje->f == NULL)) { l = find_one_rel(rels, cje->l); r = find_one_rel(rels, cje->r); } @@ -1677,7 +1677,7 @@ rel_push_count_down(visitor *v, sql_rel } static bool -check_projection_on_foreignside(sql_rel *r, list *pexps, int fk_left) +check_projection_on_foreignside(sql_rel *r, list *pexps, int fk_left) { /* projection columns from the foreign side */ if (list_empty(pexps)) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list