Changeset: 7bce53b1563f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7bce53b1563f
Modified Files:
        sql/server/rel_select.c
        sql/test/analytics/Tests/analytics09.sql
        sql/test/analytics/Tests/analytics09.stable.out
Branch: default
Log Message:

Add order by expressions to just created group by relation re-write.


diffs (50 lines):

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
@@ -4864,12 +4864,19 @@ rel_rankop(mvc *sql, sql_rel **rel, symb
                }
                if (!obe)
                        return NULL;
+
                if (p->op == op_groupby) {
                        sql_rel *npp = pp;
 
                        pp = p;
                        p = rel_project(sql->sa, npp, rel_projections(sql, npp, 
NULL, 1, 0));
                }
+
+               for(n = obe->h ; n ; n = n->next) {
+                       sql_exp *en = n->data;
+
+                       n->data = opt_groupby_add_exp(sql, p, pp, en);
+               }
                if (p->r) {
                        p->r = list_merge(sa_list(sql->sa), p->r, (fdup)NULL); 
/* make sure the p->r is a different list than the gbe list */
                        for(n = obe->h ; n ; n = n->next) {
diff --git a/sql/test/analytics/Tests/analytics09.sql 
b/sql/test/analytics/Tests/analytics09.sql
--- a/sql/test/analytics/Tests/analytics09.sql
+++ b/sql/test/analytics/Tests/analytics09.sql
@@ -85,6 +85,6 @@ select rank() over (order by sum(aa), bb
 
 select min(aa) over (order by sum(bb)) from analytics; --error
 
---select dense_rank() over (partition by sum(aa) order by avg(bb)) from 
analytics; TODO
+select dense_rank() over (partition by sum(aa) order by avg(bb)) from 
analytics;
 
 drop table analytics;
diff --git a/sql/test/analytics/Tests/analytics09.stable.out 
b/sql/test/analytics/Tests/analytics09.stable.out
--- a/sql/test/analytics/Tests/analytics09.stable.out
+++ b/sql/test/analytics/Tests/analytics09.stable.out
@@ -289,6 +289,12 @@ Ready.
 % int # type
 % 1 # length
 [ 1    ]
+#select dense_rank() over (partition by sum(aa) order by avg(bb)) from 
analytics;
+% sys.L6 # table_name
+% L6 # name
+% int # type
+% 1 # length
+[ 1    ]
 #drop table analytics;
 
 # 13:13:17 >  
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to