You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2012/02/28 16:49:12 UTC
[2/2] git commit: Pig CounterColumnFamily support. Patch by Janne
Jalkanen and brandonwilliams, reviewed by brandonwilliams for CASSANDRA-3973
Pig CounterColumnFamily support.
Patch by Janne Jalkanen and brandonwilliams, reviewed by brandonwilliams
for CASSANDRA-3973
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4a49b9dc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4a49b9dc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4a49b9dc
Branch: refs/heads/cassandra-1.1.0
Commit: 4a49b9dcc05d6f06c3354fb37a4a0199a2c283d5
Parents: 1ed6065
Author: Brandon Williams <br...@apache.org>
Authored: Tue Feb 28 09:47:26 2012 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Feb 28 09:47:26 2012 -0600
----------------------------------------------------------------------
.../cassandra/hadoop/pig/CassandraStorage.java | 19 ++++++--------
contrib/pig/test/populate-cli.txt | 18 +++++++++----
contrib/pig/test/test_storage.pig | 10 ++++++++
3 files changed, 30 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a49b9dc/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
----------------------------------------------------------------------
diff --git a/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java b/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
index a2213f7..6d1f76a 100644
--- a/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
+++ b/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
@@ -209,17 +209,11 @@ public class CassandraStorage extends LoadFunc implements StoreFuncInterface, Lo
AbstractType subcomparator;
AbstractType default_validator;
AbstractType key_validator;
- try
- {
- comparator = TypeParser.parse(cfDef.getComparator_type());
- subcomparator = TypeParser.parse(cfDef.getSubcomparator_type());
- default_validator = TypeParser.parse(cfDef.getDefault_validation_class());
- key_validator = TypeParser.parse(cfDef.getKey_validation_class());
- }
- catch (ConfigurationException e)
- {
- throw new IOException(e);
- }
+
+ comparator = parseType(cfDef.getComparator_type());
+ subcomparator = parseType(cfDef.getSubcomparator_type());
+ default_validator = parseType(cfDef.getDefault_validation_class());
+ key_validator = parseType(cfDef.getKey_validation_class());
marshallers.add(comparator);
marshallers.add(default_validator);
@@ -254,6 +248,9 @@ public class CassandraStorage extends LoadFunc implements StoreFuncInterface, Lo
{
try
{
+ // always treat counters like longs, specifically CCT.compose is not what we need
+ if (type != null && type.equals("org.apache.cassandra.db.marshal.CounterColumnType"))
+ return LongType.instance;
return TypeParser.parse(type);
}
catch (ConfigurationException e)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a49b9dc/contrib/pig/test/populate-cli.txt
----------------------------------------------------------------------
diff --git a/contrib/pig/test/populate-cli.txt b/contrib/pig/test/populate-cli.txt
index f266ce9..0164afe 100644
--- a/contrib/pig/test/populate-cli.txt
+++ b/contrib/pig/test/populate-cli.txt
@@ -1,8 +1,6 @@
-create keyspace PigTest;
+create keyspace PigTest with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options={replication_factor:1};
use PigTest;
create column family SomeApp with
-placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and
-strategy_options = {replication_factor:1} and
key_validation_class = UTF8Type and
default_validation_class = LexicalUUIDType and
comparator = UTF8Type and
@@ -17,8 +15,6 @@ column_metadata =
];
create column family CopyOfSomeApp with
-placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and
-strategy_options = {replication_factor:1} and
key_validation_class = UTF8Type and
default_validation_class = LexicalUUIDType and
comparator = UTF8Type and
@@ -79,4 +75,14 @@ create column family Bytes with
comparator = UTF8Type;
set U8['foo']['x'] = ascii('Z');
-set Bytes[ascii('foo')]['x'] = ascii('Z')
+set Bytes[ascii('foo')]['x'] = ascii('Z');
+
+create column family CC with
+ key_validation_class = UTF8Type and
+ default_validation_class=CounterColumnType
+ and comparator=UTF8Type;
+
+incr CC['chuck']['kick'];
+incr CC['chuck']['kick'];
+incr CC['chuck']['kick'];
+incr CC['chuck']['fist'];
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a49b9dc/contrib/pig/test/test_storage.pig
----------------------------------------------------------------------
diff --git a/contrib/pig/test/test_storage.pig b/contrib/pig/test/test_storage.pig
index 7422db4..c49d4b3 100644
--- a/contrib/pig/test/test_storage.pig
+++ b/contrib/pig/test/test_storage.pig
@@ -37,3 +37,13 @@ dump a
-- key should now be cast into a chararray
c = join b by (chararray)key, U8 by (chararray)key;
dump c
+
+
+--
+-- Test counter column family support
+--
+CC = load 'cassandra://PigTest/CC' using CassandraStorage();
+
+total_hits = foreach CC generate key, SUM(columns.value);
+
+dump total_hits;