[ 
https://issues.apache.org/jira/browse/IMPALA-12753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17987872#comment-17987872
 ] 

ASF subversion and git services commented on IMPALA-12753:
----------------------------------------------------------

Commit 191aec5298e6f5e2ca352f19b9abb3b111232554 in impala's branch 
refs/heads/master from Daniel Becker
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=191aec529 ]

IMPALA-14185: Error unnesting nested array from Iceberg with DELETE files

When trying to doubly unnest a 2D array from an Iceberg table that has
delete files but not for every data file, we run into an error:

  Filtering an unnested collection that comes from a UNION [ALL] is not
  supported yet.

This is because there is a UNION node because of the Iceberg delete
files, and there is an added "not-empty" conjunct on the collections.

IMPALA-12753 describes a bug where a conjunct on an unnested collection
coming from a UNION ALL is only applied to the first UNION operand. To
avoid incorrectness, we disabled this case in the commit for
IMPALA-12695, but its unintended consequence is that it leads to this
error with Iceberg tables.

However, in this case with Iceberg deletes, the bug described in
IMPALA-12753 is not present because both sides of the UNION have the
same tuple id, so conjuncts are naturally applied to both sides.

This commit relaxes the check, which now does not fire if all UNION
operands have the same tuple ids.

Testing:
 - existing tests related to IMPALA-12753 pass
 - added a regression test with an Iceberg table with DELETE files

Change-Id: Ifbc6f580586d4b337f33a2f32052aa07f6fca828
Reviewed-on: http://gerrit.cloudera.org:8080/23107
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> Predicate missing on unnested collection from UNION
> ---------------------------------------------------
>
>                 Key: IMPALA-12753
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12753
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend, Frontend
>            Reporter: Daniel Becker
>            Priority: Major
>
> When a collection value comes from a UNNION [ALL], and is later unnested, and 
> there is a predicate on the unnested values, the predicate is only applied to 
> one side of the union.
> To reproduce, create the table in Hive and add a row:
> {code:java}
> create table tmp (arr ARRAY<int>) stored as parquet;
> insert into tmp values (array(1, 2, 3, 4, 5));{code}
> Then from Impala:
> {code:java}
> with v as (select arr from tmp
>   union all select arr from tmp)
> select item from v, v.arr am where item=1;
> +------+
> | item |
> +------+
> | 1    |
> | 1    |
> | 2    |
> | 3    |
> | 4    |
> | 5    |
> +------+{code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to