[
https://issues.apache.org/jira/browse/PHOENIX-4634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16390387#comment-16390387
]
James Taylor edited comment on PHOENIX-4634 at 3/7/18 10:49 PM:
----------------------------------------------------------------
Thanks for the patch, [~tdsilva]. Do you think it'd be more clear (and work) if
instead of recursing back into updateCache that you just translated the
{{schemaName}} and {{tableName}} like you're doing and then just continue with
the method?
{code}
// Translate index on view name into schema and table name that exists in
system catalog
if (tableName.contains(QueryConstants.CHILD_VIEW_INDEX_NAME_SEPARATOR)) {
String viewName = SchemaUtil.getTableNameFromFullName(tableName,
QueryConstants.CHILD_VIEW_INDEX_NAME_SEPARATOR);
schemaName = SchemaUtil.getSchemaNameFromFullName(viewName);
tableName = SchemaUtil.getTableNameFromFullName(viewName);
}
{code}
Also, minor nit, but it looks like you've left some commented out code in.
was (Author: jamestaylor):
Thanks for the patch, [~tdsilva]. Do you think it'd be more clear (and work) if
instead of recursing back into updateCache that you just translated the
{{schemaName}} and {{tableName}} like you're doing and then just continue with
the method?
{code}
// Translate index on view name into schema and table name that exists in
system catalog
if (tableName.contains(QueryConstants.CHILD_VIEW_INDEX_NAME_SEPARATOR)) {
String viewName = SchemaUtil.getTableNameFromFullName(tableName,
QueryConstants.CHILD_VIEW_INDEX_NAME_SEPARATOR);
schemaName = SchemaUtil.getSchemaNameFromFullName(viewName);
tableName = SchemaUtil.getTableNameFromFullName(viewName);
}
{code}
> Looking up a parent index table of a tenant child view fails in
> BaseColumnResolver createTableRef()
> ---------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-4634
> URL: https://issues.apache.org/jira/browse/PHOENIX-4634
> Project: Phoenix
> Issue Type: Bug
> Reporter: Thomas D'Silva
> Assignee: Thomas D'Silva
> Priority: Major
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4634-4.x-HBase-0.98.patch, PHOENIX-4634-v2.patch
>
>
> If we are looking up a parent table index of a child view , we need to
> resolve the view which will load the parent table indexes (instead of trying
> to resolve the parent table index directly).
>
> {code:java}
> org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table
> undefined. tableName=Schema.Schema.Index#Schma.View
> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:577)
> at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:391)
> at
> org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:228)
> at
> org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:206)
> at org.apache.phoenix.optimize.QueryOptimizer.addPlan(QueryOptimizer.java:226)
> at
> org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlans(QueryOptimizer.java:146)
> at
> org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlans(QueryOptimizer.java:103)
> at org.apache.phoenix.compile.DeleteCompiler.compile(DeleteCompiler.java:501)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableDeleteStatement.compilePlan(PhoenixStatement.java:770)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableDeleteStatement.compilePlan(PhoenixStatement.java:758)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:386)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:376)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)