You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Daniel Becker (Jira)" <ji...@apache.org> on 2022/10/27 16:46:00 UTC

[jira] [Resolved] (IMPALA-11685) Slot memory sharing between struct and field not working if the field is also a struct

     [ https://issues.apache.org/jira/browse/IMPALA-11685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Becker resolved IMPALA-11685.
------------------------------------
    Resolution: Fixed

> Slot memory sharing between struct and field not working if the field is also a struct
> --------------------------------------------------------------------------------------
>
>                 Key: IMPALA-11685
>                 URL: https://issues.apache.org/jira/browse/IMPALA-11685
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>            Reporter: Daniel Becker
>            Assignee: Daniel Becker
>            Priority: Major
>
> IMPALA-10838 introduced that if a struct and one of its fields are both present in the select list, no extra slot is generated in the row for the struct field but the memory of the struct is reused, i.e. the row size is the same as when only the struct is queried. It works when the struct field is a primitive type:
> {code:java}
> explain select id, outer_struct from functional_orc_def.complextypes_nested_structs;
> row-size=64B{code}
> {code:java}
> explain select id, outer_struct, outer_struct.str from functional_orc_def.complextypes_nested_structs;
> row-size=64B{code}
> However, it does not if the child is itself a struct:
> {code:java}
> explain select id, outer_struct, outer_struct.inner_struct3 from functional_orc_def.complextypes_nested_structs;
> row-size=80B{code}
> This is because struct slot descriptors are registered before others so that it is easier to reuse the slot memory of the struct fields, but struct slot descriptors among themselves are sorted in the wrong order (see [https://github.com/apache/impala/blob/c12ac6c27b2df1eae693b44c157d65499f491d21/fe/src/main/java/org/apache/impala/analysis/SelectStmt.java#L340).]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)