Changeset: 7316fbd4e9d2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7316fbd4e9d2
Modified Files:
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/test/BugTracker-2011/Tests/All
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
Branch: Apr2011
Log Message:

fix bug 2798 (use correct old project list)

fixed bug 2807 (aggr on with primary key problems). Properly find column using
an expression.


diffs (56 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
@@ -58,6 +58,8 @@
                node *cn;
                sql_table *t = rel->l;
 
+               if (rname && strcmp(t->base.name, rname) != 0)
+                       return NULL;
                if (rel->exps) {
                        sql_exp *rename = exps_bind_column(rel->exps, name, 
NULL);
                        if (!rename ||
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3936,11 +3936,15 @@
                        if (*rel) {
                                /* current projection list */
                                sql_rel *p = *rel;
-                               list *pre_proj = rel_projections(sql, *rel, 
NULL, 1, 1);
+                               list *pre_proj = (*rel)->exps;
+
                                if (is_project((*rel)->op) && (*rel)->l) {
+                                       (*rel)->exps = NULL;
                                        p = rel_dup((*rel)->l);
                                        rel_destroy(*rel);
                                        *rel = NULL;
+                               } else {
+                                       pre_proj = rel_projections(sql, *rel, 
NULL, 1, 1);
                                }
                                if (*rel && is_project((*rel)->op) && 
!(*rel)->l) {
                                        list *l = (*rel)->exps;
diff --git a/sql/test/BugTracker-2011/Tests/All 
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -7,3 +7,4 @@
 nested_select.Bug-2801
 ambigous_idx_name.Bug-2800
 crash_on_alias.Bug-2798
+groupby_primary_key.Bug-2807
diff --git a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out 
b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
--- a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
+++ b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
@@ -17,12 +17,6 @@
 # MonetDB/SQL module loaded
 
 Ready.
-# SQL catalog created, loading sql scripts once
-could not find (null).e
-dbg.d
-dbg.L10
-L12.L12
-dbg.d
 
 Over..
 
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to