Github user twdsilva commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/313#discussion_r205950165
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ---
    @@ -3604,6 +3675,17 @@ public MutationState addColumn(PTable table, 
List<ColumnDef> origColumnDefs,
                 }
             } finally {
                 connection.setAutoCommit(wasAutoCommit);
    +            if (!columns.isEmpty()) {
    +                for (PColumn pColumn : columns) {
    +                    PName physicalName = table.getPhysicalName();
    +                    String physicalSchemaName =
    +                            
SchemaUtil.getSchemaNameFromFullName(physicalName.getString());
    +                    String physicalTableName =
    +                            
SchemaUtil.getTableNameFromFullName(physicalName.getString());
    +                    deleteCell(null, physicalSchemaName, physicalTableName,
    --- End diff --
    
    I changed the code to only delete the cells if we were able to successfully 
do the checkAndPut. 
    When we add a column we write a cell per column that we are creating. 
    When we drop a base table or create a view, we write a single cell with the 
rowkey of the physical table (to prevent a view being created while we are 
dropping the base table).


---

Reply via email to