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

Reply via email to