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]

Reply via email to