You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Hongrong Cao (Jira)" <ji...@apache.org> on 2023/11/15 07:15:00 UTC
[jira] [Assigned] (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
[ https://issues.apache.org/jira/browse/KYLIN-5704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hongrong Cao reassigned KYLIN-5704:
-----------------------------------
Assignee: Guangyuan Feng
> 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-alpha
> Reporter: Hongrong Cao
> Assignee: Guangyuan Feng
> Priority: Major
> Fix For: 5.0-beta
>
>
> 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)