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/05/01 19:06:57 UTC

[4/7] git commit: Pig: support for DateType. Patch by brandonwilliams, reviewed by Rick Branson for CASSANDRA-4204

Pig: support for DateType.
Patch by brandonwilliams, reviewed by Rick Branson for CASSANDRA-4204


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6ba06338
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6ba06338
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6ba06338

Branch: refs/heads/cassandra-1.1
Commit: 6ba063387f3088e4e21aab20509c6d9237809ce9
Parents: a725f80
Author: Brandon Williams <br...@apache.org>
Authored: Tue May 1 12:03:36 2012 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue May 1 12:03:36 2012 -0500

----------------------------------------------------------------------
 .../cassandra/hadoop/pig/CassandraStorage.java     |    4 +++-
 contrib/pig/test/populate-cli.txt                  |    6 ++++++
 2 files changed, 9 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba06338/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 9c2dded..329155c 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
@@ -217,6 +217,8 @@ public class CassandraStorage extends LoadFunc implements StoreFuncInterface, Lo
            pair.set(position, new DataByteArray(ByteBufferUtil.getArray((ByteBuffer) value)));
        else if (value instanceof UUID)
            pair.set(position, new DataByteArray(UUIDGen.decompose((java.util.UUID) value)));
+       else if (value instanceof Date)
+           pair.set(position, new DataByteArray(ByteBufferUtil.getArray(DateType.instance.decompose((Date) value))));
        else
            pair.set(position, value);
     }
@@ -463,7 +465,7 @@ public class CassandraStorage extends LoadFunc implements StoreFuncInterface, Lo
 
     private byte getPigType(AbstractType type)
     {
-        if (type instanceof LongType)
+        if (type instanceof LongType || type instanceof DateType) // DateType is bad and it should feel bad
             return DataType.LONG;
         else if (type instanceof IntegerType)
             return DataType.INTEGER;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba06338/contrib/pig/test/populate-cli.txt
----------------------------------------------------------------------
diff --git a/contrib/pig/test/populate-cli.txt b/contrib/pig/test/populate-cli.txt
index c8124dd..7ec6cd6 100644
--- a/contrib/pig/test/populate-cli.txt
+++ b/contrib/pig/test/populate-cli.txt
@@ -12,6 +12,7 @@ column_metadata =
     {column_name: score, validation_class: LongType},
     {column_name: percent, validation_class: FloatType},
     {column_name: atomic_weight, validation_class: DoubleType},
+    {column_name: created, validation_class: DateType},
 ];
 
 create column family CopyOfSomeApp with
@@ -26,6 +27,7 @@ column_metadata =
     {column_name: score, validation_class: LongType},
     {column_name: percent, validation_class: FloatType},
     {column_name: atomic_weight, validation_class: DoubleType},
+    {column_name: created, validation_class: DateType},
 ];
 
 set SomeApp['foo']['name'] = 'User Foo';
@@ -34,6 +36,7 @@ set SomeApp['foo']['rating'] = 8;
 set SomeApp['foo']['score'] = 125000;
 set SomeApp['foo']['percent'] = '85.0';
 set SomeApp['foo']['atomic_weight'] = '2.7182818284590451';
+set SomeApp['foo']['created'] = 1335890877;
 
 set SomeApp['bar']['name'] = 'User Bar';
 set SomeApp['bar']['vote_type'] = 'like';
@@ -41,6 +44,7 @@ set SomeApp['bar']['rating'] = 9;
 set SomeApp['bar']['score'] = 15000;
 set SomeApp['bar']['percent'] = '35.0';
 set SomeApp['bar']['atomic_weight'] = '3.1415926535897931';
+set SomeApp['bar']['created'] = 1335890877;
 
 set SomeApp['baz']['name'] = 'User Baz';
 set SomeApp['baz']['vote_type'] = 'dislike';
@@ -48,6 +52,7 @@ set SomeApp['baz']['rating'] = 3;
 set SomeApp['baz']['score'] = 512000;
 set SomeApp['baz']['percent'] = '95.3';
 set SomeApp['baz']['atomic_weight'] = '1.61803399';
+set SomeApp['baz']['created'] = 1335890877;
 set SomeApp['baz']['extra1'] = lexicaluuid();
 set SomeApp['baz']['extra2'] = lexicaluuid();
 set SomeApp['baz']['extra3'] = lexicaluuid();
@@ -58,6 +63,7 @@ set SomeApp['qux']['rating'] = 2;
 set SomeApp['qux']['score'] = 12000;
 set SomeApp['qux']['percent'] = '64.7';
 set SomeApp['qux']['atomic_weight'] = '0.660161815846869';
+set SomeApp['qux']['created'] = 1335890877;
 set SomeApp['qux']['extra1'] = lexicaluuid();
 set SomeApp['qux']['extra2'] = lexicaluuid();
 set SomeApp['qux']['extra3'] = lexicaluuid();