Changeset: 0d9257c2aaad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0d9257c2aaad
Modified Files:
        gdk/gdk_bat.c
        gdk/gdk_bbp.c
        gdk/gdk_logger.c
        gdk/gdk_logger_old.c
        monetdb5/modules/kernel/bat5.c
Branch: default
Log Message:

batRestricted is once more a proper restrict_t value.


diffs (105 lines):

diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -2283,7 +2283,7 @@ BATsetaccess(BAT *b, restrict_t newmode)
                b = bn;
        }
        MT_lock_set(&b->theaplock);
-       bakmode = (restrict_t) b->batRestricted;
+       bakmode = b->batRestricted;
        bakdirty = b->batDirtydesc;
        if (bakmode != newmode) {
                bool existing = (BBP_status(b->batCacheid) & BBPEXISTING) != 0;
@@ -2337,9 +2337,8 @@ BATsetaccess(BAT *b, restrict_t newmode)
 restrict_t
 BATgetaccess(BAT *b)
 {
-       BATcheck(b, BAT_WRITE /* 0 */);
-       assert(b->batRestricted != 3); /* only valid restrict_t values */
-       return (restrict_t) b->batRestricted;
+       BATcheck(b, BAT_WRITE);
+       return b->batRestricted;
 }
 
 /*
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -684,7 +684,22 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                }
                bn->batTransient = false;
                bn->batCopiedtodisk = true;
-               bn->batRestricted = (properties & 0x06) >> 1;
+               switch ((properties & 0x06) >> 1) {
+               case 0:
+                       bn->batRestricted = BAT_WRITE;
+                       break;
+               case 1:
+                       bn->batRestricted = BAT_READ;
+                       break;
+               case 2:
+                       bn->batRestricted = BAT_APPEND;
+                       break;
+               default:
+                       GDKfree(bn->theap);
+                       GDKfree(bn);
+                       TRC_CRITICAL(GDK, "incorrect batRestricted value");
+                       goto bailout;
+               }
                bn->batCount = (BUN) count;
                bn->batInserted = bn->batCount;
                /* set capacity to at least count */
@@ -1905,7 +1920,7 @@ new_bbpentry(FILE *fp, bat i, BUN size, 
                    BBP_status(i) & BBPPERSISTENT,
                    BBP_logical(i),
                    BBP_physical(i),
-                   bi->b->batRestricted << 1,
+                   (unsigned) bi->b->batRestricted << 1,
                    size,
                    bi->b->hseqbase) < 0 ||
            heap_entry(fp, bi, size) < 0 ||
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -257,7 +257,7 @@ la_bat_clear(logger *lg, logaction *la, 
 
        b = BATdescriptor(bid);
        if (b) {
-               restrict_t access = (restrict_t) b->batRestricted;
+               restrict_t access = b->batRestricted;
                b->batRestricted = BAT_WRITE;
                /* during startup this is fine */
                BATclear(b, true);
diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -344,7 +344,7 @@ la_bat_clear(old_logger *lg, logaction *
 
        b = BATdescriptor(bid);
        if (b) {
-               restrict_t access = (restrict_t) b->batRestricted;
+               restrict_t access = b->batRestricted;
                b->batRestricted = BAT_WRITE;
                BATclear(b, true);
                b->batRestricted = access;
diff --git a/monetdb5/modules/kernel/bat5.c b/monetdb5/modules/kernel/bat5.c
--- a/monetdb5/modules/kernel/bat5.c
+++ b/monetdb5/modules/kernel/bat5.c
@@ -187,7 +187,7 @@ BKCappend_cand_force_wrap(bat *r, const 
                throw(MAL, "bat.append", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
        if (isVIEW(b)) {
                BAT *bn = COLcopy(b, b->ttype, true, TRANSIENT);
-               restrict_t mode = (restrict_t) b->batRestricted;
+               restrict_t mode = b->batRestricted;
                BBPunfix(b->batCacheid);
                if (bn == NULL || (b = BATsetaccess(bn, mode)) == NULL)
                        throw(MAL, "bat.append", GDK_EXCEPTION);
@@ -252,7 +252,7 @@ BKCappend_val_force_wrap(bat *r, const b
                throw(MAL, "bat.append", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
        if (isVIEW(b)) {
                BAT *bn = COLcopy(b, b->ttype, true, TRANSIENT);
-               restrict_t mode = (restrict_t) b->batRestricted;
+               restrict_t mode = b->batRestricted;
                BBPunfix(b->batCacheid);
                if (bn == NULL || (b = BATsetaccess(bn, mode)) == NULL)
                        throw(MAL, "bat.append", GDK_EXCEPTION);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to