[ https://issues.apache.org/jira/browse/PHOENIX-1576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14278007#comment-14278007 ]
Samarth Jain edited comment on PHOENIX-1576 at 1/15/15 12:52 AM: ----------------------------------------------------------------- The patch does following things: 1) Refactors the properties code out of MetatdataClient to ConnectionQueryServicesImpl#addColumn() 2) Makes sure we do only one RPC call for adding columns/setting column family properties/setting table properties. The previous code used to do a separate RPC for each column family being added as well as a separate RPC for setting table properties. 3) Added a check to poll for updated table descriptor only if column families are being added/changed. 4) Tweaked the check for making an end-point call to update table metadata only if column families/columns are being added. The end point call is not made if we are only changing hbase level properties. See ConnectionQueryServicesImpl#addColumn() 5) Added checks for the case when we are adding pk columns and setting properties. See AlterTableIT#testAddingPkColAndSettingProperties for the cases covered. [~jamestaylor] - please review. Thanks! was (Author: samarthjain): The patch does following things: 1) Refactors the properties code out of MetatdataClient to ConnectionQueryServicesImpl#addColumn() 2) Makes sure we do only one RPC call for adding columns/setting column family properties/setting table properties. The previous code used to do a separate RPC for each column family being added as well as a separate RPC for setting table properties. 3) Added a check to poll for updated table descriptor only if column families are being added/changed. 4) Tweaked the check for making an end-point call to update table metadata only if column families/columns are being added. The end point call is not made if we are only changing hbase level properties. See ConnectionQueryServicesImpl#addColumn() [~jamestaylor] - please review. Thanks! > Refactor property-related code to reside in ConnectionQueryServicesImpl > ----------------------------------------------------------------------- > > Key: PHOENIX-1576 > URL: https://issues.apache.org/jira/browse/PHOENIX-1576 > Project: Phoenix > Issue Type: Bug > Reporter: James Taylor > Assignee: Samarth Jain > Attachments: PHOENIX-1576.patch > > > The code in MetaDataClient.addColumn() that deals with teasing apart Phoenix, > HColumnDescriptor, and HTableDescriptor properties should all reside in > ConnectionQueryServicesImpl, instead of being split between this and > MetaDataClient. We should build up an HTableDescriptor with all necessary > changes and issue a single modifyTable call instead of making separate RPCs > for each change. -- This message was sent by Atlassian JIRA (v6.3.4#6332)