Changeset: 3cd99c79d570 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3cd99c79d570
Modified Files:
        sql/backends/monet5/vaults/json/json.c
Branch: newjson
Log Message:

wip


diffs (82 lines):

diff --git a/sql/backends/monet5/vaults/json/json.c 
b/sql/backends/monet5/vaults/json/json.c
--- a/sql/backends/monet5/vaults/json/json.c
+++ b/sql/backends/monet5/vaults/json/json.c
@@ -93,9 +93,8 @@ json_relation(mvc *sql, sql_subfunc *f, 
 {
        (void) sql;
        (void) f;
-       (void) filename;
        (void) res_exps;
-       (void) tname;
+       f->tname = tname;
        allocator *sa = sa_create(NULL);
        JSONFileHandle *jfh = json_open(filename, sa);
        const char* json_str = NULL;
@@ -104,7 +103,10 @@ json_relation(mvc *sql, sql_subfunc *f, 
                json_close(jfh);
        }
        JSON *jt = JSONparse(json_str);
-       (void) jt;
+       if (jt) {
+
+       }
+       JSONfree(jt);
        sa_destroy(sa);
        return MAL_SUCCEED;
 }
@@ -113,11 +115,19 @@ json_relation(mvc *sql, sql_subfunc *f, 
 static void *
 json_load(void *BE, sql_subfunc *f, char *filename, sql_exp *topn)
 {
-       (void) BE;
        (void) f;
-       (void) filename;
        (void) topn;
-       return NULL;
+       backend *be = BE;
+       stmt *s = stmt_none(be);
+       InstrPtr q = newStmt(be->mb, "json", "read_json");
+       q = pushStr(be->mb, q, filename);
+       pushInstruction(be->mb, q);
+       s->nr = getDestVar(q);
+       //s->nrcols = 1;
+       s->q = q;
+       //s->op4.typeval = *st;
+       //s = stmt_alias(be, s, i+1, "bla", column_name);
+       return s;
 }
 
 static str
@@ -137,11 +147,32 @@ JSONepilogue(void *ret)
        return MAL_SUCCEED;
 }
 
+static str
+JSONread_json(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       (void) cntxt; (void) mb;
+       char *msg = MAL_SUCCEED;
+       char *fname = *(str*)getArgReference(stk, pci, pci->retc);
+       allocator *sa = sa_create(NULL);
+       JSONFileHandle *jfh = json_open(fname, sa);
+       const char* json_str = NULL;
+       if (jfh) {
+               json_str = read_json_file(jfh);
+               json_close(jfh);
+       }
+       JSON *jt = JSONparse(json_str);
+       // TODO do something
+       JSONfree(jt);
+       sa_destroy(sa);
+       return msg;
+}
+
 #include "mel.h"
 
 static mel_func json_init_funcs[] = {
        pattern("json", "prelude", JSONprelude, false, "", noargs),
        command("json", "epilogue", JSONepilogue, false, "", noargs),
+       pattern("json", "read_json", JSONread_json, false, "Reads json file 
into table", args(1,2, batvarargany("t",0), arg("filename", str))),
 { .imp=NULL }
 };
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to