> On Sept. 22, 2014, 11:15 p.m., Jinfeng Ni wrote: > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java, > > line 48 > > <https://reviews.apache.org/r/25925/diff/1/?file=701928#file701928line48> > > > > Why do you choose 5 as a magic number here? > > > > Seems to me we will not run into problem, even if we do not specify the > > max number, since the code uses ArrayList() ? > > Aman Sinha wrote: > I picked a number that seemed reasonable but probably should bump it up > to 10 to accommodate dir0-dir9. I am using the arraylist's set(index) method, > hence I create the arraylist with a predefined capacity.
Another idea would be to use a map : int -> string. The final directory filter would be made from the largest consecutive segment starting from 0 in the map. This would remove the constraint of one certain number. - Jinfeng ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/25925/#review54250 ----------------------------------------------------------- On Sept. 22, 2014, 9:36 p.m., Aman Sinha wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/25925/ > ----------------------------------------------------------- > > (Updated Sept. 22, 2014, 9:36 p.m.) > > > Review request for drill and Jinfeng Ni. > > > Bugs: DRILL-1386 > https://issues.apache.org/jira/browse/DRILL-1386 > > > Repository: drill-git > > > Description > ------- > > > Suppose we have following directory hierarchy for either Parquet or JSON > format: > orders/2012/Jan...Dec, orders/2013/Jan...Dec, orders/2014/Jan...Dec} > In this patch we attempt to push the following types of filters (More types > of filters will be added in the future): > 1. SELECT * FROM <path>/orders WHERE o_custkey = 5 AND dir0 = '2014' > AND dir1 = 'June' > 2. SELECT * FROM <path>/orders WHERE (dir0 = '2013' AND dir1 = 'June') > OR (dir0 = '2014' AND dir1 = 'June') > For (1) dirPath = <path>/orders/2014/June > For (2) there are 2 dirPaths: {<path>/orders/2013/June, > <path>/orders/2014/June} > > A new rule DrillPushPartitionFilterIntoScan has been added which makes use of > a helper class DirPathBuilder. > There are couple of pending issues that need to be resolved based on testing. > > > > Diffs > ----- > > > exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/AbstractFileGroupScan.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/FileGroupScan.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillScanRelBase.java > 0934818 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DirPathBuilder.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushPartitionFilterIntoScan.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java > dbb85b2 > > exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillScanRel.java > 5a0cc08 > > exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java > 8efcd2c > > exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java > 86e5224 > exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java > c54772f > > Diff: https://reviews.apache.org/r/25925/diff/ > > > Testing > ------- > > New manual tests in TestExampleQueries; these are not automated yet due to > the fact that directory hierarchies have to be created. > > > Thanks, > > Aman Sinha > >
