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