Changeset: 65789d0fe9c3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/65789d0fe9c3
Modified Files:
        sql/server/rel_optimizer.c
Branch: default
Log Message:

Make join2smi optimization more restrictive for correctness


diffs (18 lines):

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
@@ -5460,11 +5460,12 @@ find_candidate_join2semi(sql_rel *rel, b
 
                if (ok) {
                        ok = false;
-                       /* if all join expressions can be pushed down, then it 
cannot be rewritten into a semijoin */
+                       /* if all join expressions can be pushed down or have 
function calls, then it cannot be rewritten into a semijoin */
                        for (node *n=rel->exps->h; n && !ok; n = n->next) {
                                sql_exp *e = n->data;
 
-                               ok |= !rel_has_cmp_exp(l, e) && 
!rel_has_cmp_exp(r, e);
+                               ok |= e->type == e_cmp && (e->flag == cmp_equal 
|| e->flag == mark_in) &&
+                                         !exp_has_func(e) && 
!rel_has_cmp_exp(l, e) && !rel_has_cmp_exp(r, e);
                        }
                }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to