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

Reply via email to