You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2012/03/13 15:18:19 UTC
[2/2] git commit: Fix commit for #3792
Fix commit for #3792
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/23dd8c96
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23dd8c96
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23dd8c96
Branch: refs/heads/cassandra-1.1
Commit: 23dd8c96823d29d92c181f4e3be44002e01811b6
Parents: ccb0028
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Mar 13 15:16:58 2012 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Mar 13 15:17:14 2012 +0100
----------------------------------------------------------------------
.../org/apache/cassandra/config/CFMetaData.java | 26 +++++++++++---
1 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/23dd8c96/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 8198f76..bebd9f6 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -714,7 +714,7 @@ public final class CFMetaData
{
ColumnDefinition oldDef = column_metadata.get(name);
ColumnDefinition def = cfm.column_metadata.get(name);
- oldDef.apply(def, comparator);
+ oldDef.apply(def, getColumnDefinitionComparator());
}
compactionStrategyClass = cfm.compactionStrategyClass;
@@ -902,17 +902,17 @@ public final class CFMetaData
// 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;
@@ -954,7 +954,7 @@ public final class CFMetaData
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;
}
@@ -964,7 +964,7 @@ public final class CFMetaData
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)
@@ -1113,6 +1113,20 @@ public final class CFMetaData
}
}
+ 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)
{