You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@impala.apache.org by "Qifan Chen (Code Review)" <ge...@cloudera.org> on 2021/08/02 18:31:32 UTC

[Impala-ASF-CR] WiP: IMPALA-9495: Support struct in select list for ORC tables

Qifan Chen has posted comments on this change. ( http://gerrit.cloudera.org:8080/17638 )

Change subject: WiP: IMPALA-9495: Support struct in select list for ORC tables
......................................................................


Patch Set 4:

(10 comments)

Looks good!

http://gerrit.cloudera.org:8080/#/c/17638/4//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/17638/4//COMMIT_MSG@44
PS4, Line 44: the 
nit. "a row in a row batch"


http://gerrit.cloudera.org:8080/#/c/17638/4//COMMIT_MSG@58
PS4, Line 58: Restrictions:
Since this patch lays the foundation work for STRUCT support (even though the title of the commit is about STRUCT in select list), I wonder if we can formally describe where  STRUCTs can appear in DDL and DML. For example

1. In CREATE TABLE DDL;
2. In LOAD statement;
3. IN SELECT statement:
     a), in SELECT list;
     b), as a virtual table in JOIN;
     c), ... ...


http://gerrit.cloudera.org:8080/#/c/17638/4//COMMIT_MSG@64
PS4, Line 64: 
nit. May add items into the test section.


http://gerrit.cloudera.org:8080/#/c/17638/4/be/src/service/query-result-set.cc
File be/src/service/query-result-set.cc:

http://gerrit.cloudera.org:8080/#/c/17638/4/be/src/service/query-result-set.cc@406
PS4, Line 406: DCHECK(col_input.columnType.types.size() > 0);
This line probably should be moved to the block for STRUCT. In the ELSE block, we have the assertion for scalar type.


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/nested-struct-in-select-list.test
File testdata/workloads/functional-query/queries/QueryTest/nested-struct-in-select-list.test:

http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/nested-struct-in-select-list.test@56
PS4, Line 56: 
would be nice to add more cases.

1. select with where clause on the id column;
2. select with where cause on the outer_struct with some SQL string function to qualify a particular field in the struct;
3. select with outer_struct in the select list in a subquery;

I also wonder if it is possible to select a particular field from a struct (as the whole thing).


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test
File testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test:

http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test@4
PS4, Line 4: select id, tiny_struct from functional_orc_def.complextypes_structs;
nit. Is it possible to say this? If so, I'd like to suggest that we add a couple test queries referencing struct members.

Depending on the type of the struct member, we could also apply SQL functions. 

select id, tiny_struct from functional_orc_def.complextypes_structs my_struct
where my_struct.b = false


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test@17
PS4, Line 17:  order by id;
nit. Can we add one with group by on tiny_struct? Is it supported?


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test@153
PS4, Line 153: and order by a member of the struct
nit. Should remove this? I did not see order by clause in the query.


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test@263
PS4, Line 263: joins
nit. Can we add other join flavors such as equi join or left join?


http://gerrit.cloudera.org:8080/#/c/17638/4/testdata/workloads/functional-query/queries/QueryTest/struct-in-select-list.test@266
PS4, Line 266: tbl,
             :     tbl.nested_struct.c.d as outer_arr, outer_arr.ITEM as inner_arr;
nit. Maybe add a comment on the join columns selected from the three tables.



-- 
To view, visit http://gerrit.cloudera.org:8080/17638
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0fbe56bdcd372b72e99c0195d87a818e7fa4bc3a
Gerrit-Change-Number: 17638
Gerrit-PatchSet: 4
Gerrit-Owner: Gabor Kaszab <ga...@cloudera.com>
Gerrit-Reviewer: Daniel Becker <da...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Qifan Chen <qc...@cloudera.com>
Gerrit-Comment-Date: Mon, 02 Aug 2021 18:31:32 +0000
Gerrit-HasComments: Yes