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