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

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


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

(Updated 2011-06-20 21:04:45.477266)


Review request for hive and Paul Yang.


Changes
-------

- Removed the TableQueryFilterType enum. Instead, use constant names for filter 
keys to allow mixing filter types.


Summary (updated)
-------

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.

Example filter statements include: 
//translation: owner.matches(".*test.*") and lastAccessTime == 0
filter = Constants.HIVE_FILTER_FIELD_OWNER + 
    " like \".*test.*\" and " + 
    Constants.HIVE_FILTER_FIELD_LAST_ACCESS + " = 0";

//translation: owner = "test_user" and (parameters.get("retention") == "30" || 
parameters.get("retention") == 90)
filter = Constants.HIVE_FILTER_FIELD_OWNER + 
    " = \"test_user\" and (" + 
    Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"30\" or " + 
    Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"90\")"

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.


This addresses bug HIVE-2226.
    https://issues.apache.org/jira/browse/HIVE-2226


Diffs (updated)
-----

  trunk/metastore/if/hive_metastore.thrift 1136751 
  trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java 
1136751 
  
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
 1136751 
  
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java 
1136751 
  trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java 
1136751 
  trunk/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java 
1136751 
  
trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/ExpressionTree.java
 1136751 
  trunk/metastore/src/java/org/apache/hadoop/hive/metastore/parser/Filter.g 
1136751 
  
trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java
 1136751 

Diff: https://reviews.apache.org/r/910/diff


Testing
-------

Added test cases to TestHiveMetaStore


Thanks,

Sohan



> 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

        

Reply via email to