Changeset: 59b5ffc11ddf for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=59b5ffc11ddf
Modified Files:
monetdb5/modules/mal/mal_mapi.c
Branch: default
Log Message:
Make remote rpc-bat headless
diffs (64 lines):
diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c
--- a/monetdb5/modules/mal/mal_mapi.c
+++ b/monetdb5/modules/mal/mal_mapi.c
@@ -1581,54 +1581,31 @@ SERVERmapi_rpc_bat(Client cntxt, MalBlkP
bat *ret;
int *key;
str *qry,err= MAL_SUCCEED;
- int i;
Mapi mid;
MapiHdl hdl;
- char *fld1, *fld2;
+ char *fld2;
BAT *b;
- ValRecord hval,tval;
- int ht,tt;
+ ValRecord tval;
+ int i=0, tt;
(void) cntxt;
ret= getArgReference_bat(stk,pci,0);
key= getArgReference_int(stk,pci,pci->retc);
qry= getArgReference_str(stk,pci,pci->retc+1);
accessTest(*key, "rpc");
- ht= getHeadType(getVarType(mb,getArg(pci,0)));
tt= getColumnType(getVarType(mb,getArg(pci,0)));
hdl= mapi_query(mid, *qry);
catchErrors("mapi.rpc");
- assert(ht == TYPE_void || ht== TYPE_oid);
b= BATnew(TYPE_void,tt,256, TRANSIENT);
if ( b == NULL)
throw(MAL,"mapi.rpc",MAL_MALLOC_FAIL);
BATseqbase(b,0);
- i= 0;
- if ( mapi_fetch_row(hdl)){
- int oht = ht, ott = tt;
-
- fld1= mapi_fetch_field(hdl,0);
- fld2= mapi_fetch_field(hdl,1);
- if (fld1 && ht == TYPE_void)
- ht = TYPE_oid;
- if (fld2 && tt == TYPE_void)
- tt = TYPE_oid;
- SERVERfieldAnalysis(fld1, ht, &hval);
+ while( mapi_fetch_row(hdl)){
+ fld2= mapi_fetch_field(hdl,0);
SERVERfieldAnalysis(fld2, tt, &tval);
- if (oht != ht)
- BATseqbase(b, hval.val.oval);
- if (ott != tt)
- BATseqbase(BATmirror(b), tval.val.oval);
- BUNins(b,VALptr(&hval),VALptr(&tval), FALSE);
- }
- while( mapi_fetch_row(hdl)){
- fld1= mapi_fetch_field(hdl,0);
- fld2= mapi_fetch_field(hdl,1);
- SERVERfieldAnalysis(fld1, ht, &hval);
- SERVERfieldAnalysis(fld2, tt, &tval);
- BUNins(b,VALptr(&hval),VALptr(&tval), FALSE);
+ BUNappend(b,VALptr(&tval), FALSE);
}
if (!(b->batDirty&2)) BATsetaccess(b, BAT_READ);
*ret = b->batCacheid;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list