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

James Taylor commented on PHOENIX-3475:
---------------------------------------

There is no PTable that maps 1:1 with the physical view index table. The 
easiest thing to do would be to check for each table you migrate if there's a 
corresponding view index table. You could get the potential name of the table 
through this utility function: MetaDataUtil.getViewIndexName(String 
dataSchemaName, String dataTableName);

The other way through DatabaseMetaData API would be to:
- call getTables for all index types (using null for the first parameter, the 
table catalog, so that you'd find multi-tenant views as well, though I don't 
think we currently have indexes directly on multi-tenant tables)
- for each table, call getSuperTables to find the physical table name of each 
index

Feel free to file additional JIRAs on ideas for improving this.

> MetaData #getTables() API doesn't return view indexes
> -----------------------------------------------------
>
>                 Key: PHOENIX-3475
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3475
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Akshita Malhotra
>             Fix For: 4.9.0
>
>
> HBase migration tool uses DatabaseMetadata#getTables() API to retrieve the 
> tables for copying data. We have found that API doesn't return base index 
> tables ( _IDX_<base table name>)
> For testing purposes, we issue following DDL to generate the view and the 
> corresponding view index:
> -CREATE VIEW IF NOT EXISTS MIGRATIONTEST_VIEW (OLD_VALUE_VIEW varchar) AS 
> SELECT * FROM MIGRATIONTEST WHERE OLD_VALUE like 'E%'
> -CREATE INDEX IF NOT EXISTS MIGRATIONTEST_VIEW_IDX ON MIGRATIONTEST_VIEW 
> (OLD_VALUE_VIEW)
> By using HBase API, we were able to confirm that base index table 
> (_IDX_MIGRATIONTEST) is created. 
> Both jdbc  DatabaseMetadata API and P* getMetaDataCache API doesn't seem to 
> be returning view indexes. Also P*MetaData #getTableRef API return 
> "TableNotFoundException" when attempted to fetch PTable corresponding to the 
> base index table name.



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

Reply via email to