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

Reply via email to