Changeset: 492bdd3c0a23 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=492bdd3c0a23
Modified Files:
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_bbp.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/bbp.c
Branch: default
Log Message:

BATs now only have a single (logical) name.


diffs (170 lines):

diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -2,6 +2,7 @@
 # This file is updated with Maddlog
 
 * Tue Jun 28 2016 Sjoerd Mullender <[email protected]>
+- BATs now only have a single (logical) name.
 - The function BATmirror is gone.  The HEAD column is always VOID (with
   a non-nil seqbase) and the TAIL column carries the data.  All functions
   that deal with data work on the TAIL column.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1729,8 +1729,8 @@ gdk_export void GDKqsort_rev(void *h, vo
  */
 typedef struct {
        BAT *cache;             /* if loaded: BAT* handle */
-       str logical[2];         /* logical name + reverse */
-       str bak[2];             /* logical name + reverse backups */
+       str logical;            /* logical name */
+       str bak;                /* logical name backup */
        bat next[2];            /* next BBP slot in linked list */
        BATstore *desc;         /* the BAT descriptor */
        str physical;           /* dir + basename for storage */
@@ -1755,8 +1755,8 @@ gdk_export BBPrec *BBP[N_BBPINIT];
 
 /* fast defines without checks; internal use only  */
 #define BBP_cache(i)   BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].cache
-#define BBP_logical(i) 
BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].logical[(i)<0]
-#define BBP_bak(i)     BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].bak[(i)<0]
+#define BBP_logical(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].logical
+#define BBP_bak(i)     BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].bak
 #define BBP_next(i)    BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].next[(i)<0]
 #define BBP_physical(i)        
BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].physical
 #define BBP_options(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].options
@@ -1776,13 +1776,9 @@ gdk_export int BBPcurstamp(void);
 /* we use abs(i) instead of -(i) here because of a bug in gcc 4.8.2
  * (at least) with optimization enabled; it incorrectly complains
  * about an array bound error in monetdb5/modules/kernel/status.c */
-#define BBPname(i)                                                     \
-       (BBPcheck((i), "BBPname") ?                                     \
-        ((i) > 0 ?                                                     \
-         BBP[(i) >> BBPINITLOG][(i) & (BBPINIT - 1)].logical[0] :      \
-         (BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[1] ? \
-          BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[1] : \
-          BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[0])) : \
+#define BBPname(i)                                             \
+       (BBPcheck((i), "BBPname") ?                             \
+        BBP[(i) >> BBPINITLOG][(i) & (BBPINIT - 1)].logical :  \
         "")
 #define BBPvalid(i)    (BBP_logical(i) != NULL && *BBP_logical(i) != '.')
 #define BATgetId(b)    BBPname((b)->batCacheid)
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -319,14 +319,9 @@ BBPinithash(int j)
                const char *s = BBP_logical(i);
 
                if (s) {
-                       const char *sm = BBP_logical(-i);
-
                        if (*s != '.' && BBPtmpcheck(s) == 0) {
                                BBP_insert(i);
                        }
-                       if (sm && *sm != '.' && BBPtmpcheck(sm) == 0) {
-                               BBP_insert(-i);
-                       }
                } else {
                        BBP_next(i) = BBP_free(j);
                        BBP_free(j) = i;
@@ -1157,10 +1152,7 @@ BBPreadEntries(FILE *fp, int *min_stamp,
                        s = logical;
                }
                BBP_logical(bid) = GDKstrdup(s);
-               if (strcmp(tailname, BBPNONAME) != 0)
-                       BBP_logical(-bid) = GDKstrdup(tailname);
-               else
-                       BBP_logical(-bid) = GDKstrdup(BBPtmpname(tailname, 
sizeof(tailname), -bid));
+               /* tailname is ignored */
                BBP_physical(bid) = GDKstrdup(filename);
                BBP_options(bid) = NULL;
                if (options)
@@ -1457,8 +1449,6 @@ BBPexit(void)
                                BBP_bak(i) = NULL;
                                GDKfree(BBP_logical(i));
                                BBP_logical(i) = NULL;
-                               GDKfree(BBP_logical(-i));
-                               BBP_logical(-i) = NULL;
                        }
                        if (BBP_physical(i)) {
                                GDKfree(BBP_physical(i));
@@ -1548,7 +1538,7 @@ new_bbpentry(FILE *fp, bat i)
                    (ssize_t) i,
                    BBP_status(i) & BBPPERSISTENT,
                    BBP_logical(i),
-                   BBP_logical(-i) ? BBP_logical(-i) : BBPNONAME,
+                   BBPNONAME,  /* backward compatible entry */
                    BBP_physical(i),
                    BBP_lastused(i),
                    BBP_desc(i)->S.restricted << 1,
@@ -1797,7 +1787,7 @@ BBPdump(void)
                if (b == NULL)
                        continue;
                fprintf(stderr,
-                       "# %d[%s,%s]: nme=['%s','%s'] refs=%d lrefs=%d "
+                       "# %d[%s,%s]: nme='%s' refs=%d lrefs=%d "
                        "status=%d count=" BUNFMT " "
                        "Hheap=[" SZFMT "," SZFMT "] "
                        "Hvheap=[" SZFMT "," SZFMT "] "
@@ -1809,7 +1799,6 @@ BBPdump(void)
                        ATOMname(b->H->type),
                        ATOMname(b->T->type),
                        BBP_logical(i) ? BBP_logical(i) : "<NULL>",
-                       BBP_logical(-i) ? BBP_logical(-i) : "<NULL>",
                        BBP_refs(i),
                        BBP_lrefs(i),
                        BBP_status(i),
@@ -2129,8 +2118,6 @@ BBPinsert(BATstore *bs)
                BBP_bak(i) = BBP_logical(i);
        } else
                BBP_logical(i) = BBP_bak(i);
-       s = BBPtmpname(dirname, 64, -i);
-       BBP_logical(-i) = GDKstrdup(s);
 
        /* Keep the physical location around forever */
        if (BBP_physical(i) == NULL) {
@@ -2235,18 +2222,10 @@ bbpclear(bat i, int idx, const char *loc
                BBP_delete(i);
                MT_lock_unset(&GDKnameLock);
        }
-       if (BBPtmpcheck(BBP_logical(-i)) == 0) {
-               MT_lock_set(&GDKnameLock);
-               BBP_delete(-i);
-               MT_lock_unset(&GDKnameLock);
-       }
        if (BBP_logical(i) != BBP_bak(i))
                GDKfree(BBP_logical(i));
-       if (BBP_logical(-i) != BBP_bak(-i))
-               GDKfree(BBP_logical(-i));
        BBP_status_set(i, 0, "BBPclear");
        BBP_logical(i) = NULL;
-       BBP_logical(-i) = NULL;
        BBP_next(i) = BBP_free(idx);
        BBP_free(idx) = i;
        if (lock)
diff --git a/monetdb5/modules/kernel/status.c b/monetdb5/modules/kernel/status.c
--- a/monetdb5/modules/kernel/status.c
+++ b/monetdb5/modules/kernel/status.c
@@ -298,8 +298,6 @@ SYSmem_usage(bat *ret, bat *ret2, const 
                        sz += BATSTORESIZE;
                if (BBP_logical(i))
                        n += strLen(BBP_logical(i));
-               if (BBP_logical(-i))
-                       n += strLen(BBP_logical(-i));
                if (BBP_physical(i))
                        n += strLen(BBP_physical(i));
                if (b)
diff --git a/monetdb5/modules/mal/bbp.c b/monetdb5/modules/mal/bbp.c
--- a/monetdb5/modules/mal/bbp.c
+++ b/monetdb5/modules/mal/bbp.c
@@ -99,8 +99,6 @@ CMDbbpNames(bat *ret)
                if (i != b->batCacheid) {
                        if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i)) ) {
                                BUNappend(b, BBP_logical(i), FALSE);
-                               if (BBP_logical(-i) && (BBP_refs(-i) || 
BBP_lrefs(-i)) && !BBPtmpcheck(BBP_logical(-i)))
-                                       BUNappend(b,  BBP_logical(-i), FALSE);
                        }
                }
        BBPunlock();
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to