Changeset: dec038ce2b02 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dec038ce2b02
Modified Files:
sql/server/rel_select.c
sql/test/analytics/Tests/analytics00.sql
sql/test/analytics/Tests/analytics00.stable.out
Branch: linear-hashing
Log Message:
Revert exp_ref to exp_copy, for ordering parameter for window_bound function
call. This is required because, ordering columns, ie ->r are not projected by
projection relations
Thanks Bernardo!
diffs (truncated from 547 to 300 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
@@ -4791,7 +4791,7 @@ rel_rankop(sql_query *query, sql_rel **r
}
if (frame_clause || supports_frames)
- ie = obe ? exp_ref(sql->sa, (sql_exp*) obe->t->data) : in;
+ ie = exp_copy(sql, obe ? (sql_exp*) obe->t->data : in);
/* Frame */
if (frame_clause) {
diff --git a/sql/test/analytics/Tests/analytics00.sql
b/sql/test/analytics/Tests/analytics00.sql
--- a/sql/test/analytics/Tests/analytics00.sql
+++ b/sql/test/analytics/Tests/analytics00.sql
@@ -176,4 +176,19 @@ create table overflowme (a int); --we te
insert into overflowme values (2147483644), (2147483645), (2147483646);
select floor(avg(a) over ()) from overflowme;
+CREATE TABLE myorders (
+O_ORDERKEY INTEGER NOT NULL,
+O_CUSTKEY INTEGER NOT NULL,
+O_ORDERSTATUS CHAR(1) NOT NULL,
+O_TOTALPRICE DECIMAL(15,2) NOT NULL,
+O_ORDERDATE DATE NOT NULL,
+O_ORDERPRIORITY CHAR(15) NOT NULL,
+O_CLERK CHAR(15) NOT NULL,
+O_SHIPPRIORITY INTEGER NOT NULL,
+O_COMMENT VARCHAR(79) NOT NULL);
+
+SELECT o_custkey, EXTRACT(MONTH FROM o_orderdate) AS purchase_month,
+ CAST(SUM(o_totalprice) OVER (PARTITION BY o_custkey ORDER BY
EXTRACT(MONTH FROM o_orderdate) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT
ROW) AS DECIMAL(15,2))
+FROM myorders;
+
rollback;
diff --git a/sql/test/analytics/Tests/analytics00.stable.out
b/sql/test/analytics/Tests/analytics00.stable.out
--- a/sql/test/analytics/Tests/analytics00.stable.out
+++ b/sql/test/analytics/Tests/analytics00.stable.out
@@ -188,8 +188,8 @@ stdout of test 'analytics00` in director
[ 15 ]
[ 15 ]
#select cast(sum(aa) over (partition by bb) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ 9 ]
@@ -203,8 +203,8 @@ stdout of test 'analytics00` in director
[ 26 ]
[ NULL ]
#select cast(sum(aa) over (partition by bb order by bb asc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ 9 ]
@@ -218,8 +218,8 @@ stdout of test 'analytics00` in director
[ 26 ]
[ NULL ]
#select cast(sum(aa) over (partition by bb order by bb desc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ NULL ]
@@ -233,8 +233,8 @@ stdout of test 'analytics00` in director
[ 9 ]
[ 9 ]
#select cast(sum(aa) over (order by bb desc) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ NULL ]
@@ -248,8 +248,8 @@ stdout of test 'analytics00` in director
[ 46 ]
[ 46 ]
#select cast(prod(aa) over (partition by bb) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ 24 ]
@@ -263,8 +263,8 @@ stdout of test 'analytics00` in director
[ 450 ]
[ NULL ]
#select cast(prod(aa) over (partition by bb order by bb asc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ 24 ]
@@ -278,8 +278,8 @@ stdout of test 'analytics00` in director
[ 450 ]
[ NULL ]
#select cast(prod(aa) over (partition by bb order by bb desc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ NULL ]
@@ -293,8 +293,8 @@ stdout of test 'analytics00` in director
[ 24 ]
[ 24 ]
#select cast(prod(aa) over (order by bb desc) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 6 # length
[ NULL ]
@@ -548,8 +548,8 @@ stdout of test 'analytics00` in director
[ 15 ]
[ 15 ]
#select cast(sum(cc) over (partition by bb) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ 9 ]
@@ -563,8 +563,8 @@ stdout of test 'analytics00` in director
[ 26 ]
[ NULL ]
#select cast(sum(cc) over (partition by bb order by bb asc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ 9 ]
@@ -578,8 +578,8 @@ stdout of test 'analytics00` in director
[ 26 ]
[ NULL ]
#select cast(sum(cc) over (partition by bb order by bb desc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ NULL ]
@@ -593,8 +593,8 @@ stdout of test 'analytics00` in director
[ 9 ]
[ 9 ]
#select cast(sum(cc) over (order by bb desc) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 2 # length
[ NULL ]
@@ -608,8 +608,8 @@ stdout of test 'analytics00` in director
[ 46 ]
[ 46 ]
#select cast(prod(cc) over (partition by bb) as bigint) from analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ 24 ]
@@ -623,8 +623,8 @@ stdout of test 'analytics00` in director
[ 450 ]
[ NULL ]
#select cast(prod(cc) over (partition by bb order by bb asc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ 24 ]
@@ -638,8 +638,8 @@ stdout of test 'analytics00` in director
[ 450 ]
[ NULL ]
#select cast(prod(cc) over (partition by bb order by bb desc) as bigint) from
analytics;
-% sys.%1 # table_name
-% %1 # name
+% sys.%3 # table_name
+% %3 # name
% bigint # type
% 3 # length
[ NULL ]
@@ -833,7 +833,7 @@ stdout of test 'analytics00` in director
[ 10 ]
[ 10 ]
#select min(aa) over () from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% int # type
% 1 # length
@@ -848,7 +848,7 @@ stdout of test 'analytics00` in director
[ 2 ]
[ 2 ]
#select max(aa) over () from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% int # type
% 2 # length
@@ -863,7 +863,7 @@ stdout of test 'analytics00` in director
[ 15 ]
[ 15 ]
#select cast(sum(aa) over () as bigint) from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% bigint # type
% 2 # length
@@ -878,7 +878,7 @@ stdout of test 'analytics00` in director
[ 46 ]
[ 46 ]
#select cast(prod(aa) over () as bigint) from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% bigint # type
% 6 # length
@@ -893,7 +893,7 @@ stdout of test 'analytics00` in director
[ 259200 ]
[ 259200 ]
#select avg(aa) over () from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% double # type
% 24 # length
@@ -908,7 +908,7 @@ stdout of test 'analytics00` in director
[ 5.75 ]
[ 5.75 ]
#select count(aa) over () from analytics;
-% sys.%1 # table_name
+% sys. # table_name
% %1 # name
% bigint # type
% 1 # length
@@ -923,7 +923,7 @@ stdout of test 'analytics00` in director
[ 8 ]
[ 8 ]
#select count(*) over () from analytics;
-% sys.%2 # table_name
+% sys. # table_name
% %2 # name
% bigint # type
% 2 # length
@@ -938,13 +938,13 @@ stdout of test 'analytics00` in director
[ 10 ]
[ 10 ]
#select count(*) over ();
-% .%2 # table_name
+% . # table_name
% %2 # name
% bigint # type
% 1 # length
[ 1 ]
#select min(null) over () from analytics;
-% .%1 # table_name
+% . # table_name
% %1 # name
% char # type
% 0 # length
@@ -959,7 +959,7 @@ stdout of test 'analytics00` in director
[ NULL ]
[ NULL ]
#select max(null) over () from analytics;
-% .%1 # table_name
+% . # table_name
% %1 # name
% char # type
% 0 # length
@@ -974,7 +974,7 @@ stdout of test 'analytics00` in director
[ NULL ]
[ NULL ]
#select cast(sum(null) over () as bigint) from analytics;
-% .%1 # table_name
+% . # table_name
% %1 # name
% bigint # type
% 1 # length
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list