phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From JamesRTaylor <...@git.apache.org>
Subject [GitHub] phoenix pull request #303: PHOENIX-3534 Support multi region SYSTEM.CATALOG ...
Date Wed, 30 May 2018 22:14:45 GMT
Github user JamesRTaylor commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/303#discussion_r191939788
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
---
    @@ -1457,28 +1761,69 @@ private static void getSchemaTableNames(Mutation row, byte[][]
schemaTableNames)
                 schemaTableNames[2] = tName;
             }
         }
    -    
    +
         @Override
         public void createTable(RpcController controller, CreateTableRequest request,
                 RpcCallback<MetaDataResponse> done) {
             MetaDataResponse.Builder builder = MetaDataResponse.newBuilder();
             byte[][] rowKeyMetaData = new byte[3][];
             byte[] schemaName = null;
             byte[] tableName = null;
    +        String fullTableName = SchemaUtil.getTableName(schemaName, tableName);
             try {
                 int clientVersion = request.getClientVersion();
                 List<Mutation> tableMetadata = ProtobufUtil.getMutations(request);
                 MetaDataUtil.getTenantIdAndSchemaAndTableName(tableMetadata, rowKeyMetaData);
                 byte[] tenantIdBytes = rowKeyMetaData[PhoenixDatabaseMetaData.TENANT_ID_INDEX];
                 schemaName = rowKeyMetaData[PhoenixDatabaseMetaData.SCHEMA_NAME_INDEX];
                 tableName = rowKeyMetaData[PhoenixDatabaseMetaData.TABLE_NAME_INDEX];
    +            // TODO before creating a table we need to see if the table was previously
created and then dropped
    +            // and clean up any parent->child links or child views
                 boolean isNamespaceMapped = MetaDataUtil.isNameSpaceMapped(tableMetadata,
GenericKeyValueBuilder.INSTANCE,
                         new ImmutableBytesWritable());
                 final IndexType indexType = MetaDataUtil.getIndexType(tableMetadata, GenericKeyValueBuilder.INSTANCE,
                         new ImmutableBytesWritable());
    +            byte[] parentTenantId = null;
                 byte[] parentSchemaName = null;
                 byte[] parentTableName = null;
                 PTableType tableType = MetaDataUtil.getTableType(tableMetadata, GenericKeyValueBuilder.INSTANCE,
new ImmutableBytesWritable());
    +            ViewType viewType = MetaDataUtil.getViewType(tableMetadata, GenericKeyValueBuilder.INSTANCE,
new ImmutableBytesWritable());
    +
    +            // Here we are passed the parent's columns to add to a view, PHOENIX-3534
allows for a splittable
    +            // System.Catalog thus we only store the columns that are new to the view,
not the parents columns,
    +            // thus here we remove everything that is ORDINAL.POSITION <= baseColumnCount
and update the
    +            // ORDINAL.POSITIONS to be shifted accordingly.
    --- End diff --
    
    Important to file and reference a JIRA here to remove the dedup code once clients have
been upgraded to the release in which we no longer send the duplicate information. Can we
stop sending the duplicate info in the same release that SYSTEM.CATALOG becomes splittable?
Seems like yes.


---

Mime
View raw message