Changeset: 6d27652b55ca for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6d27652b55ca
Modified Files:
        gdk/gdk_logger.c
        monetdb5/mal/mal_import.c
        sql/backends/monet5/sql_statistics.c
Branch: transaction-replication
Log Message:

Merge with default branch.


diffs (148 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -324,7 +324,8 @@ log_read_updates(logger *lg, trans *tr, 
                if (tt == TYPE_oid && lg->read32bitoid)
                        rt = BATatoms[TYPE_int].atomRead;
 #endif
-               r = BATnew(ht, tt, l->nr);
+               assert(l->nr <= (lng) BUN_MAX);
+               r = BATnew(ht, tt, (BUN) l->nr);
 
                if (hseq)
                        BATseqbase(r, 0);
@@ -592,10 +593,11 @@ log_read_use(logger *lg, trans *tr, logf
 static void
 la_bat_use(logger *lg, logaction *la)
 {
-       log_bid bid = la->nr;
+       log_bid bid = (log_bid) la->nr;
        BAT *b = BATdescriptor(bid);
        BUN p;
 
+       assert(la->nr <= (lng) INT_MAX);
        if (!b) {
                GDKerror("logger: could not use bat (%d) for %s\n", (int) bid, 
la->name);
                return;
@@ -830,8 +832,9 @@ logger_readlog(logger *lg, char *filenam
                        tr = tr_find(tr, l.tid);
                switch (l.flag) {
                case LOG_START:
+                       assert(l.nr <= (lng) INT_MAX);
                        if (l.nr > lg->tid)
-                               lg->tid = l.nr;
+                               lg->tid = (int)l.nr;
                        tr = tr_create(tr, (int)l.nr);
                        if (lg->debug & 1)
                                fprintf(stderr, "#logger tstart %d\n", tr->tid);
@@ -1883,7 +1886,6 @@ log_delta(logger *lg, BAT *b, char *name
        int ok = GDK_SUCCEED;
        logformat l;
        BUN p;
-       BUN nr;
 
        if (lg->debug & 128) {
                /* logging is switched off */
@@ -1891,10 +1893,8 @@ log_delta(logger *lg, BAT *b, char *name
        }
 
        l.tid = lg->tid;
-       nr = (BUNlast(b) - BUNfirst(b));
-       assert(nr <= GDK_lng_max);
-       l.nr = nr;
-       lg->changes += l.nr;
+       l.nr = (BUNlast(b) - BUNfirst(b));
+       lg->changes += (size_t)l.nr;
 
        if (l.nr) {
                BATiter bi = bat_iterator(b);
@@ -1936,7 +1936,7 @@ log_bat(logger *lg, BAT *b, char *name)
 
        l.tid = lg->tid;
        l.nr = (BUNlast(b) - b->batInserted);
-       lg->changes += l.nr;
+       lg->changes += (size_t)l.nr;
 
        if (l.nr) {
                BATiter bi = bat_iterator(b);
@@ -1954,7 +1954,7 @@ log_bat(logger *lg, BAT *b, char *name)
                    !isVIEW(b)) {
                        const void *t = BUNtail(bi, b->batInserted);
 
-                       ok = wt(t, lg->log, l.nr);
+                       ok = wt(t, lg->log, (size_t)l.nr);
                } else {
                        for (p = b->batInserted; p < BUNlast(b) && ok == 
GDK_SUCCEED; p++) {
                                const void *h = BUNhead(bi, p);
@@ -1969,7 +1969,7 @@ log_bat(logger *lg, BAT *b, char *name)
                        fprintf(stderr, "#Logged %s " LLFMT " inserts\n", name, 
l.nr);
        }
        l.nr = (b->batFirst - b->batDeleted);
-       lg->changes += l.nr;
+       lg->changes += (size_t)l.nr;
 
        if (l.nr && ok == GDK_SUCCEED) {
                BATiter bi = bat_iterator(b);
@@ -2009,7 +2009,7 @@ log_bat_clear(logger *lg, char *name)
 
        l.nr = 1;
        l.tid = lg->tid;
-       lg->changes += l.nr;
+       lg->changes += (size_t)l.nr;
 
        l.flag = LOG_CLEAR;
        if (log_write_format(lg, &l) == LOG_ERR ||
diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c
--- a/monetdb5/mal/mal_import.c
+++ b/monetdb5/mal/mal_import.c
@@ -262,8 +262,8 @@ evalFile(Client c, str fname, int listin
        while ((p = strchr(filename, PATH_SEP)) != NULL) {
                *p = '\0';
                fd = malOpenSource(filename);
-               if (mnstr_errnr(fd) == MNSTR_OPEN_ERROR) {
-                       mnstr_destroy(fd);
+               if (fd == 0 || mnstr_errnr(fd) == MNSTR_OPEN_ERROR) {
+                       if(fd) mnstr_destroy(fd);
                        mnstr_printf(c->fdout, "#WARNING: could not open file: 
%s\n",
                                        filename);
                } else {
@@ -277,10 +277,9 @@ evalFile(Client c, str fname, int listin
                filename = p + 1;
        }
        fd = malOpenSource(filename);
-       if (mnstr_errnr(fd) == MNSTR_OPEN_ERROR) {
-               mnstr_destroy(fd);
-               mnstr_printf(c->fdout, "#WARNING: could not open file: %s\n",
-                               filename);
+       if (fd == 0 || mnstr_errnr(fd) == MNSTR_OPEN_ERROR) {
+               if( fd == 0) mnstr_destroy(fd);
+               msg = createException(MAL,"mal.eval", "WARNING: could not open 
file: %s\n", filename);
        } else {
                c->srcFile = filename;
                c->yycur = 0;
diff --git a/sql/backends/monet5/sql_statistics.c 
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -111,17 +111,15 @@ sql_analyze(Client cntxt, MalBlkPtr mb, 
                                                        bsample = NULL;
                                                br = BATsubselect(bn, bsample, 
ATOMnilptr(bn->ttype), ATOMnilptr(bn->ttype), 0, 0, 0);
                                                nils = BATcount(br);
-                                               BBPunfix(br->batCacheid);
-                                               if (bn->tkey)
+                                               if (br->tkey)
                                                        uniq = sz;
                                                else {
-                                                       br = 
BATkunique(BATmirror(bsample));
-                                                       uniq = BATcount(br);
-                                                       
BBPunfix(br->batCacheid);
+                                                       br = 
BATkunique(BATmirror(br));
+                                                       uniq = br? 
BATcount(br):0;
                                                }
-                                               if (samplesize > 0) {
+                                               BBPunfix(br->batCacheid);
+                                               if( bsample)
                                                        
BBPunfix(bsample->batCacheid);
-                                               }
                                                sorted = BATtordered(bn);
 
                                                // Gather the min/max value for 
builtin types
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to