[ 
https://issues.apache.org/jira/browse/HIVE-4914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13754685#comment-13754685
 ] 

Phabricator commented on HIVE-4914:
-----------------------------------

ashutoshc has requested changes to the revision "HIVE-4914 [jira] filtering via 
partition name should be done inside metastore server (implementation)".

  Comments.

INLINE COMMENTS
  metastore/if/hive_metastore.thrift:282 Can you add a comment here defining 
this boolean?
  metastore/if/hive_metastore.thrift:510 Instead of list of parameters, can you 
define a struct which is passed in as an argument. That way in future if we 
need to add another parameter for this function, it will still be back-compat.
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:252 
Consider using MetaStoreUtils::newInstance() for this.
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:249 Can 
you add a comment here saying this class is created via reflection to avoid 
circular dependency on ql package?
  metastore/if/hive_metastore.thrift:281  Set<Partition> instead of 
list<Partition> ?
  ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java:569 Why not enhance 
existing deserializeExpressions() to allow it to throw exception? Or, atleast 
reuse the common code.
  
metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java:494
 Add description of @param FilterBuilder in javadoc here.
  
metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java:445
 Update javadoc with new param.
  
metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java:418
 Update javadoc.
  
metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java:113
 ExpressionTree is getting too large. Better to put this class and 
FilterBuilder in another file?
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1887 
With query.setRange() this is no longer required.
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1944 
Didn't get this. With this patch, Hive client wont do any work, right?
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1971 
This TODO is important to resolve. Can you follow up on this?
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1965 Is 
this just for tests? Or is it needed? Either way, can you add a comment for it.
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:5756 
This class is getting too large. May be a good idea to put some of the helper 
inner classes and methods in MetaStoreUtils class.
  
metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java:496 
This class is also growing in size. Probably, put it in a seprate file along 
with TreeVisitor.

REVISION DETAIL
  https://reviews.facebook.net/D12561

BRANCH
  HIVE-4914-no-gen

ARCANIST PROJECT
  hive

To: JIRA, ashutoshc, sershe

                
> filtering via partition name should be done inside metastore server 
> (implementation)
> ------------------------------------------------------------------------------------
>
>                 Key: HIVE-4914
>                 URL: https://issues.apache.org/jira/browse/HIVE-4914
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>         Attachments: HIVE-4914.01.patch, HIVE-4914.D12561.1.patch, 
> HIVE-4914-only-no-gen.patch, HIVE-4914-only.patch, HIVE-4914.patch, 
> HIVE-4914.patch, HIVE-4914.patch
>
>
> Currently, if the filter pushdown is impossible (which is most cases), the 
> client gets all partition names from metastore, filters them, and asks for 
> partitions by names for the filtered set.
> Metastore server code should do that instead; it should check if pushdown is 
> possible and do it if so; otherwise it should do name-based filtering.
> Saves the roundtrip with all partition names from the server to client, and 
> also removes the need to have pushdown viability checking on both sides.
> NO PRECOMMIT TESTS

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to