Changeset: 147b678d679a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=147b678d679a
Added Files:
        buildtools/selinux/ChangeLog.Apr2019
Modified Files:
        MonetDB.spec
        buildtools/ChangeLog.Apr2019
        configure.ag
        gdk/ChangeLog.Apr2019
        gdk/gdk_analytic.h
        gdk/gdk_analytic_bounds.c
        gdk/gdk_analytic_func.c
        tools/merovingian/ChangeLog.Apr2019
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/utils/properties.h
Branch: default
Log Message:

Merge with Apr2019 branch.


diffs (truncated from 4543 to 300 lines):

diff --git a/buildtools/ChangeLog.Apr2019 b/buildtools/ChangeLog.Apr2019
--- a/buildtools/ChangeLog.Apr2019
+++ b/buildtools/ChangeLog.Apr2019
@@ -1,7 +1,13 @@
 # ChangeLog file for buildtools
 # This file is updated with Maddlog
 
+* Tue Mar 19 2019 Sjoerd Mullender <[email protected]>
+- We now use the C11 atomic operations if available, although
+  libatomic_ops is still used if present and not disabled on the configure
+  command line.
+
 * Wed Aug 29 2018 Sjoerd Mullender <[email protected]>
 - We now also build the Python 3 integration packages for Fedora, Debian,
-  and Ubuntu (not for Debian 8 or Ubuntu 14.04 which are too old).
+  Ubuntu, and Windows (not for Debian 8, Ubuntu 14.04, or EPEL 6 and 7
+  which are too old).
 
diff --git a/buildtools/selinux/ChangeLog.Apr2019 
b/buildtools/selinux/ChangeLog.Apr2019
new file mode 100644
--- /dev/null
+++ b/buildtools/selinux/ChangeLog.Apr2019
@@ -0,0 +1,9 @@
+# ChangeLog file for selinux
+# This file is updated with Maddlog
+
+* Tue Mar 19 2019 Sjoerd Mullender <[email protected]>
+- There is one tunable parameter, mserver5_can_read_home, which can
+  be set using "setsebool -P mserver5_can_read_home=true" to allow an
+  mserver5 process started by monetdbd under the control of systemd to
+  read files in users' home directories.
+
diff --git a/gdk/ChangeLog.Apr2019 b/gdk/ChangeLog.Apr2019
--- a/gdk/ChangeLog.Apr2019
+++ b/gdk/ChangeLog.Apr2019
@@ -1,6 +1,11 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Tue Mar 19 2019 Sjoerd Mullender <[email protected]>
+- During processing, we now try to maintain the smallest and largest
+  values that occur in a BAT.  This information is not saved across
+  server restarts.
+
 * Mon Nov 12 2018 Sjoerd Mullender <[email protected]>
 - Added an extra argument of type `bool' to the atom to string and
   string to atom methods to indicate whether the string is for
diff --git a/gdk/gdk_analytic.h b/gdk/gdk_analytic.h
--- a/gdk/gdk_analytic.h
+++ b/gdk/gdk_analytic.h
@@ -18,19 +18,21 @@
 
 gdk_export gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, int tpe);
 
-gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, 
const void* restrict ntile);
-gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const 
void* restrict default_value, int tpe);
-gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, 
const void* restrict default_value, int tpe);
+gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, 
const void *restrict ntile);
+gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const 
void *restrict default_value, int tpe);
+gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, 
const void *restrict default_value, int tpe);
 
-gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT 
*l, const void* restrict bound,
-                                                                               
                int tp1, int tp2, int unit, bool preceding, lng first_half);
+gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l,
+                                               const void *restrict bound,
+                                               int tp1, int tp2, int unit,
+                                               bool preceding, lng first_half);
 
 gdk_export gdk_return GDKanalyticalfirst(BAT *r, BAT *b, BAT *s, BAT *e, int 
tpe);
 gdk_export gdk_return GDKanalyticallast(BAT *r, BAT *b, BAT *s, BAT *e, int 
tpe);
-gdk_export gdk_return GDKanalyticalnthvalue(BAT *r, BAT *b, BAT *s, BAT *e, 
BAT *l, const void* restrict bound, int tp1, int tp2);
+gdk_export gdk_return GDKanalyticalnthvalue(BAT *r, BAT *b, BAT *s, BAT *e, 
BAT *l, const void *restrict bound, int tp1, int tp2);
 gdk_export gdk_return GDKanalyticalmin(BAT *r, BAT *b, BAT *s, BAT *e, int 
tpe);
 gdk_export gdk_return GDKanalyticalmax(BAT *r, BAT *b, BAT *s, BAT *e, int 
tpe);
-gdk_export gdk_return GDKanalyticalcount(BAT *r, BAT *b, BAT *s, BAT *e, const 
bit* restrict ignore_nils, int tpe);
+gdk_export gdk_return GDKanalyticalcount(BAT *r, BAT *b, BAT *s, BAT *e, const 
bit *restrict ignore_nils, int tpe);
 gdk_export gdk_return GDKanalyticalsum(BAT *r, BAT *b, BAT *s, BAT *e, int 
tp1, int tp2);
 gdk_export gdk_return GDKanalyticalprod(BAT *r, BAT *b, BAT *s, BAT *e, int 
tp1, int tp2);
 gdk_export gdk_return GDKanalyticalavg(BAT *r, BAT *b, BAT *s, BAT *e, int 
tpe);
diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -11,460 +11,462 @@
 #include "gdk_analytic.h"
 #include "gdk_calc_private.h"
 
-#define ANALYTICAL_WINDOW_BOUNDS_ROWS_PRECEDING(LIMIT) \
-       do {                                            \
-               lng calc1, calc2;                           \
-               j = k;                                      \
-               for(; k<i; k++, rb++) {                     \
-                       lng rlimit = (lng) LIMIT;               \
+#define ANALYTICAL_WINDOW_BOUNDS_ROWS_PRECEDING(LIMIT)                 \
+       do {                                                            \
+               lng calc1, calc2;                                       \
+               j = k;                                                  \
+               for (; k < i; k++, rb++) {                              \
+                       lng rlimit = (lng) LIMIT;                       \
                        SUB_WITH_CHECK(k, rlimit, lng, calc1, GDK_lng_max, goto 
calc_overflow); \
                        ADD_WITH_CHECK(calc1, !first_half, lng, calc2, 
GDK_lng_max, goto calc_overflow); \
-                       *rb = MAX(calc2, j);                    \
-               }                                           \
-       } while(0)
+                       *rb = MAX(calc2, j);                            \
+               }                                                       \
+       } while (0)
 
-#define ANALYTICAL_WINDOW_BOUNDS_ROWS_FOLLOWING(LIMIT) \
-       do {                                            \
-               lng calc1, calc2;                           \
-               for(; k<i; k++, rb++) {                     \
-                       lng rlimit = (lng) LIMIT;               \
+#define ANALYTICAL_WINDOW_BOUNDS_ROWS_FOLLOWING(LIMIT)                 \
+       do {                                                            \
+               lng calc1, calc2;                                       \
+               for (; k < i; k++, rb++) {                              \
+                       lng rlimit = (lng) LIMIT;                       \
                        ADD_WITH_CHECK(rlimit, k, lng, calc1, GDK_lng_max, goto 
calc_overflow); \
                        ADD_WITH_CHECK(calc1, !first_half, lng, calc2, 
GDK_lng_max, goto calc_overflow); \
-                       *rb = MIN(calc2, i);                    \
-               }                                           \
-       } while(0)
+                       *rb = MIN(calc2, i);                            \
+               }                                                       \
+       } while (0)
 
 #define ANALYTICAL_WINDOW_BOUNDS_FIXED_RANGE_PRECEDING(TPE1, LIMIT, TPE2) \
-       do {                                           \
-               lng m = k - 1;                             \
-               TPE1 v, calc;                              \
-               TPE2 rlimit;                               \
-               for(; k<i; k++, rb++) {                    \
-                       rlimit = (TPE2) LIMIT;                 \
-                       v = bp[k];                             \
-                       if(is_##TPE1##_nil(v)) {               \
-                               for(j=k; ; j--) {                  \
-                                       if(j == m)                     \
-                                               break;                     \
-                                       if(!is_##TPE1##_nil(bp[j]))    \
-                                               break;                     \
-                               }                                  \
-                       } else {                               \
-                               for(j=k; ; j--) {                  \
-                                       if(j == m)                     \
-                                               break;                     \
-                                       if(is_##TPE1##_nil(bp[j]))     \
-                                               break;                     \
+       do {                                                            \
+               lng m = k - 1;                                          \
+               TPE1 v, calc;                                           \
+               TPE2 rlimit;                                            \
+               for (; k < i; k++, rb++) {                              \
+                       rlimit = (TPE2) LIMIT;                          \
+                       v = bp[k];                                      \
+                       if (is_##TPE1##_nil(v)) {                       \
+                               for (j = k; ; j--) {                    \
+                                       if (j == m)                     \
+                                               break;                  \
+                                       if (!is_##TPE1##_nil(bp[j]))    \
+                                               break;                  \
+                               }                                       \
+                       } else {                                        \
+                               for (j = k; ; j--) {                    \
+                                       if (j == m)                     \
+                                               break;                  \
+                                       if (is_##TPE1##_nil(bp[j]))     \
+                                               break;                  \
                                        SUB_WITH_CHECK(v, bp[j], TPE1, calc, 
GDK_##TPE1##_max, goto calc_overflow); \
                                        if ((TPE2)(ABSOLUTE(calc)) > rlimit) \
-                                               break;                     \
-                               }                                  \
-                       }                                      \
-                       j++;                                   \
-                       *rb = j;                               \
-               }                                          \
-       } while(0)
+                                               break;                  \
+                               }                                       \
+                       }                                               \
+                       j++;                                            \
+                       *rb = j;                                        \
+               }                                                       \
+       } while (0)
 
 #define ANALYTICAL_WINDOW_BOUNDS_FIXED_RANGE_FOLLOWING(TPE1, LIMIT, TPE2) \
-       do {                                         \
-               TPE1 v, calc;                            \
-               TPE2 rlimit;                             \
-               for(; k<i; k++, rb++) {                  \
-                       rlimit = (TPE2) LIMIT;               \
-                       v = bp[k];                           \
-                       if(is_##TPE1##_nil(v)) {             \
-                               for(j=k+1; j<i; j++) {           \
-                                       if(!is_##TPE1##_nil(bp[j]))  \
-                                               break;                   \
-                               }                                \
-                       } else {                             \
-                               for(j=k+1; j<i; j++) {           \
-                                       if(is_##TPE1##_nil(bp[j]))   \
-                                               break;                   \
+       do {                                                            \
+               TPE1 v, calc;                                           \
+               TPE2 rlimit;                                            \
+               for (; k < i; k++, rb++) {                              \
+                       rlimit = (TPE2) LIMIT;                          \
+                       v = bp[k];                                      \
+                       if (is_##TPE1##_nil(v)) {                       \
+                               for (j =k + 1; j < i; j++) {            \
+                                       if (!is_##TPE1##_nil(bp[j]))    \
+                                               break;                  \
+                               }                                       \
+                       } else {                                        \
+                               for (j = k + 1; j < i; j++) {           \
+                                       if (is_##TPE1##_nil(bp[j]))     \
+                                               break;                  \
                                        SUB_WITH_CHECK(v, bp[j], TPE1, calc, 
GDK_##TPE1##_max, goto calc_overflow); \
                                        if ((TPE2)(ABSOLUTE(calc)) > rlimit) \
-                                               break;                   \
-                               }                                \
-                       }                                    \
-                       *rb = j;                             \
-               }                                        \
-       } while(0)
+                                               break;                  \
+                               }                                       \
+                       }                                               \
+                       *rb = j;                                        \
+               }                                                       \
+       } while (0)
 
 #define ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS_PRECEDING(TPE1, LIMIT, TPE2) \
-       do {                                  \
-               lng m = k - 1;                    \
-               for(; k<i; k++, rb++) {           \
-                       TPE2 rlimit = (TPE2) LIMIT;   \
-                       TPE1 v = bp[k];               \
-                       if(is_##TPE1##_nil(v)) {      \
-                               for(j=k; ; j--) {         \
-                                       if(j == m)            \
-                                               break;            \
-                                       if(!is_##TPE1##_nil(bp[j])) \
-                                               break;            \
-                               }                         \
-                       } else {                      \
-                               for(j=k; ; j--) {         \
-                                       if(j == m)            \
-                                               break;            \
-                                       if(is_##TPE1##_nil(bp[j])) \
-                                               break;            \
-                                       if(v != bp[j]) {      \
-                                               if(rlimit == 0)   \
-                                                       break;        \
-                                               rlimit--;         \
-                                               v = bp[j];        \
-                                       }                     \
-                               }                         \
-                       }                             \
-                       j++;                          \
-                       *rb = j;                      \
-               }                                 \
-       } while(0)
+       do {                                                            \
+               lng m = k - 1;                                          \
+               for (; k < i; k++, rb++) {                              \
+                       TPE2 rlimit = (TPE2) LIMIT;                     \
+                       TPE1 v = bp[k];                                 \
+                       if (is_##TPE1##_nil(v)) {                       \
+                               for (j = k; ; j--) {                    \
+                                       if (j == m)                     \
+                                               break;                  \
+                                       if (!is_##TPE1##_nil(bp[j]))    \
+                                               break;                  \
+                               }                                       \
+                       } else {                                        \
+                               for (j = k; ; j--) {                    \
+                                       if (j == m)                     \
+                                               break;                  \
+                                       if (is_##TPE1##_nil(bp[j]))     \
+                                               break;                  \
+                                       if (v != bp[j]) {               \
+                                               if (rlimit == 0)        \
+                                                       break;          \
+                                               rlimit--;               \
+                                               v = bp[j];              \
+                                       }                               \
+                               }                                       \
+                       }                                               \
+                       j++;                                            \
+                       *rb = j;                                        \
+               }                                                       \
+       } while (0)
 
 #define ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS_FOLLOWING(TPE1, LIMIT, TPE2) \
-       do {                                \
-               for(; k<i; k++, rb++) {         \
-                       TPE2 rlimit = (TPE2) LIMIT; \
-                       TPE1 v = bp[k];             \
-                       if(is_##TPE1##_nil(v)) {    \
-                               for(j=k+1; j<i; j++) {  \
-                                       if(!is_##TPE1##_nil(bp[j])) \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to