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 -- [email protected]
To unsubscribe send an email to [email protected]