Return-Path: X-Original-To: apmail-drill-issues-archive@minotaur.apache.org Delivered-To: apmail-drill-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C2A1418D3D for ; Fri, 9 Oct 2015 16:35:26 +0000 (UTC) Received: (qmail 74429 invoked by uid 500); 9 Oct 2015 16:35:26 -0000 Delivered-To: apmail-drill-issues-archive@drill.apache.org Received: (qmail 74400 invoked by uid 500); 9 Oct 2015 16:35:26 -0000 Mailing-List: contact issues-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list issues@drill.apache.org Received: (qmail 74390 invoked by uid 99); 9 Oct 2015 16:35:26 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Oct 2015 16:35:26 +0000 Date: Fri, 9 Oct 2015 16:35:26 +0000 (UTC) From: "Rahul Challapalli (JIRA)" To: issues@drill.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (DRILL-3613) Partition Pruning not taking effect when we use a round function and a cast on top of it MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DRILL-3613?page=3Dcom.atlassia= n.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 ca= st 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=3D4d967ed > 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_hier= archical_intstring` where (dir0=3Dcast(round(1993.11) as integer) and dir1= =3D'oct') or (dir0=3D1994 and dir1=3D'may'); > +------+------+ > | text | json | > +------+------+ > | 00-00 Screen > 00-01 Project(EXPR$0=3D[$0], EXPR$1=3D[$1], EXPR$2=3D[$2], EXPR$3=3D= [$3], EXPR$4=3D[$4]) > 00-02 Project(EXPR$0=3D[$2], EXPR$1=3D[$3], EXPR$2=3D[$4], EXPR$3= =3D[$5], EXPR$4=3D[$6]) > 00-03 SelectionVectorRemover > 00-04 Filter(condition=3D[OR(AND(=3D($0, CAST(ROUND(1993.11)):= INTEGER), =3D($1, 'oct')), AND(=3D($0, 1994), =3D($1, 'may')))]) > 00-05 Project(dir0=3D[$0], dir1=3D[$2], ITEM=3D[ITEM($1, 0)]= , ITEM3=3D[ITEM($1, 1)], ITEM4=3D[ITEM($1, 4)], ITEM5=3D[ITEM($1, 10)], ITE= M6=3D[ITEM($1, 13)]) > 00-06 Scan(groupscan=3D[EasyGroupScan [selectionRoot=3Dmap= rfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intst= ring, numFiles=3D8, columns=3D[`dir0`, `dir1`, `columns`[0], `columns`[1], = `columns`[4], `columns`[10], `columns`[13]], files=3D[maprfs:/drill/testdat= a/partition_pruning/hive/text/lineitem_hierarchical_intstring/1991/oct/line= itemaj.tbl, maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hie= rarchical_intstring/1992/oct/lineitemaj.tbl, maprfs:/drill/testdata/partiti= on_pruning/hive/text/lineitem_hierarchical_intstring/1996/oct/lineitemaj.tb= l, maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical= _intstring/1994/may/lineitemae.tbl, maprfs:/drill/testdata/partition_prunin= g/hive/text/lineitem_hierarchical_intstring/1994/oct/lineitemaj.tbl, maprfs= :/drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstrin= g/1993/oct/lineitemaj.tbl, maprfs:/drill/testdata/partition_pruning/hive/te= xt/lineitem_hierarchical_intstring/1997/oct/lineitemaj.tbl, maprfs:/drill/t= estdata/partition_pruning/hive/text/lineitem_hierarchical_intstring/1995/oc= t/lineitemaj.tbl]]]) > {code} > The above plan should only scan the below 2 files ideally > {code} > /drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstri= ng/1994/may/lineitemae.tbl > /drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstri= ng/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_hier= archical_intstring` where (dir0=3Dcast(abs(-1993) as integer) and dir1=3D'o= ct') or (dir0=3D1994 and dir1=3D'may'); > +------+------+ > | text | json | > +------+------+ > | 00-00 Screen > 00-01 Project(EXPR$0=3D[$0], EXPR$1=3D[$1], EXPR$2=3D[$2], EXPR$3=3D= [$3], EXPR$4=3D[$4]) > 00-02 Project(EXPR$0=3D[ITEM($1, 0)], EXPR$1=3D[ITEM($1, 1)], EXPR= $2=3D[ITEM($1, 4)], EXPR$3=3D[ITEM($1, 10)], EXPR$4=3D[ITEM($1, 13)]) > 00-03 Scan(groupscan=3D[EasyGroupScan [selectionRoot=3Dmaprfs:/d= rill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intstring, = numFiles=3D2, columns=3D[`dir0`, `dir1`, `columns`[0], `columns`[1], `colum= ns`[4], `columns`[10], `columns`[13]], files=3D[maprfs:/drill/testdata/part= ition_pruning/hive/text/lineitem_hierarchical_intstring/1994/may/lineitemae= .tbl, maprfs:/drill/testdata/partition_pruning/hive/text/lineitem_hierarchi= cal_intstring/1993/oct/lineitemaj.tbl]]]) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)