Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 31D7B951C for ; Sun, 29 Jan 2012 01:37:50 +0000 (UTC) Received: (qmail 65203 invoked by uid 500); 29 Jan 2012 01:37:50 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 65180 invoked by uid 500); 29 Jan 2012 01:37:50 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 64984 invoked by uid 99); 29 Jan 2012 01:37:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Jan 2012 01:37:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.114] (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Jan 2012 01:37:47 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 04BA931A1A5; Sun, 29 Jan 2012 01:37:26 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: xedin@apache.org To: commits@cassandra.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [4/4] git commit: fix setting compaction_strategy_class using CQL Message-Id: <20120129013726.04BA931A1A5@tyr.zones.apache.org> Date: Sun, 29 Jan 2012 01:37:26 +0000 (UTC) X-Virus-Checked: Checked by ClamAV on apache.org fix setting compaction_strategy_class using CQL Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2c62adab Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2c62adab Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2c62adab Branch: refs/heads/trunk Commit: 2c62adab36a589e9ff9e9169fd2125272e067918 Parents: b10d5bd Author: Pavel Yaskevich Authored: Sat Jan 28 00:03:12 2012 +0200 Committer: Pavel Yaskevich Committed: Sun Jan 29 01:54:53 2012 +0200 ---------------------------------------------------------------------- .../cassandra/cql/CreateColumnFamilyStatement.java | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c62adab/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java index 1095a72..c0568b9 100644 --- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java +++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java @@ -37,6 +37,7 @@ import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.config.ConfigurationException; import org.apache.cassandra.db.ColumnFamilyType; +import org.apache.cassandra.db.compaction.AbstractCompactionStrategy; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.TypeParser; import org.apache.cassandra.thrift.InvalidRequestException; @@ -114,6 +115,7 @@ public class CreateColumnFamilyStatement private final Map properties = new HashMap(); private List keyValidator = new ArrayList(); private ByteBuffer keyAlias = null; + private Class compactionStrategyClass; private final Map compactionStrategyOptions = new HashMap(); private final Map compressionParameters = new HashMap(); @@ -125,6 +127,17 @@ public class CreateColumnFamilyStatement /** Perform validation of parsed params */ private void validate() throws InvalidRequestException { + String compStrategy = getPropertyString(KW_COMPACTION_STRATEGY_CLASS, CFMetaData.DEFAULT_COMPACTION_STRATEGY_CLASS); + + try + { + compactionStrategyClass = CFMetaData.createCompactionStrategy(compStrategy); + } + catch (ConfigurationException e) + { + throw new InvalidRequestException(e.getMessage()); + } + // we need to remove parent:key = value pairs from the main properties Set propsToRemove = new HashSet(); @@ -338,6 +351,7 @@ public class CreateColumnFamilyStatement .keyValidator(TypeParser.parse(comparators.get(getKeyType()))) .rowCacheProvider(FBUtilities.newCacheProvider(getPropertyString(KW_ROW_CACHE_PROVIDER, CFMetaData.DEFAULT_ROW_CACHE_PROVIDER.getClass().getName()))) .keyAlias(keyAlias) + .compactionStrategyClass(compactionStrategyClass) .compactionStrategyOptions(compactionStrategyOptions) .compressionParameters(CompressionParameters.create(compressionParameters)) .validate();