Changeset: 5b2eed481378 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b2eed481378
Modified Files:
clients/Tests/exports.stable.out
monetdb5/mal/mal_function.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_type.h
monetdb5/modules/kernel/bat5.c
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/mat.h
monetdb5/modules/mal/mat.mal
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tokenizer.c
monetdb5/optimizer/opt_multiplex.c
sql/backends/monet5/sql_gencode.c
testing/Mtest.py.in
Branch: embedded
Log Message:
merge
diffs (truncated from 1063 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1363,7 +1363,6 @@ str MATpack2(Client cntxt, MalBlkPtr mb,
str MATpackIncrement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackSlice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackValues(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATproject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsortReverse(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c
--- a/monetdb5/mal/mal_function.c
+++ b/monetdb5/mal/mal_function.c
@@ -288,17 +288,15 @@ static void replaceTypeVar(MalBlkPtr mb,
for(i=0;i<p->argc; i++)
if( isPolymorphic(x= getArgType(mb,p,i))) {
if( isaBatType(x)){
- int head,tail;
+ int tail;
int tx;
- head = TYPE_oid;
tail = getColumnType(x);
tx = getColumnIndex(x);
- head = TYPE_oid;
if(v && tx == v && tail == TYPE_any){
tx= 0;
tail = t;
}
- y= newBatType(head,tail);
+ y= newBatType(TYPE_oid,tail);
setAnyColumnIndex(y,tx);
setArgType(mb,p,i,y);
#ifdef DEBUG_MAL_FCN
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -689,8 +689,7 @@ parseTypeId(Client cntxt, int defaultTyp
parseError(cntxt, "':oid' expected\n");
return i;
}
- } else
- ht = TYPE_any;
+ }
if (currChar(cntxt) != ',') {
parseError(cntxt, "',' expected\n");
@@ -704,7 +703,7 @@ parseTypeId(Client cntxt, int defaultTyp
} else
tt = TYPE_any;
- i = newBatType(ht, tt);
+ i = newBatType(TYPE_oid, tt);
if (kh > 0)
setAnyHeadIndex(i, kh);
if (kt > 0)
diff --git a/monetdb5/mal/mal_type.h b/monetdb5/mal/mal_type.h
--- a/monetdb5/mal/mal_type.h
+++ b/monetdb5/mal/mal_type.h
@@ -16,7 +16,7 @@
#define TMPMARKER '_'
#define REFMARKER 'X'
-#define newBatType(H,T) (1<<16 | (((H & 0377) <<8) | (T & 0377) ))
+#define newBatType(H,T) (1<<16 | (((TYPE_oid & 0377) <<8) | (T & 0377) ))
#define isaBatType(X) ((1<<16) & (X) && (X)!= TYPE_any)
#define setAnyHeadIndex(X,I) X |= ((I & 017)<<22);
#define isAnyExpression(X) ((X) >> 17)
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);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list