Changeset: cc3a46000aea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cc3a46000aea
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/server/rel_optimizer.c
Branch: default
Log Message:

revert bogus checkin


diffs (116 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -2411,21 +2411,14 @@ rel2bin_join(backend *be, sql_rel *rel, 
        node *en = NULL, *n;
        stmt *left = NULL, *right = NULL, *join = NULL, *jl, *jr;
        stmt *ld = NULL, *rd = NULL;
-       stmt *lcand = NULL, *rcand = NULL;
        int need_left = (rel->flag == LEFT_JOIN);
 
        if (rel->l) /* first construct the left sub relation */
                left = subrel_bin(be, rel->l, refs);
        if (rel->r) /* first construct the right sub relation */
                right = subrel_bin(be, rel->r, refs);
-
-       if (list_length(rel->exps) > 1) {
-               left = subrel_project(be, left, refs, rel->l);
-               right = subrel_project(be, right, refs, rel->r);
-       } else {
-               lcand = left->cand;
-               rcand = right->cand;
-       }
+       left = subrel_project(be, left, refs, rel->l);
+       right = subrel_project(be, right, refs, rel->r);
        if (!left || !right)
                return NULL;
        left = row2cols(be, left);
@@ -2443,7 +2436,7 @@ rel2bin_join(backend *be, sql_rel *rel, 
                if (list_empty(jexps)) { /* cross product and continue after 
project */
                        stmt *l = bin_first_column(be, left);
                        stmt *r = bin_first_column(be, right);
-                       join = stmt_join_cand(be, l, r, lcand, rcand, 0, 
cmp_all, 0, 0, false);
+                       join = stmt_join(be, l, r, 0, cmp_all, 0, 0, false);
                }
 
                if (join) {
@@ -2479,11 +2472,6 @@ rel2bin_join(backend *be, sql_rel *rel, 
                                        }
                                }
 
-                               if ((lcand || rcand) && e->flag != cmp_equal) {
-                                       left = subrel_project(be, left, refs, 
rel->l);
-                                       right = subrel_project(be, right, refs, 
rel->r);
-                                       lcand = rcand = NULL;
-                               }
                                s = exp_bin(be, e, left, right, NULL, NULL, 
NULL, NULL, 0, 1, 0);
                                if (!s) {
                                        assert(sql->session->status == -10); /* 
Stack overflow errors shouldn't terminate the server */
@@ -2504,16 +2492,15 @@ rel2bin_join(backend *be, sql_rel *rel, 
                        }
                        if (list_length(lje) > 1) {
                                join = releqjoin(be, lje, rje, exps, used_hash, 
need_left, 0);
-                       } else if (!join || need_left || lcand || rcand) {
+                       } else if (!join || need_left) {
                                sql_exp *e = exps->h->data;
-                               join = stmt_join_cand(be, lje->h->data, 
rje->h->data, lcand, rcand, 0, cmp_equal, need_left, is_semantics(e), false);
-                               lcand = rcand = NULL;
+                               join = stmt_join(be, lje->h->data, 
rje->h->data, 0, cmp_equal, need_left, is_semantics(e), false);
                        }
                }
        } else {
                stmt *l = bin_first_column(be, left);
                stmt *r = bin_first_column(be, right);
-               join = stmt_join_cand(be, l, r, lcand, rcand, 0, cmp_all, 0, 0, 
rel->single);
+               join = stmt_join(be, l, r, 0, cmp_all, 0, 0, rel->single);
        }
        jl = stmt_result(be, join, 0);
        jr = stmt_result(be, join, 1);
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1136,10 +1136,8 @@ SQLparser(Client c)
                        setVarType(c->curprg->def, 0, 0);
                        if (backend_dumpstmt(be, c->curprg->def, r, 1, 0, 
c->query) < 0)
                                err = 1;
-                       /*
                        else
-                               opt = (r->card > CARD_ATOM);
-                               */
+                               opt = 1;
                } else {
                        char *q_copy = sa_strdup(m->sa, c->query);
 
diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -2076,15 +2076,8 @@ stmt_join_cand(backend *be, stmt *op1, s
                q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
                q = pushArgument(mb, q, op1->nr);
                q = pushArgument(mb, q, op2->nr);
-               if (!lcand)
-                       q = pushNil(mb, q, TYPE_bat);
-               else
-                       q = pushArgument(mb, q, lcand->nr);
-               if (!rcand)
-                       q = pushNil(mb, q, TYPE_bat);
-               else
-                       q = pushArgument(mb, q, rcand->nr);
                q = pushBit(mb, q, single?TRUE:FALSE); /* max_one */
+               assert(!lcand && !rcand);
                if (q == NULL)
                        return NULL;
                break;
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
@@ -9804,9 +9804,6 @@ rel_optimizer(mvc *sql, sql_rel *rel, in
 {
        int level = 0, changes = 1;
 
-       if (rel->card <= CARD_ATOM)
-               return rel;
-
        rel = rel_keep_renames(sql, rel);
        for( ;rel && level < 20 && changes; level++)
                rel = optimize_rel(sql, rel, &changes, level, value_based_opt, 
storage_based_opt);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to