Changeset: 914c545a9817 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/914c545a9817
Modified Files:
        sql/server/rel_optimize_proj.c
        sql/test/rel-optimizers/Tests/const-aggr-elim.test
Branch: const_aggr_elim
Log Message:

Fixed problem which caused mtests fail


diffs (58 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -3031,16 +3031,13 @@ rel_const_aggr_elimination(visitor *v, s
        {
                list *exps=g->exps;
 
-               if(g->op == op_groupby && !list_empty(exps))
+               if(g->op == op_groupby && !list_empty(exps) && 
!list_empty(g->r))
                {
                        for(node *n = exps->h; n; n = n->next)
                        {
                                sql_exp *e = n->data;
 
-                               // SELECT 1 + avg(3), avg(3) * 10 FROM baz 
GROUP BY b;
-
                                // Check aggr type! exp_aggr_is_count(e)
-                               // only average for now!
                                if(e->type == e_aggr && 
                                        !((sql_subfunc *)e->f)->func->s && 
                                strcmp(((sql_subfunc *)e->f)->func->base.name, 
"avg") == 0)
@@ -3057,6 +3054,11 @@ rel_const_aggr_elimination(visitor *v, s
 
                                                        n->data=w;
 
+                                                       // Alternative;
+                                                       
//list_append_before(g->exps,n,w);
+                                                       //m->data=NULL;
+                                                       
//list_remove_node(g->exps,NULL,n);
+
                                                        v->changes++;
                                                }
                                        }
diff --git a/sql/test/rel-optimizers/Tests/const-aggr-elim.test 
b/sql/test/rel-optimizers/Tests/const-aggr-elim.test
--- a/sql/test/rel-optimizers/Tests/const-aggr-elim.test
+++ b/sql/test/rel-optimizers/Tests/const-aggr-elim.test
@@ -13,6 +13,21 @@ 6
 7
 
 query I rowsort 
+select avg(3) from generate_series(cast(0 as integer), 10, 1);
+----
+3
+
+query T nosort
+PLAN SELECT avg(3) FROM generate_series(cast(0 as integer), 10, 1);
+----
+project (
+| group by (
+| | table ("sys"."generate_series"(int(31) "0", int(4) "10", int(1) "1"), 
+| | ) [ "%1"."value" ]
+| ) [  ] [ "sys"."avg" no nil (tinyint(2) "3") UNIQUE as "%2"."%2" ]
+) [ "%2"."%2" UNIQUE ]
+
+query I rowsort 
 SELECT avg(3) FROM baz GROUP BY b
 ----
 3
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to