Changeset: 15f8f49fa732 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=15f8f49fa732
Modified Files:
        gdk/gdk_bbp.c
        gdk/gdk_cross.c
        gdk/gdk_logger.c
        gdk/gdk_posix.c
        gdk/gdk_storage.c
        gdk/gdk_string.c
        gdk/gdk_system.c
        gdk/gdk_tracer.c
        gdk/gdk_utils.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/server/rel_unnest.c
        sql/server/sql_parser.y
        sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.err
        sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.out
        sql/test/mergetables/Tests/sqlsmith-exists2.sql
        sql/test/mergetables/Tests/sqlsmith-exists2.stable.out
        sql/test/miscellaneous/Tests/groupby_error.sql
        sql/test/miscellaneous/Tests/groupby_error.stable.out
        sql/test/miscellaneous/Tests/simple_plans.stable.out
        sql/test/subquery/Tests/subquery6.sql
        sql/test/subquery/Tests/subquery6.stable.err
        sql/test/subquery/Tests/subquery6.stable.out
Branch: default
Log Message:

Merged with Jun2020


diffs (truncated from 2127 to 300 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -652,8 +652,8 @@ fixdatebats(void)
                        }
                        fp = fopen(filename, "w");
                        if (fp == NULL) {
-                               TRC_CRITICAL(GDK, "cannot create file %s: %s\n",
-                                            filename, GDKstrerror(errno, 
(char[128]){0}, 128));
+                               GDKsyserror("cannot create file %s\n",
+                                           filename);
                                return GDK_FAIL;
                        }
                        fclose(fp);
@@ -1137,7 +1137,7 @@ BBPaddfarm(const char *dirname, int role
                                return GDK_FAIL;
                        }
                } else {
-                       GDKerror("%s: cannot create directory\n", dirname);
+                       GDKsyserror("%s: cannot create directory\n", dirname);
                        return GDK_FAIL;
                }
        }
@@ -1161,7 +1161,6 @@ BBPaddfarm(const char *dirname, int role
                                 * database */
                                bbpdir = GDKfilepath(i, BATDIR, "BBP", "dir");
                                if (bbpdir == NULL) {
-                                       GDKerror("malloc failed\n");
                                        return GDK_FAIL;
                                }
                                if (stat(bbpdir, &st) != -1 || errno != ENOENT) 
{
@@ -1172,7 +1171,6 @@ BBPaddfarm(const char *dirname, int role
                                GDKfree(bbpdir);
                                bbpdir = GDKfilepath(i, BAKDIR, "BBP", "dir");
                                if (bbpdir == NULL) {
-                                       GDKerror("malloc failed\n");
                                        return GDK_FAIL;
                                }
                                if (stat(bbpdir, &st) != -1 || errno != ENOENT) 
{
@@ -1332,7 +1330,6 @@ BBPinit(void)
                if (j == i) {
                        char *d = GDKfilepath(i, NULL, BATDIR, NULL);
                        if (d == NULL) {
-                               TRC_CRITICAL(GDK, "malloc failed\n");
                                return GDK_FAIL;
                        }
                        BBPdiskscan(d, strlen(d) - strlen(BATDIR));
@@ -2953,7 +2950,7 @@ BBPprepare(bool subcommit)
                ret = BBPrecover(0);
                if (ret == GDK_SUCCEED) {
                        if (mkdir(bakdirpath, MONETDB_DIRMODE) < 0 && errno != 
EEXIST) {
-                               GDKsyserror("BBPprepare: cannot create 
directory %s\n", bakdirpath);
+                               GDKsyserror("cannot create directory %s\n", 
bakdirpath);
                                ret = GDK_FAIL;
                        }
                        /* if BAKDIR already exists, don't signal error */
@@ -2963,7 +2960,7 @@ BBPprepare(bool subcommit)
        if (ret == GDK_SUCCEED && start_subcommit) {
                /* make a new SUBDIR (subdir of BAKDIR) */
                if (mkdir(subdirpath, MONETDB_DIRMODE) < 0) {
-                       GDKsyserror("BBPprepare: cannot create directory %s\n", 
subdirpath);
+                       GDKsyserror("cannot create directory %s\n", subdirpath);
                        ret = GDK_FAIL;
                }
                TRC_DEBUG(IO_, "mkdir %s = %d\n", subdirpath, (int) ret);
@@ -3262,7 +3259,6 @@ force_move(int farmid, const char *srcdi
                strncpy(srcpath, name, len);
                srcpath[len] = '\0';
                if(!(dstpath = GDKfilepath(farmid, dstdir, srcpath, NULL))) {
-                       GDKsyserror("force_move: malloc fail\n");
                        return GDK_FAIL;
                }
 
@@ -3280,7 +3276,6 @@ force_move(int farmid, const char *srcdi
                /* step 2: now remove the .kill file. This one is
                 * crucial, otherwise we'll never finish recovering */
                if(!(killfile = GDKfilepath(farmid, srcdir, name, NULL))) {
-                       GDKsyserror("force_move: malloc fail\n");
                        return GDK_FAIL;
                }
                if (remove(killfile) != 0) {
@@ -3340,6 +3335,8 @@ BBPrecover(int farmid)
        }
        dirp = opendir(bakdirpath);
        if (dirp == NULL) {
+               if (errno != ENOENT)
+                       GDKsyserror("cannot open directory %s\n", bakdirpath);
                GDKfree(bakdirpath);
                GDKfree(leftdirpath);
                return GDK_SUCCEED;     /* nothing to do */
@@ -3351,7 +3348,7 @@ BBPrecover(int farmid)
        TRC_DEBUG(IO_, "start\n");
 
        if (mkdir(leftdirpath, MONETDB_DIRMODE) < 0 && errno != EEXIST) {
-               GDKsyserror("BBPrecover: cannot create directory %s\n", 
leftdirpath);
+               GDKsyserror("cannot create directory %s\n", leftdirpath);
                closedir(dirp);
                GDKfree(bakdirpath);
                GDKfree(leftdirpath);
@@ -3450,6 +3447,8 @@ BBPrecover_subdir(void)
        if (subdirpath == NULL)
                return GDK_FAIL;
        dirp = opendir(subdirpath);
+       if (dirp == NULL && errno != ENOENT)
+               GDKsyserror("cannot open directory %s\n", subdirpath);
        GDKfree(subdirpath);
        if (dirp == NULL) {
                return GDK_SUCCEED;     /* nothing to do */
@@ -3528,8 +3527,11 @@ BBPdiskscan(const char *parent, size_t b
        size_t dstlen = sizeof(fullname);
        const char *src = parent;
 
-       if (dirp == NULL)
+       if (dirp == NULL) {
+               if (errno != ENOENT)
+                       GDKsyserror("cannot open directory %s\n", parent);
                return true;    /* nothing to do */
+       }
 
        while (*src) {
                *dst++ = *src++;
diff --git a/gdk/gdk_cross.c b/gdk/gdk_cross.c
--- a/gdk/gdk_cross.c
+++ b/gdk/gdk_cross.c
@@ -27,7 +27,7 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
        cnt1 = canditer_init(&ci1, l, sl);
        cnt2 = canditer_init(&ci2, r, sr);
 
-       if (max_one && cnt2 > 1) {
+       if (max_one && cnt1 > 0 && cnt2 > 1) {
                GDKerror("more than one match");
                return GDK_FAIL;
        }
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -208,7 +208,7 @@ logbat_new(int tt, BUN size, role_t role
                if (role == PERSISTENT)
                        BATmode(nb, false);
        } else {
-               fprintf(stderr, "!ERROR: logbat_new: creating new 
BAT[void:%s]#" BUNFMT " failed\n", ATOMname(tt), size);
+               TRC_CRITICAL(GDK, "creating new BAT[void:%s]#" BUNFMT " 
failed\n", ATOMname(tt), size);
        }
        return nb;
 }
@@ -230,7 +230,7 @@ log_write_format(logger *l, logformat *d
            mnstr_writeLng(l->log, data->nr) &&
            mnstr_writeInt(l->log, data->tid))
                return GDK_SUCCEED;
-       fprintf(stderr, "!ERROR: log_write_format: write failed\n");
+       TRC_CRITICAL(GDK, "write failed\n");
        return GDK_FAIL;
 }
 
@@ -243,7 +243,7 @@ log_read_string(logger *l)
 
        assert(!l->inmemory);
        if (mnstr_readInt(l->log, &len) != 1) {
-               fprintf(stderr, "!ERROR: log_read_string: read failed\n");
+               TRC_CRITICAL(GDK, "read failed\n");
 //MK This leads to non-repeatable log structure?
                return NULL;
        }
@@ -251,14 +251,14 @@ log_read_string(logger *l)
                return NULL;
        buf = GDKmalloc(len);
        if (buf == NULL) {
-               fprintf(stderr, "!ERROR: log_read_string: malloc failed\n");
+               TRC_CRITICAL(GDK, "malloc failed\n");
                /* this is bad */
                return (char *) -1;
        }
 
        if ((nr = mnstr_read(l->log, buf, 1, len)) != (ssize_t) len) {
                buf[len - 1] = 0;
-               fprintf(stderr, "!ERROR: log_read_string: couldn't read name 
(%s) %zd\n", buf, nr);
+               TRC_CRITICAL(GDK, "couldn't read name (%s) %zd\n", buf, nr);
                GDKfree(buf);
                return NULL;
        }
@@ -276,7 +276,7 @@ log_write_string(logger *l, const char *
        assert(len <= INT_MAX);
        if (!mnstr_writeInt(l->log, (int) len) ||
            mnstr_write(l->log, n, 1, len) != (ssize_t) len) {
-               fprintf(stderr, "!ERROR: log_write_string: write failed\n");
+               TRC_CRITICAL(GDK, "write failed\n");
                return GDK_FAIL;
        }
        return GDK_SUCCEED;
@@ -348,7 +348,7 @@ log_read_seq(logger *lg, logformat *l)
        assert(!lg->inmemory);
        assert(l->nr <= (lng) INT_MAX);
        if (mnstr_readLng(lg->log, &val) != 1) {
-               fprintf(stderr, "!ERROR: log_read_seq: read failed\n");
+               TRC_CRITICAL(GDK, "read failed\n");
                return LOG_EOF;
        }
 
@@ -378,7 +378,7 @@ log_write_id(logger *l, char tpe, oid id
        if (mnstr_writeChr(l->log, tpe) &&
            mnstr_writeLng(l->log, lid))
                return GDK_SUCCEED;
-       fprintf(stderr, "!ERROR: log_write_id: write failed\n");
+       TRC_CRITICAL(GDK, "write failed\n");
        return GDK_FAIL;
 }
 
@@ -390,7 +390,7 @@ log_read_id(logger *lg, char *tpe, oid *
        assert(!lg->inmemory);
        if (mnstr_readChr(lg->log, tpe) != 1 ||
            mnstr_readLng(lg->log, &lid) != 1) {
-               fprintf(stderr, "!ERROR: log_read_id: read failed\n");
+               TRC_CRITICAL(GDK, "read failed\n");
                return LOG_EOF;
        }
        *id = (oid)lid;
@@ -801,7 +801,7 @@ log_read_create(logger *lg, trans *tr, c
        ha = buf;
        ta = strchr(buf, ',');
        if (ta == NULL) {
-               fprintf(stderr, "!ERROR: log_read_create: inconsistent data 
read\n");
+               TRC_CRITICAL(GDK, "inconsistent data read\n");
                return LOG_ERR;
        }
        *ta++ = 0;              /* skip over , */
@@ -1077,11 +1077,11 @@ logger_open(logger *lg)
        }
        len = snprintf(id, sizeof(id), LLFMT, lg->id);
        if (len == -1 || len >= BUFSIZ) {
-               fprintf(stderr, "!ERROR: logger_open: filename is too large\n");
+               TRC_CRITICAL(GDK, "filename is too large\n");
                return GDK_FAIL;
        }
        if (!(filename = GDKfilepath(BBPselectfarm(PERSISTENT, 0, offheap), 
lg->dir, LOGFILE, id))) {
-               fprintf(stderr, "!ERROR: logger_open: allocation failure\n");
+               TRC_CRITICAL(GDK, "allocation failure\n");
                return GDK_FAIL;
        }
 
@@ -1093,7 +1093,7 @@ logger_open(logger *lg)
        lg->end = 0;
 
        if (lg->log == NULL || mnstr_errnr(lg->log)) {
-               fprintf(stderr, "!ERROR: logger_open: creating %s failed\n", 
filename);
+               TRC_CRITICAL(GDK, "creating %s failed\n", filename);
                GDKfree(filename);
                return GDK_FAIL;
        }
@@ -1153,7 +1153,7 @@ logger_readlog(logger *lg, char *filenam
                break;
        }
        if ((fd = getFileNo(lg->log)) < 0 || fstat(fd, &sb) < 0) {
-               fprintf(stderr, "!ERROR: logger_readlog: fstat on opened file 
%s failed\n", filename);
+               TRC_CRITICAL(GDK, "fstat on opened file %s failed\n", filename);
                logger_close(lg);
                GDKdebug = dbg;
                /* If the file could be opened, but fstat fails,
@@ -1670,7 +1670,7 @@ bm_subcommit(logger *lg, BAT *list_bid, 
        res = TMsubcommit_list(n, i);
        GDKfree(n);
        if (res != GDK_SUCCEED)
-               fprintf(stderr, "!ERROR: bm_subcommit: commit failed\n");
+               TRC_CRITICAL(GDK, "commit failed\n");
        return res;
 }
 
@@ -1731,8 +1731,15 @@ logger_load(int debug, const char *fn, c
                        if (GDKunlink(farmid, lg->dir, LOGFILE, NULL) != 
GDK_SUCCEED ||
                            GDKmove(farmid, lg->dir, LOGFILE, "bak", lg->dir, 
LOGFILE, NULL) != GDK_SUCCEED)
                                goto error;
+               } else if (errno != ENOENT) {
+                       GDKsyserror("open %s failed", bak);
+                       goto error;
                }
                fp = fopen(filename, "r");
+               if (fp == NULL && errno != ENOENT) {
+                       GDKsyserror("open %s failed", filename);
+                       goto error;
+               }
        }
 
        strconcat_len(bak, sizeof(bak), fn, "_catalog", NULL);
@@ -1808,8 +1815,8 @@ logger_load(int debug, const char *fn, c
                                goto error;
                        }
                        if ((fp = fopen(filename, "w")) == NULL) {
-                               GDKerror("cannot create log file %s\n",
-                                        filename);
+                               GDKsyserror("cannot create log file %s\n",
+                                           filename);
                                goto error;
                        }
                        lg->id ++;
@@ -2179,8 +2186,10 @@ logger_load(int debug, const char *fn, c
 #ifdef _MSC_VER
                        /* work around bug in Visual Studio runtime:
                         * fgetpos may return incorrect value */
-                       if ((fp1 = fopen(filename, "r")) == NULL)
+                       if ((fp1 = fopen(filename, "r")) == NULL) {
+                               GDKsyserror("cannot open %s\n", filename);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to