You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org> on 2011/07/01 00:49:30 UTC

[jira] [Commented] (HIVE-2226) Add API to retrieve table names by an arbitrary filter, e.g., by owner, retention, parameters, etc.

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

jiraposter@reviews.apache.org commented on HIVE-2226:
-----------------------------------------------------


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



trunk/metastore/if/hive_metastore.thrift
<https://reviews.apache.org/r/910/#comment2014>

    Using the form hive_filter_field_params__<parameter key> seems a little odd. Can't think of an easy way to handle this case though, so it should probably be okay.



trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
<https://reviews.apache.org/r/910/#comment2003>

    I don't think it's possible to create 2 tables with the same name. In which case, there shouldn't be a need for this check.



trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java
<https://reviews.apache.org/r/910/#comment2005>

    We should catch the case where the keyName is invalid


- Paul


On 2011-06-20 21:04:45, Sohan Jain wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/910/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-06-20 21:04:45)
bq.  
bq.  
bq.  Review request for hive and Paul Yang.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Create a function listTableNamesByFilter that returns a list of names for tables in a database that match a certain filter. The syntax of the filter is similar to the one created by HIVE-1609. You can filter the table list based on owner, last access time, or table parameter key/values. The filtering takes place at the JDO level for efficiency/speed.  To create a new kind of table filter, add a constant to thrift.if and a branch in the if statement in generateJDOFilterOverTables() in ExpressionTree.
bq.  
bq.  Example filter statements include: 
bq.  //translation: owner.matches(".*test.*") and lastAccessTime == 0
bq.  filter = Constants.HIVE_FILTER_FIELD_OWNER + 
bq.      " like \".*test.*\" and " + 
bq.      Constants.HIVE_FILTER_FIELD_LAST_ACCESS + " = 0";
bq.  
bq.  //translation: owner = "test_user" and (parameters.get("retention") == "30" || parameters.get("retention") == 90)
bq.  filter = Constants.HIVE_FILTER_FIELD_OWNER + 
bq.      " = \"test_user\" and (" + 
bq.      Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"30\" or " + 
bq.      Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"90\")"
bq.  
bq.  The filter can currently parse string or integer values, where values interpreted as strings must be in quotes.  See the comments in IMetaStoreClient for more usage details/restrictions.
bq.  
bq.  
bq.  This addresses bug HIVE-2226.
bq.      https://issues.apache.org/jira/browse/HIVE-2226
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    trunk/metastore/if/hive_metastore.thrift 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java 1136751 
bq.    trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/Filter.g 1136751 
bq.    trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java 1136751 
bq.  
bq.  Diff: https://reviews.apache.org/r/910/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  Added test cases to TestHiveMetaStore
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Sohan
bq.  
bq.



> Add API to retrieve table names by an arbitrary filter, e.g., by owner, retention, parameters, etc.
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-2226
>                 URL: https://issues.apache.org/jira/browse/HIVE-2226
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>            Reporter: Sohan Jain
>            Assignee: Sohan Jain
>         Attachments: HIVE-2226.1.patch
>
>
> Create a function called get_table_names_by_filter that returns a list of table names in a database that match a certain filter.  The filter should operate similar to the one HIVE-1609.  Initially, you should be able to prune the table list based on owner, retention, or table parameter key/values.  The filtering should take place at the JDO level for efficiency/speed.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira