[ 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