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

Fix for order by with aggregations within the window definition.


diffs (62 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
@@ -4855,8 +4855,6 @@ rel_rankop(mvc *sql, sql_rel **rel, symb
        /* Order By */
        if (order_by_clause) {
                obe = rel_order_by(sql, &pp, order_by_clause, nf);
-               if (!obe)
-                       return NULL;
                if (!obe && !group && !gbe) { /* try with implicit groupby */
                        /* reset error */
                        sql->session->status = 0;
@@ -4864,6 +4862,8 @@ rel_rankop(mvc *sql, sql_rel **rel, symb
                        p = pp = rel_project(sql->sa, p, sa_list(sql->sa));
                        obe = rel_order_by(sql, &p, order_by_clause, f);
                }
+               if (!obe)
+                       return NULL;
                if (p->op == op_groupby) {
                        sql_rel *npp = pp;
 
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
@@ -77,6 +77,6 @@ select min(aa) over (partition by sum(bb
 
 select min(aa) over (partition by sum(aa)) from analytics; ---error
 
-select rank() over (order by sum(aa)) from analytics; --TODO
+select rank() over (order by sum(aa)) from analytics;
 
 drop table analytics;
diff --git a/sql/test/analytics/Tests/analytics09.stable.err 
b/sql/test/analytics/Tests/analytics09.stable.err
--- a/sql/test/analytics/Tests/analytics09.stable.err
+++ b/sql/test/analytics/Tests/analytics09.stable.err
@@ -55,10 +55,6 @@ MAPI  = (monetdb) /var/tmp/mtest-9405/.s
 QUERY = select min(aa) over (partition by sum(aa)) from analytics; ---error
 ERROR = !SELECT: cannot use non GROUP BY column 'aa' in query results without 
an aggregate function
 CODE  = 42000
-MAPI  = (monetdb) /var/tmp/mtest-10884/.s.monetdb.34034
-QUERY = select rank() over (order by sum(aa)) from analytics; --TODO
-ERROR = !Cannot use non GROUP BY column 'aa' in query results without an 
aggregate function
-CODE  = 42000
 
 # 13:13:17 >  
 # 13:13:17 >  "Done."
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
@@ -277,6 +277,12 @@ Ready.
 [ 1    ]
 [ 1    ]
 [ 1    ]
+#select rank() over (order by sum(aa)) 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