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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list