Skip to content

Commit

Permalink
Merge branch 'cassandra-1.1.0' into cassandra-1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Sylvain Lebresne committed Mar 13, 2012
2 parents 073038c + 23dd8c9 commit 23c458a
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions src/java/org/apache/cassandra/config/CFMetaData.java
Expand Up @@ -714,7 +714,7 @@ else if (!cfm.subcolumnComparator.isCompatibleWith(subcolumnComparator))
{
ColumnDefinition oldDef = column_metadata.get(name);
ColumnDefinition def = cfm.column_metadata.get(name);
oldDef.apply(def, comparator);
oldDef.apply(def, getColumnDefinitionComparator());
}

compactionStrategyClass = cfm.compactionStrategyClass;
Expand Down Expand Up @@ -902,17 +902,17 @@ public RowMutation diff(CFMetaData newState, long modificationTimestamp) throws

// columns that are no longer needed
for (ColumnDefinition cd : columnDiff.entriesOnlyOnLeft().values())
cd.deleteFromSchema(rm, cfName, comparator, modificationTimestamp);
cd.deleteFromSchema(rm, cfName, getColumnDefinitionComparator(), modificationTimestamp);

// newly added columns
for (ColumnDefinition cd : columnDiff.entriesOnlyOnRight().values())
cd.toSchema(rm, cfName, comparator, modificationTimestamp);
cd.toSchema(rm, cfName, getColumnDefinitionComparator(), modificationTimestamp);

// old columns with updated attributes
for (ByteBuffer name : columnDiff.entriesDiffering().keySet())
{
ColumnDefinition cd = newState.getColumnDefinition(name);
cd.toSchema(rm, cfName, comparator, modificationTimestamp);
cd.toSchema(rm, cfName, getColumnDefinitionComparator(), modificationTimestamp);
}

return rm;
Expand Down Expand Up @@ -954,7 +954,7 @@ public RowMutation dropFromSchema(long timestamp)
cf.addColumn(DeletedColumn.create(ldt, timestamp, cfName, "compaction_strategy_options"));

for (ColumnDefinition cd : column_metadata.values())
cd.deleteFromSchema(rm, cfName, comparator, timestamp);
cd.deleteFromSchema(rm, cfName, getColumnDefinitionComparator(), timestamp);

return rm;
}
Expand All @@ -964,7 +964,7 @@ public void toSchema(RowMutation rm, long timestamp)
toSchemaNoColumns(rm, timestamp);

for (ColumnDefinition cd : column_metadata.values())
cd.toSchema(rm, cfName, comparator, timestamp);
cd.toSchema(rm, cfName, getColumnDefinitionComparator(), timestamp);
}

private void toSchemaNoColumns(RowMutation rm, long timestamp)
Expand Down Expand Up @@ -1113,6 +1113,20 @@ public static AbstractType<?> getColumnDefinitionComparator(CfDef cfDef) throws
}
}

public AbstractType<?> getColumnDefinitionComparator()
{
AbstractType<?> cfComparator = cfType == ColumnFamilyType.Super ? subcolumnComparator : comparator;
if (cfComparator instanceof CompositeType)
{
List<AbstractType<?>> types = ((CompositeType)cfComparator).types;
return types.get(types.size() - 1);
}
else
{
return cfComparator;
}
}

// Package protected for use by tests
static CFMetaData addColumnDefinitionSchema(CFMetaData cfDef, Row serializedColumnDefinitions)
{
Expand Down

0 comments on commit 23c458a

Please sign in to comment.