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