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 <[email protected]> - 11.35.19-20200222
+- Rebuilt.
+- BZ#6829: NTILE window function returns incorrect results
+
* Fri Feb 21 2020 Sjoerd Mullender <[email protected]> - 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 <[email protected]> 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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list