Changeset: f334c13c7a23 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f334c13c7a23 Modified Files: gdk/gdk_analytic_func.c sql/test/analytics/Tests/analytics01.sql sql/test/analytics/Tests/analytics01.stable.out Branch: Nov2019 Log Message:
Merge with Apr2019 branch diffs (truncated from 1916 to 300 lines): diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c --- a/gdk/gdk_analytic_func.c +++ b/gdk/gdk_analytic_func.c @@ -585,7 +585,7 @@ GDKanalyticalnthvalue(BAT *r, BAT *b, BA #define ANALYTICAL_LAG_IMP(TPE) \ do { \ - TPE *rp, *rb, *bp, *rend, \ + TPE *rp, *rb, *bp, *nbp, *rend, \ def = *((TPE *) default_value), next; \ bp = (TPE*)Tloc(b, 0); \ rb = rp = (TPE*)Tloc(r, 0); \ @@ -601,8 +601,9 @@ GDKanalyticalnthvalue(BAT *r, BAT *b, BA if (*np) { \ ncnt = (np - pnp); \ rp += ncnt; \ + nbp = bp + ncnt; \ ANALYTICAL_LAG_CALC(TPE); \ - bp += (lag < ncnt) ? lag : 0; \ + bp = nbp; \ pnp = np; \ } \ } \ diff --git a/sql/test/analytics/Tests/analytics01.sql b/sql/test/analytics/Tests/analytics01.sql --- a/sql/test/analytics/Tests/analytics01.sql +++ b/sql/test/analytics/Tests/analytics01.sql @@ -207,6 +207,10 @@ select aa, bb, lead(aa, 2, 100) over (pa select nth_value(aa, aa) over () from analytics; select nth_value(1, aa) over () from analytics; +create table t1 (col1 int, col2 int); +insert into t1 values (8481, 0), (8489, 0), (8489, 1), (8498, 0), (8498, 1), (8498, 2), (8507, 0), (8507, 1), (8507, 2); +select col1, col2, lag(col2) over (partition by col1 ORDER BY col2), lag(col2, 2) over (partition by col1 ORDER BY col2), lag(col2, 3) over (partition by col1 ORDER BY col2) from t1; + rollback; select ntile(aa) over () from analytics; --error diff --git a/sql/test/analytics/Tests/analytics01.stable.out b/sql/test/analytics/Tests/analytics01.stable.out --- a/sql/test/analytics/Tests/analytics01.stable.out +++ b/sql/test/analytics/Tests/analytics01.stable.out @@ -28,8 +28,8 @@ stdout of test 'analytics01` in director [ 10 ] #start transaction; #select percent_rank() over (partition by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -43,8 +43,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (partition by aa order by aa asc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -58,8 +58,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (partition by aa order by aa desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -73,8 +73,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (order by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -88,8 +88,8 @@ stdout of test 'analytics01` in director [ 0.8888888889 ] [ 1 ] #select percent_rank() over (order by aa desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -103,8 +103,8 @@ stdout of test 'analytics01` in director [ 0.8888888889 ] [ 0.8888888889 ] #select percent_rank() over (partition by bb) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -118,8 +118,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (partition by bb order by bb asc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -133,8 +133,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (partition by bb order by bb desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -148,8 +148,8 @@ stdout of test 'analytics01` in director [ 0 ] [ 0 ] #select percent_rank() over (order by bb) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -163,8 +163,8 @@ stdout of test 'analytics01` in director [ 0.6666666667 ] [ 1 ] #select percent_rank() over (order by bb desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0 ] @@ -178,8 +178,8 @@ stdout of test 'analytics01` in director [ 0.7777777778 ] [ 0.7777777778 ] #select cume_dist() over (partition by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.2 ] @@ -193,8 +193,8 @@ stdout of test 'analytics01` in director [ 0.9 ] [ 1 ] #select cume_dist() over (partition by aa order by aa asc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.2 ] @@ -208,8 +208,8 @@ stdout of test 'analytics01` in director [ 0.9 ] [ 1 ] #select cume_dist() over (partition by aa order by aa desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.2 ] @@ -223,8 +223,8 @@ stdout of test 'analytics01` in director [ 0.9 ] [ 1 ] #select cume_dist() over (order by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 1 ] @@ -238,8 +238,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select cume_dist() over (order by aa desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 1 ] @@ -253,8 +253,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select cume_dist() over (partition by bb) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.3 ] @@ -268,8 +268,8 @@ stdout of test 'analytics01` in director [ 0.9 ] [ 1 ] #select cume_dist() over (partition by bb order by bb asc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.3 ] @@ -283,8 +283,8 @@ stdout of test 'analytics01` in director [ 0.9 ] [ 1 ] #select cume_dist() over (partition by bb order by bb desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 0.1 ] @@ -298,8 +298,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select cume_dist() over (order by bb) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 1 ] @@ -313,8 +313,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select cume_dist() over (order by bb desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % double # type % 24 # length [ 1 ] @@ -328,8 +328,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select ntile(1) over (partition by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % tinyint # type % 1 # length [ 1 ] @@ -343,8 +343,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select ntile(1) over (partition by aa order by aa asc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % tinyint # type % 1 # length [ 1 ] @@ -358,8 +358,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select ntile(1) over (partition by aa order by aa desc) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name +% L3 # name % tinyint # type % 1 # length [ 1 ] @@ -373,8 +373,8 @@ stdout of test 'analytics01` in director [ 1 ] [ 1 ] #select ntile(1) over (order by aa) from analytics; -% sys.L4 # table_name -% L4 # name +% sys.L3 # table_name _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list