Changeset: 310ccdf733c0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=310ccdf733c0
Modified Files:
        monetdb5/modules/mal/manifold.c
Branch: Oct2014
Log Message:

Partial fix to void-void manifolds
Fall back to the MAL iterator until we have
included this case properly.


diffs (33 lines):

diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c
--- a/monetdb5/modules/mal/manifold.c
+++ b/monetdb5/modules/mal/manifold.c
@@ -196,7 +196,17 @@ MANIFOLDtypecheck(Client cntxt, MalBlkPt
                getVarConstant(mb,getArg(pci,pci->retc+1)).val.sval);
 
        // Prepare the single result variable
-       tpe =getColumnType(getArgType(mb,pci,0));
+       tpe = TYPE_any;
+       for( i = pci->retc+2; i < pci->argc; i++)
+               if ( isaBatType(getArgType(mb,pci,i)) ){
+                       tpe =getColumnType(getArgType(mb,pci,i));
+                       break;
+               }
+       if( tpe == TYPE_any || tpe == TYPE_void){
+               freeMalBlk(nmb);
+               return NULL;
+       }
+       
        k= getArg(q,0);
        setVarType(nmb,k,tpe);
        setVarFixed(nmb,k);
@@ -205,6 +215,10 @@ MANIFOLDtypecheck(Client cntxt, MalBlkPt
        // extract their scalar argument type
        for ( i = pci->retc+2; i < pci->argc; i++){
                tpe = getColumnType(getArgType(mb,pci,i));
+               if( tpe == TYPE_any || tpe == TYPE_void){
+                       freeMalBlk(nmb);
+                       return NULL;
+               }
                q= pushArgument(nmb,q, k= newTmpVariable(nmb, tpe));
                setVarFixed(nmb,k);
                setVarUDFtype(nmb,k);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to