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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list