Changeset: ed3c4f6fcc14 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ed3c4f6fcc14
Modified Files:
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/json.h
        monetdb5/modules/atoms/json.mal
        sql/scripts/40_json.sql
Branch: default
Log Message:

Intermediate step to enrich JSON processing


diffs (86 lines):

diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -824,7 +824,7 @@ JSONparse(char *j, int silent)
        skipblancs(j);
        if( *j ){
                if( !silent)
-                       jt->error = createException(MAL, "json.parser", "Syntax 
error");
+                       jt->error = createException(MAL, "json.parser", "Syntax 
error: json parse failed");
        }
        return jt;
 }
@@ -1578,3 +1578,23 @@ JSONfold(Client cntxt, MalBlkPtr mb, Mal
        return JSONfoldKeyValue(ret, id, key, val);
 }
 
+str
+JSONtextString(str *ret, int *bid)
+{
+       (void) ret;
+       (void) bid;
+       throw(MAL,"json.text","tobeimplemented");
+}
+
+
+str
+JSONtextGrouped(int *ret, int *bid, int *gid, int *ext, bit *flg)
+{
+       (void) ret;
+       (void) bid;
+       (void) gid;
+       (void) ext;
+       (void) flg;
+       throw(MAL,"json.text","tobeimplemented");
+}
+
diff --git a/monetdb5/modules/atoms/json.h b/monetdb5/modules/atoms/json.h
--- a/monetdb5/modules/atoms/json.h
+++ b/monetdb5/modules/atoms/json.h
@@ -94,6 +94,8 @@ json_export str JSONvalueTable(int *ret,
 json_export str JSONkeyArray(json *ret, json *arg);
 json_export str JSONvalueArray(json *ret, json *arg);
 
+json_export str JSONtextString(str *ret, int *bid);
+json_export str JSONtextGrouped(int *ret, int *bid, int *gid, int *ext, bit 
*flg);
 json_export str JSONdump(int *ret, json *val);
 json_export str JSONprelude(int *ret);
 
diff --git a/monetdb5/modules/atoms/json.mal b/monetdb5/modules/atoms/json.mal
--- a/monetdb5/modules/atoms/json.mal
+++ b/monetdb5/modules/atoms/json.mal
@@ -147,6 +147,14 @@ command values(val:json):bat[:oid,:json]
 address JSONvalueTable
 comment "Expands the outermost JSON values.";
 
+command output(b:bat[:oid,:any_1]):str
+address JSONtextString
+comment "Pack the values into a single json structure";
+
+command suboutput(b:bat[:oid,:any_1], gid:bat[:oid,:oid], ext:bat[:oid,:wrd], 
flg:bit):bat[:oid,:str]
+address JSONtextGrouped
+comment "Pack the values into a json structure";
+
 command prelude()
 address JSONprelude;
 
diff --git a/sql/scripts/40_json.sql b/sql/scripts/40_json.sql
--- a/sql/scripts/40_json.sql
+++ b/sql/scripts/40_json.sql
@@ -75,9 +75,16 @@ returns  json external name json.valuear
 
 create function json.text(js json)
 returns string external name json.text;
+create function json.text(js string)
+returns string external name json.text;
+create function json.text(js int)
+returns string external name json.text;
 
 -- The remainder awaits the implementation 
 
+create aggregate json.output(js json)
+returns string external name json.output;
+
 -- create function json.object(*) returns json external name json.objectrender;
 
 -- create function json.array(*) returns json external name json.arrayrender;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to