Changeset: bc157090c301 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc157090c301 Modified Files: sql/server/rel_optimizer.c sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.err sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.out Branch: Jul2015 Log Message:
fixed many_union_all bug 3879 diffs (59 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 @@ -4194,6 +4194,8 @@ rel_push_project_down_union(int *changes if (need_distinct) set_distinct(rel); (*changes)++; + rel->l = rel_merge_projects(changes, sql, rel->l); + rel->r = rel_merge_projects(changes, sql, rel->r); return rel; } return rel; @@ -7646,13 +7648,8 @@ static sql_rel * if (gp.cnt[op_select] || gp.cnt[op_join]) rel = rewrite(sql, rel, &rel_use_index, &changes); - if (gp.cnt[op_project]) { - int lchanges = 0; - rel = rewrite_topdown(sql, rel, &rel_push_project_down_union, &lchanges); - if (lchanges) - rel = rewrite(sql, rel, &rel_merge_projects, &lchanges); - changes += lchanges; - } + if (gp.cnt[op_project]) + rel = rewrite_topdown(sql, rel, &rel_push_project_down_union, &changes); /* Remove unused expressions */ if (level <= 0) diff --git a/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.err b/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.err --- a/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.err +++ b/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.err @@ -1,4 +1,4 @@ -stderr of test 'many_union_all.Bug-3897` in directory 'sql/test/BugTracker-2015` itself: +stderr of test 'many_union_all.Bug-3879` in directory 'sql/test/BugTracker-2015` itself: # 16:32:11 > diff --git a/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.out b/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.out --- a/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.out +++ b/sql/test/BugTracker-2015/Tests/many_union_all.Bug-3879.stable.out @@ -1,4 +1,4 @@ -stdout of test 'many_union_all.Bug-3897` in directory 'sql/test/BugTracker-2015` itself: +stdout of test 'many_union_all.Bug-3879` in directory 'sql/test/BugTracker-2015` itself: # 16:32:11 > @@ -147,10 +147,11 @@ Ready. % a # name % int # type % 1 # length -[ 0 ] [ 3 ] [ 6 ] [ 7 ] +[ 0 ] +#DROP TABLE foo; #ROLLBACK; # 16:32:11 > _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list