Changeset: ae218e7c9f3c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ae218e7c9f3c
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: subjoin
Log Message:
disable push of candidates for outer joins
diffs (32 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
@@ -1695,7 +1695,7 @@ rel2bin_join(backend *be, sql_rel *rel,
node *en = NULL, *n;
stmt *left = NULL, *right = NULL, *join = NULL, *jl, *jr, *lsel = NULL,
*rsel = NULL, *oleft = NULL, *oright = NULL;
stmt *ld = NULL, *rd = NULL;
- int need_left = (rel->flag == LEFT_JOIN);
+ int need_left = (rel->flag == LEFT_JOIN || rel->op == op_left ||
rel->op == op_full);
if (rel->l) { /* first construct the left sub relation */
left = subrel_bin(be, rel->l, refs);
@@ -1713,11 +1713,14 @@ rel2bin_join(backend *be, sql_rel *rel,
if (rel->r) { /* first construct the right sub relation */
right = subrel_bin(be, rel->r, refs);
if (right && right->type == st_project) {
- //right = rel2bin_post_project(be, right);
- printf("# JOIN right post_project \n");
- oright = right;
- rsel = right->op1;
- right = stmt_list(be, right->op4.lval);
+ if (rel->op == op_right || rel->op == op_full) {
+ right = rel2bin_post_project(be, right);
+ } else {
+ printf("# JOIN right post_project \n");
+ oright = right;
+ rsel = right->op1;
+ right = stmt_list(be, right->op4.lval);
+ }
}
}
if (!left || !right)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list