[
https://issues.apache.org/jira/browse/PHOENIX-4861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas D'Silva updated PHOENIX-4861:
------------------------------------
Description:
For tables that use column encoding when we add a column to a view we need to
update the encoded column qualifier counter on the base table. Currently we do
this in two rpcs:
{code}
// there should only be remote mutations if we are creating
a view that uses
// encoded column qualifiers (the remote mutations are to
update the encoded
// column qualifier counter on the parent table)
if (parentTable != null && tableType == PTableType.VIEW &&
parentTable
.getEncodingScheme() !=
QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
response =
processRemoteRegionMutations(
PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
remoteMutations,
MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
clearParentTableFromCache(clientTimeStamp,
parentTable.getSchemaName() != null
? parentTable.getSchemaName().getBytes()
: ByteUtil.EMPTY_BYTE_ARRAY,
parentTable.getName().getBytes());
if (response != null) {
done.run(response);
return;
}
}
{code}
Move this code to MetadataClient
was:
For tables that use column encoding when we add a column to a view we need to
update the encoded column qualifier counter on the base table. Currently we do
this in two rpcs:
{code}
// there should only be remote mutations if we are creating
a view that uses
// encoded column qualifiers (the remote mutations are to
update the encoded
// column qualifier counter on the parent table)
if (parentTable != null && tableType == PTableType.VIEW &&
parentTable
.getEncodingScheme() !=
QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
response =
processRemoteRegionMutations(
PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
remoteMutations,
MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
clearParentTableFromCache(clientTimeStamp,
parentTable.getSchemaName() != null
? parentTable.getSchemaName().getBytes()
: ByteUtil.EMPTY_BYTE_ARRAY,
parentTable.getName().getBytes());
if (response != null) {
done.run(response);
return;
}
}
{code}
> While adding a view column make a single RPC to update the encoded column
> qualifier counter and remove the table from the cache of the physical table
> ------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-4861
> URL: https://issues.apache.org/jira/browse/PHOENIX-4861
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Thomas D'Silva
> Priority: Major
>
> For tables that use column encoding when we add a column to a view we need to
> update the encoded column qualifier counter on the base table. Currently we
> do this in two rpcs:
> {code}
> // there should only be remote mutations if we are
> creating a view that uses
> // encoded column qualifiers (the remote mutations are to
> update the encoded
> // column qualifier counter on the parent table)
> if (parentTable != null && tableType == PTableType.VIEW
> && parentTable
> .getEncodingScheme() !=
> QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
> response =
> processRemoteRegionMutations(
>
> PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
> remoteMutations,
> MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
> clearParentTableFromCache(clientTimeStamp,
> parentTable.getSchemaName() != null
> ? parentTable.getSchemaName().getBytes()
> : ByteUtil.EMPTY_BYTE_ARRAY,
> parentTable.getName().getBytes());
> if (response != null) {
> done.run(response);
> return;
> }
> }
> {code}
> Move this code to MetadataClient
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)