Changeset: d0e26ebd5b38 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d0e26ebd5b38
Modified Files:
        sql/backends/monet5/rel_physical.c
        sql/backends/monet5/rel_pphash.c
Branch: pp_hashjoin
Log Message:

Use rel2bin_oahash_rightouterjoin() for all right-outer-joins


diffs (42 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
@@ -869,7 +869,7 @@ rel_pipeline(visitor *v, sql_rel *rel, b
                                if (rel->single || rel->op == op_left)
                                        rel->oahash = 2;
                                else if (rel->op == op_right)
-                                       rel->oahash = 1;
+                                       rel->oahash = 2;
                                else if (rel_getcount(v->sql, l) < 
rel_getcount(v->sql, r))
                                        rel->oahash = 1;
                                else
diff --git a/sql/backends/monet5/rel_pphash.c b/sql/backends/monet5/rel_pphash.c
--- a/sql/backends/monet5/rel_pphash.c
+++ b/sql/backends/monet5/rel_pphash.c
@@ -135,7 +135,7 @@ oahash_probe(backend *be, sql_rel *rel, 
        (void) outer;
 
        stmt *prb_res = NULL, *outerm = NULL;
-       bool has_leftouter = (rel->op == op_left || rel->op == op_full || 
(rel->op == op_right && rel->oahash == 1));
+       bool has_leftouter = (rel->op == op_left || rel->op == op_full /*|| 
(rel->op == op_right && rel->oahash == 1)*/);
 
        /* stmts_ht is in the same order as the join columns */
        for (node *n = exps_cmp_prb->h, *m = stmts_ht->op4.lval->h, *o = 
jexps->h; n && m && o; n = n->next, m = m->next, o = o->next) {
@@ -425,7 +425,7 @@ rel2bin_oahash_equi_join(backend *be, sq
        if (prb_res == NULL) return NULL;
 
        /*** PROJECT RESULT PHASE ***/
-       bit leftouter = (rel->op == op_left || rel->op == op_full || (rel->op 
== op_right && rel->oahash == 1));
+       bit leftouter = (rel->op == op_left || rel->op == op_full /*|| (rel->op 
== op_right && rel->oahash == 1)*/);
        list *lp = oahash_project_prb(be, exps_prj_prb, prb_res, stmts_ht->op3, 
leftouter, sub, probed_rowids);
        list *lh = oahash_project_hsh(be, exps_prj_hsh, stmts_ht, prb_res, 
leftouter, hsh_mrk);
 
@@ -1347,7 +1347,7 @@ rel2bin_oahash(backend *be, sql_rel *rel
     } else if (is_outerjoin(rel->op)) {
                if (rel->op == op_full) {
                        return rel2bin_oahash_fullouterjoin(be, rel, refs);
-               } else if (rel->op == op_right && rel->single ) {
+               } else if (rel->op == op_right /* && rel->single */) {
                        return rel2bin_oahash_rightouterjoin(be, rel, refs);
                } else {
                        return rel2bin_oahash_leftouterjoin(be, rel, refs);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to