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

Make sure remote tables rewriter always runs last (fixes sqlancer20 assertion 
error)


diffs (27 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
@@ -10009,11 +10009,14 @@ rel_optimizer(mvc *sql, sql_rel *rel, in
 #ifndef NDEBUG
        assert(level < 20);
 #endif
-       /* Run the following optimizers only once at the end to avoid an 
infinite optimization loop */
+       /* Run rel_push_select_up only once at the end to avoid an infinite 
optimization loop */
        if (opt == 2)
                rel = rel_visitor_bottomup(&v, rel, &rel_push_select_up);
+       if (gp.needs_setjoin_rewrite)
+               rel = rel_visitor_bottomup(&v, rel, 
&rel_setjoins_2_joingroupby);
 
        /* merge table rewrites may introduce remote or replica tables */
+       /* at the moment, make sure the remote table rewriters always run last*/
        if (gp.needs_mergetable_rewrite || gp.needs_remote_replica_rewrite) {
                v.data = NULL;
                rel = rel_visitor_bottomup(&v, rel, &rel_rewrite_remote);
@@ -10022,7 +10025,5 @@ rel_optimizer(mvc *sql, sql_rel *rel, in
                v.data = &level;
                rel = rel_visitor_bottomup(&v, rel, &rel_remote_func);
        }
-       if (gp.needs_setjoin_rewrite)
-               rel = rel_visitor_bottomup(&v, rel, 
&rel_setjoins_2_joingroupby);
        return rel;
 }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to