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