Changeset: 8df700031602 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8df700031602
Modified Files:
        monetdb5/modules/mal/batExtensions.mx
Branch: default
Log Message:

Add single to BAT conversion


diffs (46 lines):

diff --git a/monetdb5/modules/mal/batExtensions.mx 
b/monetdb5/modules/mal/batExtensions.mx
--- a/monetdb5/modules/mal/batExtensions.mx
+++ b/monetdb5/modules/mal/batExtensions.mx
@@ -87,6 +87,9 @@
 pattern bat.pack(h:any_1,t:any_2):bat[:any_1,:any_2]
 address CMDbatpack
 comment "Pack a pair of values into a BAT.";
+pattern bat.pack(v:any_1):bat[:oid,:any_1]
+address CMDbatsingleton
+comment "Create a BAT and store the value";
 
 pattern bat.setBase(b:bat[:any_1,:any_2],c:bat[:any_1,:any_2]...):void
 address CMDsetBase
@@ -131,6 +134,7 @@
 be_export str CMDbatpartition(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 be_export str CMDbatpartition2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 be_export str CMDbatpack(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+be_export str CMDbatsingleton(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 be_export str CMDsetBase(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
 @-
@@ -565,6 +569,24 @@
        BBPkeepref(*ret);
        return MAL_SUCCEED;
 }
+str
+CMDbatsingleton(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       int *ret = (int*) getArgReference(stk,pci,0);
+       BAT *b;
+       oid o = 0;
+       (void) cntxt;
+
+       b= BATnew(TYPE_oid, getArgType(mb,pci,1), BATTINY);
+       if ( b == NULL)
+               throw(MAL, "bat.pack", MAL_MALLOC_FAIL);
+       BATseqbase(b,o);
+       BUNins(b, &o, getArgReference(stk,pci,1), FALSE);
+
+       *ret = b->batCacheid;
+       BBPkeepref(*ret);
+       return MAL_SUCCEED;
+}
 
 str
 CMDsetBase(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to