Changeset: 2923264ffb80 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2923264ffb80
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: default
Log Message:
Partly reverted changeset 45596e1afe7b, due to my own mistake
diffs (53 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
@@ -2525,7 +2525,7 @@ rel2bin_join(backend *be, sql_rel *rel,
(void) equality_only;
jexps = get_equi_joins_first(sql, jexps,
&equality_only);
/* generate a relational join (releqjoin) which does a
multi attribute (equi) join */
- for( en = jexps->h; en && !used_hash; en = en->next ) {
+ for( en = jexps->h; en ; en = en->next ) {
int join_idx = be->join_idx;
sql_exp *e = en->data;
stmt *s = NULL;
@@ -2545,15 +2545,14 @@ rel2bin_join(backend *be, sql_rel *rel,
list_append(lje, s->op1);
list_append(rje, s->op2);
list_append(exps, NULL);
- used_hash = 1; /* uses hash,
all jexps were consumed */
+ used_hash = 1;
} else {
/* hash lookup cannot be used,
clean leftover mal statements */
clean_mal_statements(be,
oldstop, oldvtop, oldvid);
}
}
- if (!s)
- s = exp_bin(be, e, left, right, NULL,
NULL, NULL, NULL, 0, 1, 0);
+ 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 */
return NULL;
@@ -3623,10 +3622,10 @@ rel2bin_select(backend *be, sql_rel *rel
sql_idx *i = p->value;
int oldvtop = be->mb->vtop, oldstop = be->mb->stop,
oldvid = be->mb->vid;
- if ((sel = rel2bin_hash_lookup(be, rel, sub, NULL, i,
en)))
- goto done;
- /* hash lookup cannot be used, clean leftover mal
statements */
- clean_mal_statements(be, oldstop, oldvtop, oldvid);
+ if (!(sel = rel2bin_hash_lookup(be, rel, sub, NULL, i,
en))) {
+ /* hash lookup cannot be used, clean leftover
mal statements */
+ clean_mal_statements(be, oldstop, oldvtop,
oldvid);
+ }
}
}
for( en = rel->exps->h; en; en = en->next ) {
@@ -3653,7 +3652,6 @@ rel2bin_select(backend *be, sql_rel *rel
}
}
-done:
if (sub && sel) {
sub = stmt_list(be, sub->op4.lval); /* protect against
references */
sub->cand = sel;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list