From f3d23e331273fe98f6d326caa9c6926704269633 Mon Sep 17 00:00:00 2001 From: mck Date: Tue, 31 May 2011 13:39:30 +0000 Subject: [PATCH] - add CfDef.key_validation_class support see https://issues.apache.org/jira/browse/CASSANDRA-2311 requires an update to cassandra-0.8.0-rc1 --- core/pom.xml | 3 -- .../model/BasicColumnFamilyDefinition.java | 20 ++++++--- .../cassandra/service/ThriftCfDef.java | 43 ++++++++++++------- .../api/ddl/ColumnFamilyDefinition.java | 1 + pom.xml | 4 +- 5 files changed, 45 insertions(+), 26 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 112eff812..05fbaa878 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -105,17 +105,14 @@ org.apache.cassandra cassandra-all - 0.8.0-beta2 org.apache.cassandra cassandra-thrift - 0.8.0-beta2 org.apache.thrift libthrift - 0.6.1 org.yaml diff --git a/core/src/main/java/me/prettyprint/cassandra/model/BasicColumnFamilyDefinition.java b/core/src/main/java/me/prettyprint/cassandra/model/BasicColumnFamilyDefinition.java index bc7fc5f50..f4bbc6f44 100644 --- a/core/src/main/java/me/prettyprint/cassandra/model/BasicColumnFamilyDefinition.java +++ b/core/src/main/java/me/prettyprint/cassandra/model/BasicColumnFamilyDefinition.java @@ -25,6 +25,7 @@ public class BasicColumnFamilyDefinition implements ColumnFamilyDefinition { private double readRepairChance; private int gcGraceSeconds; private String defaultValidationClass; + private String keyValidationClass; private int id; private int maxCompactionThreshold; private int minCompactionThreshold; @@ -40,7 +41,7 @@ public class BasicColumnFamilyDefinition implements ColumnFamilyDefinition { public BasicColumnFamilyDefinition() { this.columnDefinitions = new ArrayList(); } - + /** * Builds a {@link BasicColumnFamilyDefinition} based off the interface */ @@ -56,8 +57,8 @@ public BasicColumnFamilyDefinition(ColumnFamilyDefinition columnFamilyDefinition keyCacheSize = columnFamilyDefinition.getKeyCacheSize(); keyCacheSavePeriodInSeconds = columnFamilyDefinition.getKeyCacheSavePeriodInSeconds(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); - columnDefinitions = columnFamilyDefinition.getColumnMetadata() != null - ? new ArrayList(columnFamilyDefinition.getColumnMetadata()) + columnDefinitions = columnFamilyDefinition.getColumnMetadata() != null + ? new ArrayList(columnFamilyDefinition.getColumnMetadata()) : new ArrayList(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds(); defaultValidationClass = columnFamilyDefinition.getDefaultValidationClass(); @@ -123,7 +124,7 @@ public void setMaxCompactionThreshold(int maxCompactionThreshold) { public void setMinCompactionThreshold(int minCompactionThreshold) { this.minCompactionThreshold = minCompactionThreshold; - } + } public void setRowCacheSavePeriodInSeconds(int rowCacheSavePeriodInSeconds) { this.rowCacheSavePeriodInSeconds = rowCacheSavePeriodInSeconds; @@ -143,12 +144,15 @@ public void setMemtableFlushAfterMins(int memtableFlushAfterMins) { public void addColumnDefinition( ColumnDefinition columnDefinition){ this.columnDefinitions.add( columnDefinition ); - } + } public void setKeyCacheSavePeriodInSeconds(int keyCacheSavePeriodInSeconds) { this.keyCacheSavePeriodInSeconds = keyCacheSavePeriodInSeconds; } - + + public void setKeyValidationClass(String keyValidationClass){ + this.keyValidationClass = keyValidationClass; + } /** * SHOULD THIS BE HERE? A COLUMN DEFINITION IS PART OF A KEYSPACE BY VIRTUE @@ -253,5 +257,9 @@ public int getKeyCacheSavePeriodInSeconds() { return keyCacheSavePeriodInSeconds; } + @Override + public String getKeyValidationClass() { + return keyValidationClass; + } } diff --git a/core/src/main/java/me/prettyprint/cassandra/service/ThriftCfDef.java b/core/src/main/java/me/prettyprint/cassandra/service/ThriftCfDef.java index 25963c649..eb6542e90 100644 --- a/core/src/main/java/me/prettyprint/cassandra/service/ThriftCfDef.java +++ b/core/src/main/java/me/prettyprint/cassandra/service/ThriftCfDef.java @@ -29,6 +29,7 @@ public class ThriftCfDef implements ColumnFamilyDefinition { private double readRepairChance; private List columnMetadata; private int gcGraceSeconds; + private String keyValidationClass; private String defaultValidationClass; private int id; private int maxCompactionThreshold; @@ -50,24 +51,25 @@ public ThriftCfDef(CfDef d) { rowCacheSavePeriodInSeconds = d.row_cache_save_period_in_seconds; keyCacheSize = d.key_cache_size; keyCacheSavePeriodInSeconds = d.key_cache_save_period_in_seconds; + keyValidationClass = d.key_validation_class; readRepairChance = d.read_repair_chance; columnMetadata = ThriftColumnDef.fromThriftList(d.column_metadata); gcGraceSeconds = d.gc_grace_seconds; defaultValidationClass = d.default_validation_class; id = d.id; - minCompactionThreshold = d.min_compaction_threshold == 0 ? + minCompactionThreshold = d.min_compaction_threshold == 0 ? CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD : d.min_compaction_threshold; maxCompactionThreshold = d.max_compaction_threshold == 0 ? CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD : d.max_compaction_threshold; - memtableOperationsInMillions = d.memtable_operations_in_millions == 0 ? + memtableOperationsInMillions = d.memtable_operations_in_millions == 0 ? CFMetaData.DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS : d.memtable_operations_in_millions; - memtableFlushAfterMins = d.memtable_flush_after_mins == 0 ? + memtableFlushAfterMins = d.memtable_flush_after_mins == 0 ? CFMetaData.DEFAULT_MEMTABLE_LIFETIME_IN_MINS : d.memtable_flush_after_mins; - memtableThroughputInMb = d.memtable_throughput_in_mb == 0 ? + memtableThroughputInMb = d.memtable_throughput_in_mb == 0 ? CFMetaData.DEFAULT_MEMTABLE_THROUGHPUT_IN_MB : d.memtable_throughput_in_mb; } - + public ThriftCfDef(ColumnFamilyDefinition columnFamilyDefinition) { keyspace = columnFamilyDefinition.getKeyspaceName(); name = columnFamilyDefinition.getName(); @@ -79,6 +81,7 @@ public ThriftCfDef(ColumnFamilyDefinition columnFamilyDefinition) { rowCacheSavePeriodInSeconds = columnFamilyDefinition.getRowCacheSavePeriodInSeconds(); keyCacheSize = columnFamilyDefinition.getKeyCacheSize(); keyCacheSavePeriodInSeconds = columnFamilyDefinition.getKeyCacheSavePeriodInSeconds(); + keyValidationClass = columnFamilyDefinition.getKeyValidationClass(); readRepairChance = columnFamilyDefinition.getReadRepairChance(); columnMetadata = columnFamilyDefinition.getColumnMetadata(); gcGraceSeconds = columnFamilyDefinition.getGcGraceSeconds(); @@ -86,13 +89,13 @@ public ThriftCfDef(ColumnFamilyDefinition columnFamilyDefinition) { id = columnFamilyDefinition.getId(); minCompactionThreshold = columnFamilyDefinition.getMinCompactionThreshold() == 0 ? CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD : columnFamilyDefinition.getMinCompactionThreshold(); - maxCompactionThreshold = columnFamilyDefinition.getMaxCompactionThreshold() == 0 ? + maxCompactionThreshold = columnFamilyDefinition.getMaxCompactionThreshold() == 0 ? CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD : columnFamilyDefinition.getMaxCompactionThreshold(); - memtableFlushAfterMins = columnFamilyDefinition.getMemtableFlushAfterMins() == 0 ? - CFMetaData.DEFAULT_MEMTABLE_LIFETIME_IN_MINS : columnFamilyDefinition.getMemtableFlushAfterMins(); - memtableThroughputInMb = columnFamilyDefinition.getMemtableThroughputInMb() == 0 ? - CFMetaData.DEFAULT_MEMTABLE_THROUGHPUT_IN_MB : columnFamilyDefinition.getMemtableThroughputInMb(); - memtableOperationsInMillions = columnFamilyDefinition.getMemtableOperationsInMillions() == 0 ? + memtableFlushAfterMins = columnFamilyDefinition.getMemtableFlushAfterMins() == 0 ? + CFMetaData.DEFAULT_MEMTABLE_LIFETIME_IN_MINS : columnFamilyDefinition.getMemtableFlushAfterMins(); + memtableThroughputInMb = columnFamilyDefinition.getMemtableThroughputInMb() == 0 ? + CFMetaData.DEFAULT_MEMTABLE_THROUGHPUT_IN_MB : columnFamilyDefinition.getMemtableThroughputInMb(); + memtableOperationsInMillions = columnFamilyDefinition.getMemtableOperationsInMillions() == 0 ? CFMetaData.DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS : columnFamilyDefinition.getMemtableOperationsInMillions(); } @@ -109,8 +112,8 @@ public ThriftCfDef(String keyspace, String columnFamilyName) { gcGraceSeconds = CFMetaData.DEFAULT_GC_GRACE_SECONDS; minCompactionThreshold = CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD; maxCompactionThreshold = CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD; - memtableFlushAfterMins = CFMetaData.DEFAULT_MEMTABLE_LIFETIME_IN_MINS; - memtableThroughputInMb = CFMetaData.DEFAULT_MEMTABLE_THROUGHPUT_IN_MB; + memtableFlushAfterMins = CFMetaData.DEFAULT_MEMTABLE_LIFETIME_IN_MINS; + memtableThroughputInMb = CFMetaData.DEFAULT_MEMTABLE_THROUGHPUT_IN_MB; memtableOperationsInMillions = CFMetaData.DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS; } @@ -222,14 +225,15 @@ public CfDef toThrift() { d.setId(id); d.setKey_cache_size(keyCacheSize); d.setKey_cache_save_period_in_seconds(keyCacheSavePeriodInSeconds); + d.setKey_validation_class(keyValidationClass); d.setMax_compaction_threshold(maxCompactionThreshold); d.setMin_compaction_threshold(minCompactionThreshold); d.setRead_repair_chance(readRepairChance); d.setRow_cache_size(rowCacheSize); d.setMemtable_operations_in_millions(memtableOperationsInMillions); d.setMemtable_throughput_in_mb(memtableThroughputInMb); - d.setMemtable_flush_after_mins(memtableFlushAfterMins); - + d.setMemtable_flush_after_mins(memtableFlushAfterMins); + if (subComparatorType != null) { d.setSubcomparator_type(subComparatorType.getClassName()); } @@ -241,6 +245,11 @@ public String getDefaultValidationClass() { return defaultValidationClass; } + @Override + public String getKeyValidationClass(){ + return keyValidationClass; + } + @Override public int getId() { return id; @@ -300,6 +309,10 @@ public void setDefaultValidationClass(String defaultValidationClass) { this.defaultValidationClass = defaultValidationClass; } + public void setKeyValidationClass(String keyValidationClass){ + this.keyValidationClass = keyValidationClass; + } + public void setId(int id) { this.id = id; } diff --git a/core/src/main/java/me/prettyprint/hector/api/ddl/ColumnFamilyDefinition.java b/core/src/main/java/me/prettyprint/hector/api/ddl/ColumnFamilyDefinition.java index 8e5bae5ab..3ec5d2ed3 100644 --- a/core/src/main/java/me/prettyprint/hector/api/ddl/ColumnFamilyDefinition.java +++ b/core/src/main/java/me/prettyprint/hector/api/ddl/ColumnFamilyDefinition.java @@ -20,6 +20,7 @@ public interface ColumnFamilyDefinition { int getRowCacheSavePeriodInSeconds(); int getKeyCacheSavePeriodInSeconds(); double getKeyCacheSize(); + String getKeyValidationClass(); double getReadRepairChance(); List getColumnMetadata(); int getGcGraceSeconds(); diff --git a/pom.xml b/pom.xml index 209d3f4d5..5ef0052ad 100644 --- a/pom.xml +++ b/pom.xml @@ -88,12 +88,12 @@ org.apache.cassandra cassandra-all - 0.8.0-beta2 + 0.8.0-rc1 org.apache.cassandra cassandra-thrift - 0.8.0-beta2 + 0.8.0-rc1 org.apache.cassandra