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