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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list