Changeset: 7f2fb8881c05 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7f2fb8881c05
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_statement.c
sql/test/nested/Tests/jdocs.test
Branch: nested
Log Message:
return correct type when projecting a nested column
diffs (91 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -2644,11 +2644,7 @@ rel2bin_subtable(backend *be, sql_table
s->nr = ns->nr;
s->multiset = c->type.multiset;
} else if (s && s->type == st_list &&
c->type.type->composite) {
- //stmt *ns = stmt_none(be);
- //ns->type = st_alias;
s->subtype = *exp_subtype(exp);
- //ns->virt = true;
- //list_append(s->op4.lval, ns);
}
} else {
s = stmt_col(be, c, dels, dels->partition);
@@ -2736,11 +2732,7 @@ rel2bin_basetable(backend *be, sql_rel *
s->nr = ns->nr;
s->multiset = c->type.multiset;
} else if (s && s->type == st_list &&
c->type.type->composite) {
- //stmt *ns = stmt_none(be);
- //ns->type = st_alias;
s->subtype = *exp_subtype(exp);
- //ns->virt = true;
- //list_append(s->op4.lval, ns);
}
} else {
s = (c == fcol) ? col : stmt_col(be, c,
complex?dels:NULL, dels->partition);
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -2638,6 +2638,7 @@ stmt_project(backend *be, stmt *op1, stm
if (s == NULL)
return NULL;
s->nested = true;
+ s->subtype = op2->subtype;
return s;
}
InstrPtr q = stmt_project_join(be, op1, op2, false);
diff --git a/sql/test/nested/Tests/jdocs.test b/sql/test/nested/Tests/jdocs.test
--- a/sql/test/nested/Tests/jdocs.test
+++ b/sql/test/nested/Tests/jdocs.test
@@ -26,24 +26,23 @@ insert into fljdocs select cast('{"name"
statement ok
insert into fljdocs select
cast('{"name":"test_two","id":43,"actions":[{"elem":{"key":"tic","val":20}},
{"elem":{"key":"tac","val":21}}] }' as json)
-## CRASH
-#query TIT nosort jsondata
-#select jd.name, jd.id, act.elem from fljdocs, unnest(jd.actions) act
-#----
-#test_one
-#42
-#("ping",10)
-#test_one
-#42
-#("pong",11)
-#test_two
-#43
-#("tic",20)
-#test_two
-#43
-#("tac",21)
+query TIT nosort
+select jd.name, jd.id, act.elem from fljdocs, unnest(jd.actions) act
+----
+test_one
+42
+("ping", 10)
+test_one
+42
+("pong", 11)
+test_two
+43
+("tic", 20)
+test_two
+43
+("tac", 21)
-query TITI nosort jsondata
+query TITI nosort
select jd.name, jd.id, act.elem.key, act.elem.val from fljdocs,
unnest(jd.actions) act
----
test_one
@@ -74,7 +73,7 @@ insert into wljdocs select cast('{"name"
statement ok
insert into wljdocs select
cast('{"name":"test_two","id":43,"actions":{"list":[{"elem":{"key":"tic","val":20}},
{"elem":{"key":"tac","val":21}}] }}' as json)
-query TITI nosort jsondata
+query TITI nosort
select jd.name, jd.id, act.elem.key, act.elem.val from fljdocs,
unnest(jd.actions) act
----
test_one
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]