Changeset: 82d5502cfcd0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/82d5502cfcd0
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: Aug2024
Log Message:
fixed bug #7544. Make sure to have proper bats on each side of the join.
diffs (36 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
@@ -1834,10 +1834,28 @@ exp_bin(backend *be, sql_exp *e, stmt *l
if (left && right && (exps_card(e->r) != CARD_ATOM ||
!exps_are_atoms(e->r))) {
sql_subfunc *f = e->f;
- for (node *n = l->op4.lval->h ; n ; n = n->next)
- n->data = column(be, n->data);
- for (node *n = r->op4.lval->h ; n ; n = n->next)
- n->data = column(be, n->data);
+ bool first = true;
+ for (node *n = l->op4.lval->h ; n ; n =
n->next) {
+ stmt *s = n->data;
+ if (s->nrcols == 0) {
+ if (first)
+ n->data =
stmt_const(be, bin_find_smallest_column(be, left), n->data);
+ else
+ n->data = column(be, s);
+ }
+ first = false;
+ }
+ first = true;
+ for (node *n = r->op4.lval->h ; n ; n =
n->next) {
+ stmt *s = n->data;
+ if (s->nrcols == 0) {
+ if (first)
+ n->data =
stmt_const(be, bin_find_smallest_column(be, right), s);
+ else /* last arg maybe const */
+ n->data = column(be, s);
+ }
+ first = false;
+ }
return stmt_genjoin(be, l, r, f, is_anti(e),
swapped);
}
assert(!swapped);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]