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

Window functions are not allowed inside aggregates


diffs (27 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
@@ -4508,6 +4508,13 @@ rel_rankop(sql_query *query, sql_rel **r
                if (uaname)
                        GDKfree(uaname);
                return NULL;
+       } else if (is_sql_aggr(f)) {
+               char *uaname = GDKmalloc(strlen(aname) + 1);
+               (void) sql_error(sql, 02, SQLSTATE(42000) "%s: window functions 
not allowed inside aggregates",
+                                                uaname ? toUpperCopy(uaname, 
aname) : aname);
+               if (uaname)
+                       GDKfree(uaname);
+               return NULL;
        } else if (is_sql_window(f)) {
                char *uaname = GDKmalloc(strlen(aname) + 1);
                (void) sql_error(sql, 02, SQLSTATE(42000) "%s: window functions 
cannot be nested",
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
@@ -115,4 +115,6 @@ select 1 from analytics order by sum(sum
 
 select 1 from analytics having sum(aa) over (); --error, window function not 
allowed in having clause
 
+select sum(avg(aa) over ()) over () from analytics; --error, window functions 
inside aggregate
+
 drop table analytics;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to