You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Rahul Challapalli (JIRA)" <ji...@apache.org> on 2015/10/09 18:35:26 UTC

[jira] [Updated] (DRILL-3613) Partition Pruning not taking effect when we use a round function and a cast on top of it

     [ https://issues.apache.org/jira/browse/DRILL-3613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rahul Challapalli updated DRILL-3613:
-------------------------------------
    Fix Version/s:     (was: Future)
                   1.3.0

> 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
>             Fix For: 1.3.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)