Changeset: 1b509f7422bb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1b509f7422bb
Modified Files:
        gdk/gdk.h
        gdk/gdk_bbp.c
Branch: default
Log Message:

Remove talign field and now unused GDKoid value from BBP.dir.


diffs (103 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -855,7 +855,8 @@ typedef struct {
 #define GDKLIBRARY_INSERTED    061032  /* inserted and deleted in BBP.dir */
 #define GDKLIBRARY_HEADED      061033  /* head properties are stored */
 #define GDKLIBRARY_NOKEY       061034  /* nokey values can't be trusted */
-#define GDKLIBRARY             061035
+#define GDKLIBRARY_TALIGN      061035  /* talign field in BBP.dir */
+#define GDKLIBRARY             061036
 
 typedef struct BAT {
        /* static bat properties */
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -931,13 +931,21 @@ heapinit(BAT *b, const char *buf, int *h
        (void) bbpversion;      /* could be used to implement compatibility */
 
        norevsorted = 0; /* default for first case */
-       if (sscanf(buf,
+       if (bbpversion <= GDKLIBRARY_TALIGN ?
+           sscanf(buf,
                   " %10s %hu %hu %hu %lld %lld %lld %lld %lld %lld %lld %lld 
%hu"
                   "%n",
                   type, &width, &var, &properties, &nokey0,
                   &nokey1, &nosorted, &norevsorted, &base,
                   &align, &free, &size, &storage,
-                  &n) < 13)
+                  &n) < 13 :
+               sscanf(buf,
+                  " %10s %hu %hu %hu %lld %lld %lld %lld %lld %lld %lld %hu"
+                  "%n",
+                  type, &width, &var, &properties, &nokey0,
+                  &nokey1, &nosorted, &norevsorted, &base,
+                  &free, &size, &storage,
+                  &n) < 12)
                GDKfatal("BBPinit: invalid format for BBP.dir\n%s", buf);
 
        if (properties & ~0x0F81)
@@ -1216,7 +1224,8 @@ BBPheader(FILE *fp, int *OIDsize)
            bbpversion != GDKLIBRARY_SORTEDPOS &&
            bbpversion != GDKLIBRARY_OLDWKB &&
            bbpversion != GDKLIBRARY_INSERTED &&
-           bbpversion != GDKLIBRARY_HEADED) {
+           bbpversion != GDKLIBRARY_HEADED &&
+           bbpversion != GDKLIBRARY_TALIGN) {
                GDKfatal("BBPinit: incompatible BBP version: expected 0%o, got 
0%o.\n"
                         "This database was probably created by %s version of 
MonetDB.",
                         GDKLIBRARY, bbpversion,
@@ -1246,6 +1255,8 @@ BBPheader(FILE *fp, int *OIDsize)
        if (fgets(buf, sizeof(buf), fp) == NULL) {
                GDKfatal("BBPinit: short BBP");
        }
+       /* when removing GDKLIBRARY_TALIGN, also remove the strstr
+        * call and just sscanf from buf */
        if ((s = strstr(buf, "BBPsize")) != NULL) {
                sscanf(s, "BBPsize=%d", &sz);
                sz = (int) (sz * BATMARGIN);
@@ -1493,7 +1504,7 @@ static inline int
 heap_entry(FILE *fp, BAT *b)
 {
        return fprintf(fp, " %s %d %d %d " BUNFMT " " BUNFMT " " BUNFMT " "
-                      BUNFMT " " OIDFMT " " OIDFMT " " SZFMT " " SZFMT " %d",
+                      BUNFMT " " OIDFMT " " SZFMT " " SZFMT " %d",
                       b->ttype >= 0 ? BATatoms[b->ttype].name : 
ATOMunknown_name(b->ttype),
                       b->twidth,
                       b->tvarsized | (b->tvheap ? b->tvheap->hashash << 1 : 0),
@@ -1508,7 +1519,6 @@ heap_entry(FILE *fp, BAT *b)
                       b->tnosorted,
                       b->tnorevsorted,
                       b->tseqbase,
-                      (oid) 0, /* formerly b->talign */
                       b->theap.free,
                       b->theap.size,
                       (int) b->theap.newstorage);
@@ -1565,7 +1575,7 @@ new_bbpentry(FILE *fp, bat i)
 static gdk_return
 BBPdir_header(FILE *f, int n)
 {
-       if (fprintf(f, "BBP.dir, GDKversion %d\n%d %d %d\n0@0 BBPsize=%d\n",
+       if (fprintf(f, "BBP.dir, GDKversion %d\n%d %d %d\nBBPsize=%d\n",
                    GDKLIBRARY, SIZEOF_SIZE_T, SIZEOF_OID,
 #ifdef HAVE_HGE
                    havehge ? SIZEOF_HGE :
@@ -1584,7 +1594,6 @@ BBPdir_subcommit(int cnt, bat *subcommit
        FILE *obbpf, *nbbpf;
        bat j = 1;
        char buf[3000];
-       char *p;
        int n;
 
 #ifndef NDEBUG
@@ -1610,8 +1619,7 @@ BBPdir_subcommit(int cnt, bat *subcommit
            fgets(buf, sizeof(buf), obbpf) == NULL) /* BBPsize=%d */
                GDKfatal("BBPdir: subcommit attempted with invalid backup 
BBP.dir.");
        /* third line contains BBPsize */
-       if ((p = strstr(buf, "BBPsize")) != NULL)
-               sscanf(p, "BBPsize=%d", &n);
+       sscanf(buf, "BBPsize=%d", &n);
        if (n < (bat) ATOMIC_GET(BBPsize, BBPsizeLock))
                n = (bat) ATOMIC_GET(BBPsize, BBPsizeLock);
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to