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



contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseFilterBuilder.java
<https://reviews.apache.org/r/20806/#comment75236>

    Looks like most of visit... methods have the same behavior. 
    
    If you extend HBaseFilterBuilder from AbstractExprVisitor, then you only 
need override visitUnknow(). In AbstractExprVisitor, by default, all the 
visit... methods will call visitUnknow().
    
    This would simply the code of HBaseFilterBuilder.
    



contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseFilterBuilder.java
<https://reviews.apache.org/r/20806/#comment75237>

    The code assumes the predicate will be in the form of :
    row_key = 'value'.
    
    What about 'value' = row_key? It would be better to transform these two 
forms of predicates into "standard" one first, then convert into Hbase filter.
    



contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseFilterBuilder.java
<https://reviews.apache.org/r/20806/#comment75238>

    It could throw IOBE to call get(0) or get(1), without checking the function 
call's argument number, since the function call could have 0, or 1 arguments. 
    


- Jinfeng Ni


On April 28, 2014, 7:43 p.m., Aditya Kishore wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20806/
> -----------------------------------------------------------
> 
> (Updated April 28, 2014, 7:43 p.m.)
> 
> 
> Review request for drill, Jinfeng Ni, Steven Phillips, and Timothy Chen.
> 
> 
> Bugs: DRILL-571
>     https://issues.apache.org/jira/browse/DRILL-571
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> This patch adds an Optimizer rule to HBase storage plugin which would 
> transform an HBase scan followed by a logical (==, !=, <, <=, >, >=) filter 
> on the row key into an HBase scan with filter thus minimizing the data 
> transfer and elimination one operation altogether.
> 
> 
> Diffs
> -----
> 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/DrillHBaseConstants.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseFilterBuilder.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java
>  b8b6af4 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBasePushFilterIntoScan.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
>  8e1e0ac 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanBatchCreator.java
>  157d84a 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseScanSpec.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
>  991685c 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePlugin.java
>  a82c6c3 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseStoragePluginConfig.java
>  a5dfc35 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java
>  81a8af5 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseUtils.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HTableReadEntry.java
>  e18b28d 
>   
> contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseRecordReaderTest.java
>  8a476c3 
>   
> contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseTestsSuite.java
>  df6a98e 
>   
> contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseFilterPushDown.java
>  PRE-CREATION 
>   
> contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestTableGenerator.java
>  2207f1d 
>   
> contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical.json
>  ae42d6b 
>   
> contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_column_select.json
>  7940c65 
>   
> contrib/storage-hbase/src/test/resources/hbase/hbase_scan_screen_physical_family_select.json
>  2dcc81c 
>   contrib/storage-hbase/src/test/resources/storage-plugins.json PRE-CREATION 
>   distribution/src/resources/storage-plugins.json 6f2c015 
> 
> Diff: https://reviews.apache.org/r/20806/diff/
> 
> 
> Testing
> -------
> 
> Added a new test case TestHBaseFilterPushDown which is currently disabled 
> since the Zookeeper port used by MiniHBase cluster is random and there was no 
> clean way to pass this to the HBase storage plugin from SQL.
> 
> To test it, start a local HBase cluster (./bin/start-hbase.sh) and un-comment 
> the Junit's @Ignore annotation.
> 
> 
> Thanks,
> 
> Aditya Kishore
> 
>

Reply via email to