[
https://issues.apache.org/jira/browse/PARQUET-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17689546#comment-17689546
]
ASF GitHub Bot commented on PARQUET-2244:
-----------------------------------------
zhongyujiang commented on PR #1028:
URL: https://github.com/apache/parquet-mr/pull/1028#issuecomment-1432572977
I haven't encountered any troubles caused by this situation in practice. I
found this while looking at the code, when evaluating `notIn`, dictionary
filter returns `BLOCK_MIGHT_MATCH` when the column isn't in the file which
means all values are null(see L450-L453), but it does not consider whether
there will be a null value when the column really exists. I think it's
inconsistent so opened this fix.
> Dictionary filter may skip row-groups incorrectly when evaluating notIn
> -----------------------------------------------------------------------
>
> Key: PARQUET-2244
> URL: https://issues.apache.org/jira/browse/PARQUET-2244
> Project: Parquet
> Issue Type: Bug
> Components: parquet-mr
> Affects Versions: 1.12.2
> Reporter: Yujiang Zhong
> Assignee: Yujiang Zhong
> Priority: Major
>
> Dictionary filter may skip row-groups incorrectly when evaluating `notIn` on
> optional columns with null values. Here is an example:
> Say there is a optional column `c1` with all pages dict encoded, `c1` has and
> only has two distinct values: ['foo', null], and the predicate is `c1 not
> in ('foo', 'bar')`.
> Now dictionary filter may skip this row-group that is actually should not be
> skipped, because there are nulls in the column.
>
> This is a bug similar to #1510.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)