[
https://issues.apache.org/jira/browse/KYLIN-5704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
liyang closed KYLIN-5704.
-------------------------
> For ‘in’ condition query of non-time partition columns, when the data type of
> the value in 'in' condition is inconsistent with that of the non-time
> partition column, the segment pruner fails, resulting in full Segment scanning
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: KYLIN-5704
> URL: https://issues.apache.org/jira/browse/KYLIN-5704
> Project: Kylin
> Issue Type: Bug
> Affects Versions: 5.0-beta
> Reporter: Hongrong Cao
> Assignee: Guangyuan Feng
> Priority: Major
> Fix For: 5.0.0
>
>
> The query column is a non-time partition column, a common dimension column,
> and the filter condition of the common dimension column is col in (x1, x2...)
> In this case (and because the col and x1 types do not match, it is
> automatically converted to (cast col as string) in (x1,x2..), Fileprunner
> will report an error because
> org.apache.spark.sql.execution.datasource.FilePruner#convertCastFilter does
> not handle in.
> Explain that the convertCastFilter method is to remove the cast condition, so
> that the filter condition can be matched when calling
> DataSourceStrategy.translateFilter, and then the Segment can be filtered.
> However, currently convertCastFilter misses the processing of the in
> condition, so translateFilter cannot match and becomes empty, so The query
> was thrown incorrectly.
> In addition: if it is a time partition column, it does not matter if an error
> is reported here, because in the previous steps, the calcite file prunner has
> already completed the Segment Prune of the time partition column.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)