Changeset: 8c149ef87fdd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8c149ef87fdd
Modified Files:
        sql/backends/monet5/rel_tvtree.c
        sql/test/nested/Tests/array.test
Branch: nested
Log Message:

Fixes crash and modifies test


diffs (79 lines):

diff --git a/sql/backends/monet5/rel_tvtree.c b/sql/backends/monet5/rel_tvtree.c
--- a/sql/backends/monet5/rel_tvtree.c
+++ b/sql/backends/monet5/rel_tvtree.c
@@ -244,8 +244,12 @@ tv_parse_values(backend *be, tv_tree *t,
         */
        bool single_row_val = false;
        single_row_val |= col_vals->row;
-       if ((t->tvt == TV_MSET) || (t->tvt == TV_SETOF))
+       if ((t->tvt == TV_MSET) || (t->tvt == TV_SETOF)) {
+               // single value MSET/SETOF of basic type
+               single_row_val |= !((sql_exp*)vals->h->data)->f;
+               // single value MSET/SETOF of composite type
                single_row_val |= ((sql_exp*)vals->h->data)->row;
+       }
 
     if (single_row_val) {
                /* we need to create a dummy expression to single row vals
diff --git a/sql/test/nested/Tests/array.test b/sql/test/nested/Tests/array.test
--- a/sql/test/nested/Tests/array.test
+++ b/sql/test/nested/Tests/array.test
@@ -8,33 +8,47 @@ select * from flent_arr
 ----
 
 statement ok
-insert into flent_arr values ('{1, 2}')
+insert into flent_arr values ('{10, 11}')
 
 query T nosort
 select * from flent_arr
 ----
-{1,2}
+{10,11}
 
 statement ok
-insert into flent_arr values ('{1, 2}')
+insert into flent_arr values (array[20, 21])
 
 query T nosort
 select * from flent_arr
 ----
-{1,2}
-{1,2}
+{10,11}
+{20,21}
 
 statement ok
-insert into flent_arr values ('{3, 4}'), ('{5}'), ('{6, 7, 8}')
+insert into flent_arr values ('{30, 31}'), ('{40}'), ('{50, 51, 52}')
 
 query T nosort
 select * from flent_arr
 ----
-{1,2}
-{1,2}
-{3,4}
-{5}
-{6,7,8}
+{10,11}
+{20,21}
+{30,31}
+{40}
+{50,51,52}
+
+statement ok
+insert into flent_arr values (array[60]), (array[70, 71])
+
+query T nosort
+select * from flent_arr
+----
+{10,11}
+{20,21}
+{30,31}
+{40}
+{50,51,52}
+{60}
+{70,71}
 
 ## variable-length type array
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to