Changeset: df888954f566 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=df888954f566
Modified Files:
monetdb5/modules/mal/extensions.c
Branch: headless
Log Message:
We need BUNhead (for var-sized COLs); COLs are zero-based (don't leak COLfirst).
diffs (48 lines):
diff --git a/monetdb5/modules/mal/extensions.c
b/monetdb5/modules/mal/extensions.c
--- a/monetdb5/modules/mal/extensions.c
+++ b/monetdb5/modules/mal/extensions.c
@@ -217,6 +217,7 @@
CHPnewIterator(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
COL *b;
+ COLiter bi;
oid *cursor;
int *bid;
ValPtr val;
@@ -237,8 +238,9 @@
CBPreleaseref(b);
return MAL_SUCCEED;
}
- *cursor = o = COLfirst(b);
- VALinit(val, COLtype(b), COLelement(b, o));
+ *cursor = o = 0;
+ bi = col_iterator(b);
+ VALinit(val, COLtype(b), BUNhead(bi, o + COLfirst(b)));
CBPreleaseref(b);
return MAL_SUCCEED;
}
@@ -247,6 +249,7 @@
CHPhasMoreElements(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
COL *b;
+ COLiter bi;
oid *cursor;
int *bid;
ValPtr val;
@@ -264,13 +267,14 @@
o = (oid)*cursor + 1;
- if (o >= COLlast(b)) {
+ if (o >= COLcount(b)) {
*cursor = oid_nil;
CBPreleaseref(b);
return MAL_SUCCEED;
}
*cursor = o;
- VALinit(val, COLtype(b), COLelement(b, o));
+ bi = col_iterator(b);
+ VALinit(val, COLtype(b), BUNhead(bi, o + COLfirst(b)));
CBPreleaseref(b);
return MAL_SUCCEED;
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list