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