[
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)