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]

Reply via email to