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;