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

ASF GitHub Bot commented on DRILL-4577:
---------------------------------------

Github user hsuanyi commented on a diff in the pull request:

    https://github.com/apache/drill/pull/461#discussion_r58751518
  
    --- Diff: 
contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/schema/HiveDatabaseSchema.java
 ---
    @@ -72,4 +80,56 @@ public String getTypeName() {
         return HiveStoragePluginConfig.NAME;
       }
     
    +  @Override
    +  public void visitTables(final RecordGenerator recordGenerator, final 
String schemaPath) {
    +    final List<String> tableNames = Lists.newArrayList(getTableNames());
    +    List<org.apache.hadoop.hive.metastore.api.Table> tables;
    +    // Retries once if the first call to fetch the metadata fails
    +    synchronized(mClient) {
    +      try {
    +        tables = mClient.getTableObjectsByName(getName(), tableNames);
    --- End diff --
    
    @vkorukanti  Thanks for pointing this out. Regardless of the permission, 
getTableObjectsByName will return the requested tables. Thus, as in [1], I used 
mClient.tableExists() to check the permission.
    
    
[1]https://github.com/apache/drill/pull/461/files#diff-bb5d8a385888df1dacc85fc011acd94bR93


> Improve performance for query on INFORMATION_SCHEMA when HIVE is plugged in
> ---------------------------------------------------------------------------
>
>                 Key: DRILL-4577
>                 URL: https://issues.apache.org/jira/browse/DRILL-4577
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Storage - Hive
>            Reporter: Sean Hsuan-Yi Chu
>            Assignee: Sean Hsuan-Yi Chu
>             Fix For: 1.7.0
>
>
> A query such as 
> {code}
> select * from INFORMATION_SCHEMA.`TABLES` 
> {code}
> is converted as calls to fetch all tables from storage plugins. 
> When users have Hive, the calls to hive metadata storage would be: 
> 1) get_table
> 2) get_partitions
> However, the information regarding partitions is not used in this type of 
> queries. Beside, a more efficient way is to fetch tables is to use 
> get_multi_table call.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to