> On July 22, 2013, 10:05 p.m., Ashutosh Chauhan wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java, 
> > line 353
> > <https://reviews.apache.org/r/12705/diff/1/?file=322919#file322919line353>
> >
> >     Why are we restricting this for strict mode? We should skip default 
> > partition in all cases unless explicitly requested by user. Assumption is 
> > default partition contains rows which were malformed in some ways at load 
> > times and will be excluded from all further query processing.

I am being defensive here as the change is drastic. With the current code the 
behavior change only affects strict mode. Let me know if i should do this 
generically?


- John


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/12705/#review23657
-----------------------------------------------------------


On July 17, 2013, 10:19 p.m., John Pullokkaran wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/12705/
> -----------------------------------------------------------
> 
> (Updated July 17, 2013, 10:19 p.m.)
> 
> 
> Review request for hive and Ashutosh Chauhan.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> With Dynamic partitioning, Hive would scan default partitions in some cases 
> even if query excludes it. As part of partition pruning, predicate is 
> narrowed down to those pieces that involve partition columns only. This 
> predicate is then evaluated with partition values to determine, if scan 
> should include those partitions.
> But in some cases (like when comparing "_HIVE_DEFAULT_PARTITION_" to numeric 
> data types) expression evaluation would fail and would return NULL instead of 
> true/false. In such cases the partition is added to unknown partitions which 
> is then subsequently scanned.
> 
> This fix avoids scanning default partition if all of the following is true:
> a) Hive dynamic partition mode is strict 
> (hive.exec.dynamic.partition.mode=strict).
> b) partition pruning expression failed to evaluate for a given partition.
> c) at the least one of the columns in the partition is default partition.
> 
> 
> Diffs
> -----
> 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java 
> 6a4a360 
>   ql/src/test/queries/clientpositive/dynamic_partition_skip_default.q 
> PRE-CREATION 
>   ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/12705/diff/
> 
> 
> Testing
> -------
> 
> Hive Unit Tests Passed.
> 
> 
> Thanks,
> 
> John Pullokkaran
> 
>

Reply via email to