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