Changeset: 59b345a4d861 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=59b345a4d861
Modified Files:
monetdb5/modules/kernel/bat5.c
Branch: default
Log Message:
Do error checking, and get rid of old M4-type extra functions.
diffs (truncated from 579 to 300 lines):
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
@@ -78,7 +78,7 @@ local_utoa(size_t i)
#define COLLISION (8 * sizeof(size_t))
-static void
+static gdk_return
HASHinfo(BAT *bk, BAT *bv, Hash *h, str s)
{
BUN i;
@@ -86,10 +86,11 @@ HASHinfo(BAT *bk, BAT *bv, Hash *h, str
BUN k;
BUN cnt[COLLISION + 1];
- BUNappend(bk, pre(s, "type"), FALSE);
- BUNappend(bv, ATOMname(h->type),FALSE);
- BUNappend(bk, pre(s, "mask"), FALSE);
- BUNappend(bv, local_utoa(h->lim),FALSE);
+ if (BUNappend(bk, pre(s, "type"), FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, ATOMname(h->type),FALSE) != GDK_SUCCEED ||
+ BUNappend(bk, pre(s, "mask"), FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, local_utoa(h->lim),FALSE) != GDK_SUCCEED)
+ return GDK_FAIL;
for (i = 0; i < COLLISION + 1; i++) {
cnt[i] = 0;
@@ -103,35 +104,43 @@ HASHinfo(BAT *bk, BAT *bv, Hash *h, str
for (i = 0; i < COLLISION + 1; i++)
if (cnt[i]) {
- BUNappend(bk, pre(s,
local_utoa(i?(((size_t)1)<<(i-1)):0)), FALSE);
- BUNappend(bv, local_utoa((size_t) cnt[i]), FALSE);
+ if (BUNappend(bk, pre(s,
local_utoa(i?(((size_t)1)<<(i-1)):0)), FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, local_utoa((size_t) cnt[i]), FALSE)
!= GDK_SUCCEED)
+ return GDK_FAIL;
}
+ return GDK_SUCCEED;
}
-static void
+static gdk_return
infoHeap(BAT *bk, BAT*bv, Heap *hp, str nme)
{
char buf[1024], *p = buf;
if (!hp)
- return;
+ return GDK_SUCCEED;
while (*nme)
*p++ = *nme++;
strcpy(p, "free");
- BUNappend(bk, buf, FALSE);
- BUNappend(bv, local_utoa(hp->free),FALSE);
+ if (BUNappend(bk, buf, FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, local_utoa(hp->free), FALSE) != GDK_SUCCEED)
+ return GDK_FAIL;
strcpy(p, "size");
- BUNappend(bk, buf, FALSE);
- BUNappend(bv, local_utoa(hp->size),FALSE);
+ if (BUNappend(bk, buf, FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, local_utoa(hp->size), FALSE) != GDK_SUCCEED)
+ return GDK_FAIL;
strcpy(p, "storage");
- BUNappend(bk, buf, FALSE);
- BUNappend(bv, (hp->base == NULL || hp->base == (char*)1) ? "absent" :
(hp->storage == STORE_MMAP) ? (hp->filename ? "memory mapped" : "anonymous vm")
: (hp->storage == STORE_PRIV) ? "private map" : "malloced",FALSE);
+ if (BUNappend(bk, buf, FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, (hp->base == NULL || hp->base == (char*)1) ?
"absent" : (hp->storage == STORE_MMAP) ? (hp->filename ? "memory mapped" :
"anonymous vm") : (hp->storage == STORE_PRIV) ? "private map" : "malloced",
FALSE) != GDK_SUCCEED)
+ return GDK_FAIL;
strcpy(p, "newstorage");
- BUNappend(bk, buf, FALSE);
- BUNappend(bv, (hp->newstorage == STORE_MEM) ? "malloced" :
(hp->newstorage == STORE_PRIV) ? "private map" : "memory mapped",FALSE);
+ if (BUNappend(bk, buf, FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, (hp->newstorage == STORE_MEM) ? "malloced" :
(hp->newstorage == STORE_PRIV) ? "private map" : "memory mapped", FALSE) !=
GDK_SUCCEED)
+ return GDK_FAIL;
strcpy(p, "filename");
- BUNappend(bk, buf, FALSE);
- BUNappend(bv, hp->filename ? hp->filename : "no file",FALSE);
+ if (BUNappend(bk, buf, FALSE) != GDK_SUCCEED ||
+ BUNappend(bv, hp->filename ? hp->filename : "no file", FALSE)
!= GDK_SUCCEED)
+ return GDK_FAIL;
+ return GDK_SUCCEED;
}
static char *
@@ -145,237 +154,6 @@ oidtostr(oid i)
return bf;
}
-static gdk_return
-CMDinfo(BAT **ret1, BAT **ret2, BAT *b)
-{
- BAT *bk, *bv;
- const char *mode, *accessmode;
-
- if (!(bk = BATnew(TYPE_void, TYPE_str, 128, TRANSIENT)))
- return GDK_FAIL;
- if (!(bv = BATnew(TYPE_void, TYPE_str, 128, TRANSIENT))) {
- BBPreclaim(bk);
- return GDK_FAIL;
- }
- BATseqbase(bk,0);
- BATseqbase(bv,0);
- *ret1 = bk;
- *ret2 = bv;
-
- if (b->batPersistence == PERSISTENT) {
- mode = "persistent";
- } else if (b->batPersistence == TRANSIENT) {
- mode = "transient";
- } else {
- mode ="unknown";
- }
-
- switch (b->batRestricted) {
- case BAT_READ:
- accessmode = "read-only";
- break;
- case BAT_WRITE:
- accessmode = "updatable";
- break;
- case BAT_APPEND:
- accessmode = "append-only";
- break;
- default:
- accessmode = "unknown";
- }
-
- BUNappend(bk, "batId", FALSE);
- BUNappend(bv, BATgetId(b),FALSE);
- BUNappend(bk, "batCacheid", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->batCacheid)),FALSE);
- BUNappend(bk, "hparentid", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->H->heap.parentid)),FALSE);
- BUNappend(bk, "tparentid", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->T->heap.parentid)),FALSE);
- BUNappend(bk, "batSharecnt", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->batSharecnt)),FALSE);
- BUNappend(bk, "batCount", FALSE);
- BUNappend(bv, local_utoa((size_t)b->batCount),FALSE);
- BUNappend(bk, "batCapacity", FALSE);
- BUNappend(bv, local_utoa((size_t)b->batCapacity),FALSE);
- BUNappend(bk, "head", FALSE);
- BUNappend(bv, ATOMname(TYPE_void),FALSE);
- BUNappend(bk, "tail", FALSE);
- BUNappend(bv, ATOMname(b->ttype),FALSE);
- BUNappend(bk, "batPersistence", FALSE);
- BUNappend(bv, mode,FALSE);
- BUNappend(bk, "batRestricted", FALSE);
- BUNappend(bv, accessmode,FALSE);
- BUNappend(bk, "batRefcnt", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BBP_refs(b->batCacheid))),FALSE);
- BUNappend(bk, "batLRefcnt", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BBP_lrefs(b->batCacheid))),FALSE);
- BUNappend(bk, "batDirty", FALSE);
- BUNappend(bv, BATdirty(b) ? "dirty" : "clean",FALSE);
-
- BUNappend(bk, "hsorted", FALSE);
- BUNappend(bv, local_itoa((ssize_t)BAThordered(b)),FALSE);
- BUNappend(bk, "hrevsorted", FALSE);
- BUNappend(bv, local_itoa((ssize_t)BAThrevordered(b)),FALSE);
- BUNappend(bk, "hident", FALSE);
- BUNappend(bv, b->hident,FALSE);
- BUNappend(bk, "hdense", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BAThdense(b))),FALSE);
- BUNappend(bk, "hseqbase", FALSE);
- BUNappend(bv, oidtostr(b->hseqbase),FALSE);
- BUNappend(bk, "hkey", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->hkey)),FALSE);
- BUNappend(bk, "hvarsized", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->hvarsized)),FALSE);
- BUNappend(bk, "halign", FALSE);
- BUNappend(bv, local_utoa(b->halign),FALSE);
- BUNappend(bk, "hnosorted", FALSE);
- BUNappend(bv, local_utoa(b->H->nosorted),FALSE);
- BUNappend(bk, "hnorevsorted", FALSE);
- BUNappend(bv, local_utoa(b->H->norevsorted),FALSE);
- BUNappend(bk, "hnodense", FALSE);
- BUNappend(bv, local_utoa(b->H->nodense),FALSE);
- BUNappend(bk, "hnokey[0]", FALSE);
- BUNappend(bv, local_utoa(b->H->nokey[0]),FALSE);
- BUNappend(bk, "hnokey[1]", FALSE);
- BUNappend(bv, local_utoa(b->H->nokey[1]),FALSE);
- BUNappend(bk, "hnonil", FALSE);
- BUNappend(bv, local_utoa(b->H->nonil),FALSE);
- BUNappend(bk, "hnil", FALSE);
- BUNappend(bv, local_utoa(b->H->nil),FALSE);
-
- BUNappend(bk, "tident", FALSE);
- BUNappend(bv, b->tident,FALSE);
- BUNappend(bk, "tdense", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BATtdense(b))), FALSE);
- BUNappend(bk, "tseqbase", FALSE);
- BUNappend(bv, oidtostr(b->tseqbase), FALSE);
- BUNappend(bk, "tsorted", FALSE);
- BUNappend(bv, local_itoa((ssize_t)BATtordered(b)), FALSE);
- BUNappend(bk, "trevsorted", FALSE);
- BUNappend(bv, local_itoa((ssize_t)BATtrevordered(b)), FALSE);
- BUNappend(bk, "tkey", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->tkey)), FALSE);
- BUNappend(bk, "tvarsized", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->tvarsized)), FALSE);
- BUNappend(bk, "talign", FALSE);
- BUNappend(bv, local_utoa(b->talign), FALSE);
- BUNappend(bk, "tnosorted", FALSE);
- BUNappend(bv, local_utoa(b->T->nosorted), FALSE);
- BUNappend(bk, "tnorevsorted", FALSE);
- BUNappend(bv, local_utoa(b->T->norevsorted), FALSE);
- BUNappend(bk, "tnodense", FALSE);
- BUNappend(bv, local_utoa(b->T->nodense), FALSE);
- BUNappend(bk, "tnokey[0]", FALSE);
- BUNappend(bv, local_utoa(b->T->nokey[0]), FALSE);
- BUNappend(bk, "tnokey[1]", FALSE);
- BUNappend(bv, local_utoa(b->T->nokey[1]), FALSE);
- BUNappend(bk, "tnonil", FALSE);
- BUNappend(bv, local_utoa(b->T->nonil), FALSE);
- BUNappend(bk, "tnil", FALSE);
- BUNappend(bv, local_utoa(b->T->nil), FALSE);
-
- BUNappend(bk, "batInserted", FALSE);
- BUNappend(bv, local_utoa(b->batInserted), FALSE);
- BUNappend(bk, "batDeleted", FALSE);
- BUNappend(bv, local_utoa(b->batDeleted), FALSE);
- BUNappend(bk, "batFirst", FALSE);
- BUNappend(bv, local_utoa(b->batFirst), FALSE);
- BUNappend(bk, "htop", FALSE);
- BUNappend(bv, local_utoa(b->H->heap.free), FALSE);
- BUNappend(bk, "ttop", FALSE);
- BUNappend(bv, local_utoa(b->T->heap.free), FALSE);
- BUNappend(bk, "batStamp", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->batStamp)), FALSE);
- BUNappend(bk, "lastUsed", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BBP_lastused(b->batCacheid))),
FALSE);
- BUNappend(bk, "curStamp", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(BBPcurstamp())), FALSE);
- BUNappend(bk, "batCopiedtodisk", FALSE);
- BUNappend(bv, local_itoa((ssize_t)(b->batCopiedtodisk)), FALSE);
- BUNappend(bk, "batDirtydesc", FALSE);
- BUNappend(bv, b->batDirtydesc ? "dirty" : "clean", FALSE);
-
- BUNappend(bk, "H->heap.dirty", FALSE);
- BUNappend(bv, b->H->heap.dirty ? "dirty" : "clean", FALSE);
- BUNappend(bk, "T->heap.dirty", FALSE);
- BUNappend(bv, b->T->heap.dirty ? "dirty" : "clean", FALSE);
- infoHeap(bk, bv, &b->H->heap, "head.");
- infoHeap(bk, bv, &b->T->heap, "tail.");
-
- BUNappend(bk, "H->vheap->dirty", FALSE);
- BUNappend(bv, (b->H->vheap && b->H->vheap->dirty) ? "dirty" : "clean",
FALSE);
- infoHeap(bk, bv, b->H->vheap, "hheap.");
-
- BUNappend(bk, "T->vheap->dirty", FALSE);
- BUNappend(bv, (b->T->vheap && b->T->vheap->dirty) ? "dirty" : "clean",
FALSE);
- infoHeap(bk, bv, b->T->vheap, "theap.");
-
- /* dump index information */
- if (b->H->hash) {
- HASHinfo(bk, bv, b->H->hash, "hhash->");
- }
- if (b->T->hash) {
- HASHinfo(bk, bv, b->T->hash, "thash->");
- }
- assert(BATcount(bk) == BATcount(bv));
- return GDK_SUCCEED;
-}
-
-/*
- * BBP Management, IO
- */
-static gdk_return
-CMDrename(bit *retval, BAT *b, const char *s)
-{
- int ret;
- int c;
- const char *t = s;
-
- for ( ; (c = *t) != 0; t++) {
- if (c != '_' && !GDKisalnum(c)) {
- GDKerror("CMDrename: identifier expected: %s\n", s);
- return GDK_FAIL;
- }
- }
-
- ret = BATname(b, s);
- *retval = FALSE;
- if (ret == 1) {
- GDKerror("CMDrename: identifier expected: %s\n", s);
- return GDK_FAIL;
- } else if (ret == BBPRENAME_ILLEGAL) {
- GDKerror("CMDrename: illegal temporary name: '%s'\n", s);
- return GDK_FAIL;
- } else if (ret == BBPRENAME_LONG) {
- GDKerror("CMDrename: name too long: '%s'\n", s);
- return GDK_FAIL;
- } else if (ret != BBPRENAME_ALREADY) {
- *retval = TRUE;
- }
- return GDK_SUCCEED;
-}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list