Changeset: a53f22b09585 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a53f22b09585 Modified Files: monetdb5/modules/atoms/json_atom.c monetdb5/modules/atoms/json_atom.h Branch: default Log Message:
fix compilation error on objectrender without finishing the complete implementation diffs (91 lines): diff --git a/monetdb5/modules/atoms/json_atom.c b/monetdb5/modules/atoms/json_atom.c --- a/monetdb5/modules/atoms/json_atom.c +++ b/monetdb5/modules/atoms/json_atom.c @@ -22,7 +22,9 @@ */ #include "monetdb_config.h" #include "json_atom.h" -#include "mal_interpreter.h" +#include "mal.h" +#include <mal_instruction.h> +#include <mal_interpreter.h> // just validate the string according to www.json.org // A straightforward recursive solution @@ -740,3 +742,65 @@ wrapup:; GDKfree(result); return msg; } + +static +BAT **JSONargumentlist(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci){ + int i, error = 0, error2=0; + BUN cnt = 0; + BAT **bl; + + bl = (BAT**) GDKzalloc(sizeof(*bl) * pci->argc); + for( i = pci->retc; i<pci->argc; i++) + if (isaBatType(getArgType(mb,pci,i))){ + bl[i] = BATdescriptor(stk->stk[getArg(pci,i)].val.bval); + if ( bl[i] == 0) + error++; + error2 |= (cnt > 0 &&BATcount(bl[i]) != cnt); + cnt = BATcount(bl[i]); + } + if ( error + error2){ + GDKfree(bl); + bl = 0; + } + return bl; +} + +str +JSONrenderobject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ + BAT **bl; + char *result; + int i; + str *ret; + + (void ) cntxt; + bl = JSONargumentlist(mb,stk,pci); + if ( bl == 0) + throw(MAL,"json.objectrender","non-aligned BAT sizes"); + for( i = pci->retc; i < pci->argc; i+=2) + if ( getArgType(mb,pci,i) != TYPE_str) + throw(MAL,"json.renderobject","keys missing"); + + result = (char *) GDKmalloc(BUFSIZ); + for( i = pci->retc; i < pci->argc; i++) + if ( getArgType(mb,pci,i) == TYPE_str){ + } else { + } + ret = (str *) getArgReference(stk,pci,0); + *ret = result; + return MAL_SUCCEED; +} + +str +JSONrenderarray(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ + BAT **bl; + + (void ) cntxt; + bl = JSONargumentlist(mb,stk,pci); + if ( bl == 0) + throw(MAL,"json.arrayrender","non-aligned BAT sizes"); + (void) mb; + return MAL_SUCCEED; +} + diff --git a/monetdb5/modules/atoms/json_atom.h b/monetdb5/modules/atoms/json_atom.h --- a/monetdb5/modules/atoms/json_atom.h +++ b/monetdb5/modules/atoms/json_atom.h @@ -58,4 +58,7 @@ json_export str JSONpairs(int *key, int json_export str JSONnames(int *ret, json *j); json_export str JSONvalues(int *ret, json *j); json_export str JSONprelude(int *ret); + +json_export str JSONrenderobject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +json_export str JSONrenderarray(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); #endif /* JSON_H */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list