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 2013/10/07 21:03:25 UTC

[1/2] git commit: Add more data type mappings for pig. Patch by Alex Liu, reviewed by brandonwilliams for CASSANDRA-6128

Updated Branches:
  refs/heads/cassandra-2.0 8e8db1f20 -> c374aca19


Add more data type mappings for pig.
Patch by Alex Liu, reviewed by brandonwilliams for CASSANDRA-6128


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

Branch: refs/heads/cassandra-2.0
Commit: 3633aea42d7689fa0252c104f62b0646d0858624
Parents: d396fd4
Author: Brandon Williams <br...@apache.org>
Authored: Mon Oct 7 13:57:45 2013 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Mon Oct 7 13:57:45 2013 -0500

----------------------------------------------------------------------
 .../hadoop/pig/AbstractCassandraStorage.java    | 30 +++++++++++++++-----
 .../cassandra/hadoop/pig/CassandraStorage.java  |  2 +-
 .../apache/cassandra/hadoop/pig/CqlStorage.java |  7 ++---
 3 files changed, 26 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3633aea4/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java b/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
index ce92014..6ad4f9e 100644
--- a/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
+++ b/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
@@ -110,7 +110,7 @@ public abstract class AbstractCassandraStorage extends LoadFunc implements Store
         List<CompositeComponent> result = comparator.deconstruct(name);
         Tuple t = TupleFactory.getInstance().newTuple(result.size());
         for (int i=0; i<result.size(); i++)
-            setTupleValue(t, i, result.get(i).comparator.compose(result.get(i).value));
+            setTupleValue(t, i, cassandraToObj(result.get(i).comparator, result.get(i).value));
 
         return t;
     }
@@ -124,7 +124,7 @@ public abstract class AbstractCassandraStorage extends LoadFunc implements Store
         if(comparator instanceof AbstractCompositeType)
             setTupleValue(pair, 0, composeComposite((AbstractCompositeType)comparator,col.name()));
         else
-            setTupleValue(pair, 0, comparator.compose(col.name()));
+            setTupleValue(pair, 0, cassandraToObj(comparator, col.name()));
 
         // value
         if (col instanceof Column)
@@ -134,10 +134,10 @@ public abstract class AbstractCassandraStorage extends LoadFunc implements Store
             if (validators.get(col.name()) == null)
             {
                 Map<MarshallerType, AbstractType> marshallers = getDefaultMarshallers(cfDef);
-                setTupleValue(pair, 1, marshallers.get(MarshallerType.DEFAULT_VALIDATOR).compose(col.value()));
+                setTupleValue(pair, 1, cassandraToObj(marshallers.get(MarshallerType.DEFAULT_VALIDATOR), col.value()));
             }
             else
-                setTupleValue(pair, 1, validators.get(col.name()).compose(col.value()));
+                setTupleValue(pair, 1, cassandraToObj(validators.get(col.name()), col.value()));
             return pair;
         }
         else
@@ -327,9 +327,12 @@ public abstract class AbstractCassandraStorage extends LoadFunc implements Store
             return DataType.LONG;
         else if (type instanceof IntegerType || type instanceof Int32Type) // IntegerType will overflow at 2**31, but is kept for compatibility until pig has a BigInteger
             return DataType.INTEGER;
-        else if (type instanceof AsciiType)
-            return DataType.CHARARRAY;
-        else if (type instanceof UTF8Type)
+        else if (type instanceof AsciiType || 
+                type instanceof UTF8Type ||
+                type instanceof DecimalType ||
+                type instanceof InetAddressType ||
+                type instanceof LexicalUUIDType ||
+                type instanceof UUIDType )
             return DataType.CHARARRAY;
         else if (type instanceof FloatType)
             return DataType.FLOAT;
@@ -772,5 +775,18 @@ public abstract class AbstractCassandraStorage extends LoadFunc implements Store
         }
         return null;
     }
+
+    protected Object cassandraToObj(AbstractType validator, ByteBuffer value)
+    {
+        if (validator instanceof DecimalType ||
+                validator instanceof InetAddressType ||
+                validator instanceof LexicalUUIDType ||
+                validator instanceof UUIDType)
+        {
+            return validator.getString(value);
+        }
+        else
+            return validator.compose(value);
+    }
 }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3633aea4/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
index 09171a0..1135b70 100644
--- a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
+++ b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
@@ -731,7 +731,7 @@ public class CassandraStorage extends AbstractCassandraStorage
         }
         else
         {
-            setTupleValue(tuple, 0, getDefaultMarshallers(cfDef).get(MarshallerType.KEY_VALIDATOR).compose(key));
+            setTupleValue(tuple, 0, cassandraToObj(getDefaultMarshallers(cfDef).get(MarshallerType.KEY_VALIDATOR), key));
         }
 
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3633aea4/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java b/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java
index 79abc2c..e51338c 100644
--- a/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java
+++ b/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java
@@ -189,12 +189,9 @@ public class CqlStorage extends AbstractCassandraStorage
         // standard
         Map<ByteBuffer,AbstractType> validators = getValidatorMap(cfDef);
         if (validators.get(col.name()) == null)
-        {
-            Map<MarshallerType, AbstractType> marshallers = getDefaultMarshallers(cfDef);
-            return marshallers.get(MarshallerType.DEFAULT_VALIDATOR).compose(col.value());
-        }
+            return cassandraToObj(getDefaultMarshallers(cfDef).get(MarshallerType.DEFAULT_VALIDATOR), col.value());
         else
-            return validators.get(col.name()).compose(col.value());
+            return cassandraToObj(validators.get(col.name()), col.value());
     }
 
     /** set read configuration settings */


[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by br...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
	src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java


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

Branch: refs/heads/cassandra-2.0
Commit: c374aca19ea39fbbc588a2309c669c422e0318cd
Parents: 8e8db1f 3633aea
Author: Brandon Williams <br...@apache.org>
Authored: Mon Oct 7 14:02:39 2013 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Mon Oct 7 14:02:39 2013 -0500

----------------------------------------------------------------------
 .../hadoop/pig/AbstractCassandraStorage.java    | 30 +++++++++++++++-----
 .../cassandra/hadoop/pig/CassandraStorage.java  |  2 +-
 .../apache/cassandra/hadoop/pig/CqlStorage.java |  7 ++---
 3 files changed, 26 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c374aca1/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
index 1e207b3,6ad4f9e..c881734
--- a/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
+++ b/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
@@@ -124,17 -124,31 +124,17 @@@ public abstract class AbstractCassandra
          if(comparator instanceof AbstractCompositeType)
              setTupleValue(pair, 0, composeComposite((AbstractCompositeType)comparator,col.name()));
          else
-             setTupleValue(pair, 0, comparator.compose(col.name()));
+             setTupleValue(pair, 0, cassandraToObj(comparator, col.name()));
  
          // value
 -        if (col instanceof Column)
 +        Map<ByteBuffer,AbstractType> validators = getValidatorMap(cfDef);
 +        if (validators.get(col.name()) == null)
          {
 -            // standard
 -            Map<ByteBuffer,AbstractType> validators = getValidatorMap(cfDef);
 -            if (validators.get(col.name()) == null)
 -            {
 -                Map<MarshallerType, AbstractType> marshallers = getDefaultMarshallers(cfDef);
 -                setTupleValue(pair, 1, cassandraToObj(marshallers.get(MarshallerType.DEFAULT_VALIDATOR), col.value()));
 -            }
 -            else
 -                setTupleValue(pair, 1, cassandraToObj(validators.get(col.name()), col.value()));
 -            return pair;
 +            Map<MarshallerType, AbstractType> marshallers = getDefaultMarshallers(cfDef);
-             setTupleValue(pair, 1, marshallers.get(MarshallerType.DEFAULT_VALIDATOR).compose(col.value()));
++            setTupleValue(pair, 1, cassandraToObj(marshallers.get(MarshallerType.DEFAULT_VALIDATOR), col.value()));
          }
          else
-             setTupleValue(pair, 1, validators.get(col.name()).compose(col.value()));
 -        {
 -            // super
 -            ArrayList<Tuple> subcols = new ArrayList<Tuple>();
 -            for (IColumn subcol : col.getSubColumns())
 -                subcols.add(columnToTuple(subcol, cfDef, parseType(cfDef.getSubcomparator_type())));
 -
 -            pair.set(1, new DefaultDataBag(subcols));
 -        }
++            setTupleValue(pair, 1, cassandraToObj(validators.get(col.name()), col.value()));
          return pair;
      }
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c374aca1/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c374aca1/src/java/org/apache/cassandra/hadoop/pig/CqlStorage.java
----------------------------------------------------------------------