Changeset: 1b2dd31cd025 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1b2dd31cd025
Modified Files:
        NT/monetdb_config.h.in
        clients/Tests/exports.stable.out
        configure.ag
        gdk/gdk_bbp.c
        gdk/gdk_posix.c
        gdk/gdk_posix.h
        gdk/gdk_tracer.c
        gdk/gdk_utils.c
        monetdb5/modules/atoms/json.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/vaults/shp/shp.c
        sql/server/rel_select.c
        sql/server/rel_unnest.c
        sql/server/sql_mvc.c
        sql/test/subquery/Tests/subquery3.sql
        sql/test/subquery/Tests/subquery3.stable.err
        sql/test/subquery/Tests/subquery3.stable.out
        sql/test/subquery/Tests/subquery4.sql
        sql/test/subquery/Tests/subquery4.stable.err
        sql/test/subquery/Tests/subquery4.stable.out
        testing/Mfilter.py
Branch: atom_strings
Log Message:

Merge with default


diffs (truncated from 2189 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -426,6 +426,13 @@
 /* Define to 1 if you have the `strcpy_s' function. */
 #define HAVE_STRCPY_S 1
 
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 1
+#define HAVE_DECL_STRERROR_R 1
+#ifndef strerror_r
+#define strerror_r(e, b, s)    strerror_s(b, s, e)
+#endif
+
 /* Define to 1 if you have the <strings.h> header file. */
 /* #undef HAVE_STRINGS_H */
 
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -516,6 +516,7 @@ ssize_t shtToStr(str *dst, size_t *len, 
 const sht sht_nil;
 ssize_t strFromStr(const char *restrict src, size_t *restrict len, str 
*restrict dst, bool external);
 const char str_nil[2];
+int strerror_r(int errnum, char *buf, size_t buflen);
 gdk_return void_inplace(BAT *b, oid id, const void *val, bool force) 
__attribute__((__warn_unused_result__));
 int win_mkdir(const char *, const int mode);
 int win_rename(const char *, const char *);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2193,6 +2193,7 @@ AS_VAR_IF([ac_cv_func_fdatasync], [yes],
        [AC_DEFINE([HAVE_FDATASYNC], 1, [If the system has a working 
fdatasync])])
 
 AC_FUNC_FSEEKO
+AC_FUNC_STRERROR_R
 # NOTE: these functions are in alphabetical order to ease maintenance
 save_LIBS="$LIBS"
 LIBS="$LIBS $MATH_LIBS"
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -401,6 +401,7 @@ fixfltheap(BAT *b)
        nme = BBP_physical(b->batCacheid);
        srcdir = GDKfilepath(NOFARM, BATDIR, nme, NULL);
        if (srcdir == NULL) {
+               TRC_CRITICAL(GDK, "GDKfilepath failed\n");
                return GDK_FAIL;
        }
        /* coverity[null_returns] */
@@ -415,7 +416,7 @@ fixfltheap(BAT *b)
        /* make backup of heap */
        if (GDKmove(b->theap.farmid, srcdir, bnme, "tail", BAKDIR, bnme, 
"tail") != GDK_SUCCEED) {
                GDKfree(srcdir);
-               GDKerror("fixfltheap: cannot make backup of %s.tail\n", nme);
+               TRC_CRITICAL(GDK, "cannot make backup of %s.tail\n", nme);
                return GDK_FAIL;
        }
        /* load old heap */
@@ -426,8 +427,8 @@ fixfltheap(BAT *b)
        h1.dirty = false;
        if (HEAPload(&h1, filename, "tail", false) != GDK_SUCCEED) {
                GDKfree(srcdir);
-               GDKerror("fixfltheap: loading old tail heap "
-                        "for BAT %d failed\n", b->batCacheid);
+               TRC_CRITICAL(GDK, "loading old tail heap "
+                            "for BAT %d failed\n", b->batCacheid);
                return GDK_FAIL;
        }
 
@@ -437,8 +438,8 @@ fixfltheap(BAT *b)
        if (HEAPalloc(&h2, b->batCapacity, b->twidth) != GDK_SUCCEED) {
                GDKfree(srcdir);
                HEAPfree(&h1, false);
-               GDKerror("fixfltheap: allocating new tail heap "
-                        "for BAT %d failed\n", b->batCacheid);
+               TRC_CRITICAL(GDK, "allocating new tail heap "
+                            "for BAT %d failed\n", b->batCacheid);
                return GDK_FAIL;
        }
        h2.dirty = true;
@@ -508,7 +509,7 @@ fixfltheap(BAT *b)
                HEAPfree(&h2, true);
                if (GDKmove(b->theap.farmid, BAKDIR, bnme, "tail", srcdir, 
bnme, "tail") != GDK_SUCCEED) {
                        GDKfree(srcdir);
-                       GDKerror("fixfltheap: cannot restore backup of 
%s.tail\n", nme);
+                       TRC_CRITICAL(GDK, "cannot restore backup of %s.tail\n", 
nme);
                        return GDK_FAIL;
                }
        } else {
@@ -517,7 +518,7 @@ fixfltheap(BAT *b)
                if (HEAPsave(&h2, nme, "tail", true) != GDK_SUCCEED) {
                        HEAPfree(&h2, false);
                        GDKfree(srcdir);
-                       GDKerror("fixfltheap: saving heap failed\n");
+                       TRC_CRITICAL(GDK, "saving heap failed\n");
                        return GDK_FAIL;
                }
                HEAPfree(&h2, false);
@@ -555,14 +556,14 @@ fixfloatbats(void)
                                 BBPfarms[0].dirname,
                                 (int) (len - 12), BBP_logical(bid));
                        if (written == -1 || written >= FILENAME_MAX) {
-                               GDKerror("fixfloatbats: cannot create file %s 
has a very large pathname\n",
+                               TRC_CRITICAL(GDK, "cannot create file %s has a 
very large pathname\n",
                                                 filename);
                                return GDK_FAIL;
                        }
                        fp = fopen(filename, "w");
                        if (fp == NULL) {
-                               GDKsyserror("fixfloatbats: cannot create file 
%s\n",
-                                        filename);
+                               TRC_CRITICAL(GDK, "cannot create file %s: %s\n",
+                                            filename, GDKstrerror(errno, 
(char[128]){0}, 128));
                                return GDK_FAIL;
                        }
                        fclose(fp);
@@ -690,6 +691,7 @@ fixdateheap(BAT *b, const char *anme)
        nme = BBP_physical(b->batCacheid);
        srcdir = GDKfilepath(NOFARM, BATDIR, nme, NULL);
        if (srcdir == NULL) {
+               TRC_CRITICAL(GDK, "GDKfilepath failed\n");
                return GDK_FAIL;
        }
        /* coverity[null_returns] */
@@ -704,7 +706,7 @@ fixdateheap(BAT *b, const char *anme)
        /* make backup of heap */
        if (GDKmove(b->theap.farmid, srcdir, bnme, "tail", BAKDIR, bnme, 
"tail") != GDK_SUCCEED) {
                GDKfree(srcdir);
-               GDKerror("fixdateheap: cannot make backup of %s.tail\n", nme);
+               TRC_CRITICAL(GDK, "cannot make backup of %s.tail\n", nme);
                return GDK_FAIL;
        }
        /* load old heap */
@@ -715,8 +717,8 @@ fixdateheap(BAT *b, const char *anme)
        h1.dirty = false;
        if (HEAPload(&h1, filename, "tail", false) != GDK_SUCCEED) {
                GDKfree(srcdir);
-               GDKerror("fixdateheap: loading old tail heap "
-                        "for BAT %d failed\n", b->batCacheid);
+               TRC_CRITICAL(GDK, "loading old tail heap "
+                            "for BAT %d failed\n", b->batCacheid);
                return GDK_FAIL;
        }
 
@@ -726,8 +728,8 @@ fixdateheap(BAT *b, const char *anme)
        if (HEAPalloc(&h2, b->batCapacity, strcmp(anme, "date") == 0 ? 4 : 8) 
!= GDK_SUCCEED) {
                GDKfree(srcdir);
                HEAPfree(&h1, false);
-               GDKerror("fixdateheap: allocating new tail heap "
-                        "for BAT %d failed\n", b->batCacheid);
+               TRC_CRITICAL(GDK, "allocating new tail heap "
+                            "for BAT %d failed\n", b->batCacheid);
                return GDK_FAIL;
        }
        h2.dirty = true;
@@ -795,7 +797,7 @@ fixdateheap(BAT *b, const char *anme)
                HEAPfree(&h2, true);
                if (GDKmove(b->theap.farmid, BAKDIR, bnme, "tail", srcdir, 
bnme, "tail") != GDK_SUCCEED) {
                        GDKfree(srcdir);
-                       GDKerror("fixdateheap: cannot restore backup of 
%s.tail\n", nme);
+                       TRC_CRITICAL(GDK, "cannot restore backup of %s.tail\n", 
nme);
                        return GDK_FAIL;
                }
        } else {
@@ -804,7 +806,7 @@ fixdateheap(BAT *b, const char *anme)
                if (HEAPsave(&h2, nme, "tail", true) != GDK_SUCCEED) {
                        HEAPfree(&h2, false);
                        GDKfree(srcdir);
-                       GDKerror("fixdateheap: saving heap failed\n");
+                       TRC_CRITICAL(GDK, "saving heap failed\n");
                        return GDK_FAIL;
                }
                if (strcmp(anme, "daytime") == 0) {
@@ -846,14 +848,14 @@ fixdatebats(void)
                                 BBPfarms[0].dirname,
                                 (int) (len - 12), BBP_logical(bid));
                        if (written == -1 || written >= FILENAME_MAX) {
-                               GDKerror("fixdatebats: cannot create file %s 
has a very large pathname\n",
-                                                filename);
+                               TRC_CRITICAL(GDK, "cannot create file %s has a 
very large pathname\n",
+                                            filename);
                                return GDK_FAIL;
                        }
                        fp = fopen(filename, "w");
                        if (fp == NULL) {
-                               GDKsyserror("fixdatebats: cannot create file 
%s\n",
-                                        filename);
+                               TRC_CRITICAL(GDK, "cannot create file %s: %s\n",
+                                            filename, GDKstrerror(errno, 
(char[128]){0}, 128));
                                return GDK_FAIL;
                        }
                        fclose(fp);
@@ -917,12 +919,12 @@ heapinit(BAT *b, const char *buf, int *h
                   &nokey1, &nosorted, &norevsorted, &base,
                   &free, &size, &storage,
                   &n) < 12) {
-               GDKerror("BBPinit: invalid format for BBP.dir\n%s", buf);
+               TRC_CRITICAL(GDK, "invalid format for BBP.dir\n%s", buf);
                return -1;
        }
 
        if (properties & ~0x0F81) {
-               GDKerror("BBPinit: unknown properties are set: incompatible 
database\n");
+               TRC_CRITICAL(GDK, "unknown properties are set: incompatible 
database\n");
                return -1;
        }
        *hashash = var & 2;
@@ -936,11 +938,11 @@ heapinit(BAT *b, const char *buf, int *h
                strcpy(type, "blob");
        if ((t = ATOMindex(type)) < 0) {
                if ((t = ATOMunknown_find(type)) == 0) {
-                       GDKerror("BBPinit: no space for atom %s", type);
+                       TRC_CRITICAL(GDK, "no space for atom %s", type);
                        return -1;
                }
        } else if (var != (t == TYPE_void || BATatoms[t].atomPut != NULL)) {
-               GDKerror("BBPinit: inconsistent entry in BBP.dir: tvarsized 
mismatch for BAT %d\n", (int) bid);
+               TRC_CRITICAL(GDK, "inconsistent entry in BBP.dir: tvarsized 
mismatch for BAT %d\n", (int) bid);
                return -1;
        } else if (var && t != 0 ?
                   ATOMsize(t) < width ||
@@ -950,7 +952,7 @@ heapinit(BAT *b, const char *buf, int *h
 #endif
                           ) :
                   ATOMsize(t) != width) {
-               GDKerror("BBPinit: inconsistent entry in BBP.dir: tsize 
mismatch for BAT %d\n", (int) bid);
+               TRC_CRITICAL(GDK, "inconsistent entry in BBP.dir: tsize 
mismatch for BAT %d\n", (int) bid);
                return -1;
        }
        b->ttype = t;
@@ -987,7 +989,7 @@ heapinit(BAT *b, const char *buf, int *h
        }
 #endif
        if (b->theap.free > b->theap.size) {
-               GDKerror("BBPinit: \"free\" value larger than \"size\" in heap 
of bat %d\n", (int) bid);
+               TRC_CRITICAL(GDK, "\"free\" value larger than \"size\" in heap 
of bat %d\n", (int) bid);
                return -1;
        }
        return n;
@@ -1003,14 +1005,14 @@ vheapinit(BAT *b, const char *buf, int h
        if (b->tvarsized && b->ttype != TYPE_void) {
                b->tvheap = GDKzalloc(sizeof(Heap));
                if (b->tvheap == NULL) {
-                       GDKerror("BBPinit: cannot allocate memory for heap.");
+                       TRC_CRITICAL(GDK, "cannot allocate memory for heap.");
                        return -1;
                }
                if (sscanf(buf,
                           " %" SCNu64 " %" SCNu64 " %" SCNu16
                           "%n",
                           &free, &size, &storage, &n) < 3) {
-                       GDKerror("BBPinit: invalid format for BBP.dir\n%s", 
buf);
+                       TRC_CRITICAL(GDK, "invalid format for BBP.dir\n%s", 
buf);
                        return -1;
                }
                b->tvheap->free = (size_t) free;
@@ -1027,7 +1029,7 @@ vheapinit(BAT *b, const char *buf, int h
                b->tvheap->parentid = bid;
                b->tvheap->farmid = BBPselectfarm(PERSISTENT, b->ttype, 
varheap);
                if (b->tvheap->free > b->tvheap->size) {
-                       GDKerror("BBPinit: \"free\" value larger than \"size\" 
in var heap of bat %d\n", (int) bid);
+                       TRC_CRITICAL(GDK, "\"free\" value larger than \"size\" 
in var heap of bat %d\n", (int) bid);
                        return -1;
                }
        }
@@ -1057,7 +1059,7 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                if ((s = strchr(buf, '\r')) != NULL) {
                        /* convert \r\n into just \n */
                        if (s[1] != '\n') {
-                               GDKerror("BBPinit: invalid format for BBP.dir");
+                               TRC_CRITICAL(GDK, "invalid format for BBP.dir");
                                return GDK_FAIL;
                        }
                        *s++ = '\n';
@@ -1072,12 +1074,12 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                           &properties,
                           &count, &capacity, &base,
                           &nread) < 8) {
-                       GDKerror("BBPinit: invalid format for BBP.dir\n%s", 
buf);
+                       TRC_CRITICAL(GDK, "invalid format for BBP.dir\n%s", 
buf);
                        return GDK_FAIL;
                }
 
                if (batid >= N_BBPINIT * BBPINIT) {
-                       GDKerror("BBPinit: bat ID (%" PRIu64 ") too large to 
accomodate (max %d).", batid, N_BBPINIT * BBPINIT - 1);
+                       TRC_CRITICAL(GDK, "bat ID (%" PRIu64 ") too large to 
accomodate (max %d).", batid, N_BBPINIT * BBPINIT - 1);
                        return GDK_FAIL;
                }
 
@@ -1100,19 +1102,19 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                                BBPextend(0, false);
                }
                if (BBP_desc(bid) != NULL) {
-                       GDKerror("BBPinit: duplicate entry in BBP.dir (ID = "
+                       TRC_CRITICAL(GDK, "duplicate entry in BBP.dir (ID = "
                                 "%" PRIu64 ").", batid);
                        return GDK_FAIL;
                }
                bn = GDKzalloc(sizeof(BAT));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to