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