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

Reply via email to