Palash Chauhan created PHOENIX-7212:
---------------------------------------

             Summary: Handle inherited indexes for tenant views when validating 
LAST_DDL_TIMESTAMPS
                 Key: PHOENIX-7212
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7212
             Project: Phoenix
          Issue Type: Sub-task
            Reporter: Palash Chauhan
            Assignee: Palash Chauhan


When a tenant view is resolved and it inherits an index from its parent 
view/table, a PTable object for the inherited index is added to the list of 
index PTables in the tenant view PTable object. This PTable object has a 
modified name of the form `TenantView#Index` and has its tenantId attribute set 
to that of the tenant view. 

 

During a query/upsert, along with the table/view, we also add the indexes of 
the table/view to the request for validating LAST_DDL_TIMESTAMP. We provide the 
key of the PTables i.e. (tenantId, schemaName, tableName) to the server. Server 
looks up its cache based on this key to find out the LAST_DDL_TIMESTAMP and if 
the key is not present, it fetches the table from SYSCAT. 

Suppose we perform a query on a tenant view which has inherited an index still 
in BUILDING state. After the query finishes, server would have cached 
(tenantId,schema,table) for the actual global index. The index is then built 
and its state changes to ACTIVE. Cache invalidation happens for the key (null, 
schema, table). A subsequent query on the tenant view will successfully 
validate the inherited index and will not learn about the state change. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to