Changeset: c189e3ba6264 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c189e3ba6264
Added Files:
        clients/Tests/SingleServer
        clients/mapiclient/Tests/SingleServer
        monetdb5/mal/Tests/SingleServer
        monetdb5/modules/mal/Tests/SingleServer
        sql/test/SQLite_regress/sqllogictest/Tests/SingleServer
        sql/test/ssqq/Tests/SingleServer
Modified Files:
        .hgtags
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        buildtools/selinux/monetdb.fc
        buildtools/selinux/monetdb.te
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        configure.ag
        debian/changelog
        gdk/gdk_analytic_func.c
        gdk/libbat.rc
        libversions
        monetdb5/tools/libmonetdb5.rc
        vertoo.data
Branch: default
Log Message:

Merged with linear-hashing


diffs (247 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -760,3 +760,6 @@ 4eb6068f63cf87fc6996daed59fbcc917c8b2881
 7186b517a584f0244e20eb7abe61f7a7c0c9ea1b Nov2019_SP2_release
 e1c7c70bceb205cf23b8a35179b628563871f949 Nov2019_17
 e1c7c70bceb205cf23b8a35179b628563871f949 Nov2019_SP3_release
+179977ed07cd8095f99a6a07968b8e9d1affa753 Nov2019_19
+e1c7c70bceb205cf23b8a35179b628563871f949 Nov2019_SP3_release
+179977ed07cd8095f99a6a07968b8e9d1affa753 Nov2019_SP3_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -789,7 +789,9 @@ do
   /usr/sbin/semodule -s ${selinuxvariant} -i \
     %{_datadir}/selinux/${selinuxvariant}/monetdb.pp &> /dev/null || :
 done
-/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb 
%{_rundir}/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 
%{_unitdir}/monetdbd.service &> /dev/null || :
+# use /var/run/monetdb since that's what it says in the monetdb.fc file
+# it says that because /run/monetdb for some reason doesn't work
+/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb 
/var/run/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 
%{_unitdir}/monetdbd.service &> /dev/null || :
 /usr/bin/systemctl try-restart monetdbd.service
 
 %postun selinux
@@ -941,6 +943,10 @@ fi
 %postun -p /sbin/ldconfig
 
 %changelog
+* Sat Feb 22 2020 Sjoerd Mullender <sjo...@acm.org> - 11.35.19-20200222
+- Rebuilt.
+- BZ#6829: NTILE window function returns incorrect results
+
 * Fri Feb 21 2020 Sjoerd Mullender <sjo...@acm.org> - 11.35.17-20200221
 - Rebuilt.
 - BZ#6827: CUME_DIST window function returns incorrect results
diff --git a/buildtools/selinux/monetdb.fc b/buildtools/selinux/monetdb.fc
--- a/buildtools/selinux/monetdb.fc
+++ b/buildtools/selinux/monetdb.fc
@@ -4,6 +4,6 @@
 /var/log/monetdb(/.*)?                                 
gen_context(system_u:object_r:monetdbd_log_t,s0)
 /var/monetdb5/dbfarm(/.*)?                             
gen_context(system_u:object_r:mserver5_db_t,s0)
 /var/monetdb5/dbfarm/\.merovingian_properties  --      
gen_context(system_u:object_r:monetdbd_etc_t,s0)
-/run/monetdb(/.*)?                                     
gen_context(system_u:object_r:monetdbd_var_run_t,s0)
+/var/run/monetdb(/.*)?                                 
gen_context(system_u:object_r:monetdbd_var_run_t,s0)
 /var/monetdb5/dbfarm/\.merovingian_lock                --      
gen_context(system_u:object_r:monetdbd_lock_t,s0)
 /var/monetdb5/dbfarm/.*/\.gdk_lock             --      
gen_context(system_u:object_r:mserver5_lock_t,s0)
diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te
--- a/buildtools/selinux/monetdb.te
+++ b/buildtools/selinux/monetdb.te
@@ -1,4 +1,4 @@
-policy_module(monetdb, 0.8)
+policy_module(monetdb, 0.9)
 # The above line declares that this file is a SELinux policy file. Its
 # name is monetdb, so the file should be saved as monetdb.te
 
diff --git a/clients/Tests/SingleServer b/clients/Tests/SingleServer
new file mode 100644
--- /dev/null
+++ b/clients/Tests/SingleServer
@@ -0,0 +1,2 @@
+--set embedded_py=2
+--set embedded_r=true
diff --git a/clients/mapiclient/Tests/SingleServer 
b/clients/mapiclient/Tests/SingleServer
new file mode 100644
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+monetdb (11.35.19) unstable; urgency=low
+
+  * Rebuilt.
+  * BZ#6829: NTILE window function returns incorrect results
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Sat, 22 Feb 2020 08:49:38 +0100
+
 monetdb (11.35.17) unstable; urgency=low
 
   * Rebuilt.
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
@@ -133,7 +133,7 @@ GDKanalyticaldiff(BAT *r, BAT *b, BAT *p
        return GDK_SUCCEED;
 }
 
-#define NTILE_CALC(TPE, NEXT_VALUE, NEXT_CAST) \
+#define NTILE_CALC(TPE, NEXT_VALUE, CAST1, CAST2, CAST3)       \
        do {                                    \
                for (TPE i = 0; rb < rp; i++, rb++) {   \
                        TPE val = NEXT_VALUE; \
@@ -141,23 +141,23 @@ GDKanalyticaldiff(BAT *r, BAT *b, BAT *p
                                has_nils = true;        \
                                *rb = TPE##_nil;        \
                        } else { \
-                               TPE nval = NEXT_CAST; \
-                               if ((BUN) nval >= ncnt) { \
+                               TPE nval = CAST1; \
+                               if ((CAST2) nval >= (CAST3) ncnt) { \
                                        *rb = i + 1;  \
                                } else { \
                                        BUN bsize = ncnt / nval; \
                                        BUN top = ncnt - nval * bsize; \
                                        BUN small = top * (bsize + 1); \
-                                       if ((BUN)i < small) \
-                                               *rb = (TPE)((1 + (BUN)i / 
(bsize + 1))); \
+                                       if ((CAST2) i < (CAST3) small) \
+                                               *rb = (TPE)(1 + i / (bsize + 
1)); \
                                        else \
-                                               *rb = (TPE)((1 + top + ((BUN)i 
- small) / bsize)); \
+                                               *rb = (TPE)(1 + top + (i - 
small) / bsize); \
                                } \
                        } \
                } \
        } while (0)
 
-#define ANALYTICAL_NTILE_IMP(TPE, NEXT_VALUE, NEXT_CAST)       \
+#define ANALYTICAL_NTILE_IMP(TPE, NEXT_VALUE, CAST1, CAST2, CAST3)     \
        do {                                                    \
                TPE *rp, *rb;   \
                rb = rp = (TPE*)Tloc(r, 0);             \
@@ -168,30 +168,30 @@ GDKanalyticaldiff(BAT *r, BAT *b, BAT *p
                                if (*np) {                      \
                                        ncnt = np - pnp;        \
                                        rp += ncnt;             \
-                                       NTILE_CALC(TPE, NEXT_VALUE, NEXT_CAST);\
+                                       NTILE_CALC(TPE, NEXT_VALUE, CAST1, 
CAST2, CAST3);\
                                        pnp = np;       \
                                }                               \
                        }                                       \
                        ncnt = np - pnp;                        \
                        rp += ncnt;                             \
-                       NTILE_CALC(TPE, NEXT_VALUE, NEXT_CAST); \
+                       NTILE_CALC(TPE, NEXT_VALUE, CAST1, CAST2, CAST3);       
\
                } else {                                        \
                        rp += cnt;                              \
-                       NTILE_CALC(TPE, NEXT_VALUE, NEXT_CAST); \
+                       NTILE_CALC(TPE, NEXT_VALUE, CAST1, CAST2, CAST3);       
\
                }                                               \
        } while (0)
 
-#define ANALYTICAL_NTILE_SINGLE_IMP(TPE, NEXT_CAST) \
+#define ANALYTICAL_NTILE_SINGLE_IMP(TPE, CAST1, CAST2, CAST3) \
        do {    \
                TPE ntl = *(TPE*) ntile; \
-               ANALYTICAL_NTILE_IMP(TPE, ntl, NEXT_CAST); \
+               ANALYTICAL_NTILE_IMP(TPE, ntl, CAST1, CAST2, CAST3); \
        } while (0)
 
-#define ANALYTICAL_NTILE_MULTI_IMP(TPE, NEXT_CAST) \
+#define ANALYTICAL_NTILE_MULTI_IMP(TPE, CAST1, CAST2, CAST3) \
        do {    \
                BUN k = 0; \
                TPE *restrict nn = (TPE*)Tloc(n, 0);    \
-               ANALYTICAL_NTILE_IMP(TPE, nn[k++], NEXT_CAST); \
+               ANALYTICAL_NTILE_IMP(TPE, nn[k++], CAST1, CAST2, CAST3); \
        } while (0)
 
 gdk_return
@@ -206,21 +206,28 @@ GDKanalyticalntile(BAT *r, BAT *b, BAT *
        if (ntile) {
                switch (tpe) {
                case TYPE_bte:
-                       ANALYTICAL_NTILE_SINGLE_IMP(bte, val);
+                       ANALYTICAL_NTILE_SINGLE_IMP(bte, val, BUN, BUN);
                        break;
                case TYPE_sht:
-                       ANALYTICAL_NTILE_SINGLE_IMP(sht, val);
+                       ANALYTICAL_NTILE_SINGLE_IMP(sht, val, BUN, BUN);
                        break;
                case TYPE_int:
-                       ANALYTICAL_NTILE_SINGLE_IMP(int, val);
+                       ANALYTICAL_NTILE_SINGLE_IMP(int, val, BUN, BUN);
                        break;
                case TYPE_lng:
-                       ANALYTICAL_NTILE_SINGLE_IMP(lng, val);
+#if SIZEOF_OID == SIZEOF_INT
+                       ANALYTICAL_NTILE_SINGLE_IMP(lng, val, lng, lng);
+#else
+                       ANALYTICAL_NTILE_SINGLE_IMP(lng, val, BUN, BUN);
+#endif
                        break;
 #ifdef HAVE_HGE
                case TYPE_hge:
-                       ANALYTICAL_NTILE_SINGLE_IMP(hge, ((val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val));
-               break;
+#if SIZEOF_OID == SIZEOF_INT
+                       ANALYTICAL_NTILE_SINGLE_IMP(hge, (val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val, lng, lng);
+#else
+                       ANALYTICAL_NTILE_SINGLE_IMP(hge, (val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val, BUN, BUN);
+#endif
 #endif
                default:
                        goto nosupport;
@@ -228,20 +235,28 @@ GDKanalyticalntile(BAT *r, BAT *b, BAT *
        } else {
                switch (tpe) {
                case TYPE_bte:
-                       ANALYTICAL_NTILE_MULTI_IMP(bte, val);
+                       ANALYTICAL_NTILE_MULTI_IMP(bte, val, BUN, BUN);
                        break;
                case TYPE_sht:
-                       ANALYTICAL_NTILE_MULTI_IMP(sht, val);
+                       ANALYTICAL_NTILE_MULTI_IMP(sht, val, BUN, BUN);
                        break;
                case TYPE_int:
-                       ANALYTICAL_NTILE_MULTI_IMP(int, val);
+                       ANALYTICAL_NTILE_MULTI_IMP(int, val, BUN, BUN);
                        break;
                case TYPE_lng:
-                       ANALYTICAL_NTILE_MULTI_IMP(lng, val);
+#if SIZEOF_OID == SIZEOF_INT
+                       ANALYTICAL_NTILE_MULTI_IMP(lng, val, lng, lng);
+#else
+                       ANALYTICAL_NTILE_MULTI_IMP(lng, val, BUN, BUN);
+#endif
                        break;
 #ifdef HAVE_HGE
                case TYPE_hge:
-                       ANALYTICAL_NTILE_MULTI_IMP(hge, ((val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val));
+#if SIZEOF_OID == SIZEOF_INT
+                       ANALYTICAL_NTILE_MULTI_IMP(hge, (val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val, lng, lng);
+#else
+                       ANALYTICAL_NTILE_MULTI_IMP(hge, (val > (hge) 
GDK_lng_max) ? GDK_lng_max : (lng) val, BUN, BUN);
+#endif
                break;
 #endif
                default:
diff --git a/libversions b/libversions
--- a/libversions
+++ b/libversions
@@ -42,7 +42,7 @@ GDK_VERSION=19:5:0
 MAPI_VERSION=12:3:0
 
 # version of the MONETDB5 library (subdirectory monetdb5, not including extras 
or sql)
-MONETDB5_VERSION=28:4:0
+MONETDB5_VERSION=28:5:0
 
 # version of the STREAM library (subdirectory common/stream)
 STREAM_VERSION=13:3:0
diff --git a/monetdb5/mal/Tests/SingleServer b/monetdb5/mal/Tests/SingleServer
new file mode 100644
diff --git a/monetdb5/modules/mal/Tests/SingleServer 
b/monetdb5/modules/mal/Tests/SingleServer
new file mode 100644
diff --git a/sql/test/SQLite_regress/sqllogictest/Tests/SingleServer 
b/sql/test/SQLite_regress/sqllogictest/Tests/SingleServer
new file mode 100644
diff --git a/sql/test/ssqq/Tests/SingleServer b/sql/test/ssqq/Tests/SingleServer
new file mode 100644
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to