[
https://issues.apache.org/jira/browse/DRILL-3613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rahul Challapalli updated DRILL-3613:
-------------------------------------
Attachment: hierarchical.tar
Attached the dataset
> Partition Pruning not taking effect when we use a round function and a cast
> on top of it
> ----------------------------------------------------------------------------------------
>
> Key: DRILL-3613
> URL: https://issues.apache.org/jira/browse/DRILL-3613
> Project: Apache Drill
> Issue Type: Bug
> Components: Query Planning & Optimization
> Affects Versions: 1.1.0
> Reporter: Rahul Challapalli
> Assignee: Jinfeng Ni
> Fix For: 1.2.0
>
> Attachments: hierarchical.tar
>
>
> git.commit.id.abbrev=4d967ed
> The below plan should only scan 2 files
> {code}
> explain plan for select columns[0], columns[1], columns[4], columns[10],
> columns[13] from
> `/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring`
> where (dir0=cast(round(1993.11) as integer) and dir1='oct') or (dir0=1994 and
> dir1='may');
> +------+------+
> | text | json |
> +------+------+
> | 00-00 Screen
> 00-01 Project(EXPR$0=[$0], EXPR$1=[$1], EXPR$2=[$2], EXPR$3=[$3],
> EXPR$4=[$4])
> 00-02 Project(EXPR$0=[$2], EXPR$1=[$3], EXPR$2=[$4], EXPR$3=[$5],
> EXPR$4=[$6])
> 00-03 SelectionVectorRemover
> 00-04 Filter(condition=[OR(AND(=($0,
> CAST(ROUND(1993.11)):INTEGER), =($1, 'oct')), AND(=($0, 1994), =($1,
> 'may')))])
> 00-05 Project(dir0=[$0], dir1=[$2], ITEM=[ITEM($1, 0)],
> ITEM3=[ITEM($1, 1)], ITEM4=[ITEM($1, 4)], ITEM5=[ITEM($1, 10)],
> ITEM6=[ITEM($1, 13)])
> 00-06 Scan(groupscan=[EasyGroupScan
> [selectionRoot=maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring,
> numFiles=8, columns=[`dir0`, `dir1`, `columns`[0], `columns`[1],
> `columns`[4], `columns`[10], `columns`[13]],
> files=[maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1991/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1992/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1996/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1994/may/lineitemae.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1994/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1993/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1997/oct/lineitemaj.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1995/oct/lineitemaj.tbl]]])
> {code}
> The above plan should only scan the below 2 files ideally
> {code}
> /drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1994/may/lineitemae.tbl
> /drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1993/oct/lineitemaj.tbl
> {code}
> I tested with a different function below and the plan seems to be pruning
> properly
> {code}
> explain plan for select columns[0], columns[1], columns[4], columns[10],
> columns[13] from
> `/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring`
> where (dir0=cast(abs(-1993) as integer) and dir1='oct') or (dir0=1994 and
> dir1='may');
> +------+------+
> | text | json |
> +------+------+
> | 00-00 Screen
> 00-01 Project(EXPR$0=[$0], EXPR$1=[$1], EXPR$2=[$2], EXPR$3=[$3],
> EXPR$4=[$4])
> 00-02 Project(EXPR$0=[ITEM($1, 0)], EXPR$1=[ITEM($1, 1)],
> EXPR$2=[ITEM($1, 4)], EXPR$3=[ITEM($1, 10)], EXPR$4=[ITEM($1, 13)])
> 00-03 Scan(groupscan=[EasyGroupScan
> [selectionRoot=maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring,
> numFiles=2, columns=[`dir0`, `dir1`, `columns`[0], `columns`[1],
> `columns`[4], `columns`[10], `columns`[13]],
> files=[maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1994/may/lineitemae.tbl,
>
> maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1993/oct/lineitemaj.tbl]]])
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)