Changeset: d1077129c133 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d1077129c133
Modified Files:
sql/server/rel_optimize_sel.c
Branch: default
Log Message:
recompute uniqueness during join reordering
diffs (25 lines):
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -1616,7 +1616,7 @@ find_fk( mvc *sql, list *rels, list *exp
i->p = NULL;
je = exp_compare(sql->sa, i, t,
cmp_equal);
}
- t->p = prop_create(sql->sa,
PROP_HASHCOL, NULL);
+ //t->p = prop_create(sql->sa,
PROP_HASHCOL, NULL);
/* Remove all join expressions */
for (n = eje->h; n; n = n->next) {
@@ -2822,8 +2822,12 @@ exp_selectivity(visitor *v, sql_exp *e,
if (!is_semantics(e) || !has_nil(el) || !has_nil(er)) {
BUN lu = lv, ru = rv, nlv = lv, nrv = rv;
prop *up = NULL;
+ if (el->type == e_column && (is_select(l->op) ||
is_basetable(l->op)))
+ el = rel_find_exp(l, el);
if ((up = find_prop(el->p, PROP_NUNIQUES)))
lu = (BUN) up->value.dval;
+ if (er->type == e_column && (is_select(r->op) ||
is_basetable(r->op)))
+ er = rel_find_exp(r, er);
if ((up = find_prop(er->p, PROP_NUNIQUES)))
ru = (BUN) up->value.dval;
if (is_unique(el) || (is_unique(er) && runique)) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]