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 9B99E10CAB for ; Mon, 7 Oct 2013 19:07:07 +0000 (UTC) Received: (qmail 4706 invoked by uid 500); 7 Oct 2013 19:07:07 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 4639 invoked by uid 500); 7 Oct 2013 19:07:07 -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 4622 invoked by uid 99); 7 Oct 2013 19:07:06 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Oct 2013 19:07:06 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 55B3C911A74; Mon, 7 Oct 2013 19:07:06 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: brandonwilliams@apache.org To: commits@cassandra.apache.org Date: Mon, 07 Oct 2013 19:07:06 -0000 Message-Id: <66c021025d0f4ae4a75eb09fc087f745@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [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-1.2 9d31ac14d -> bdb7bb16f refs/heads/trunk b966e1ad2 -> 538039a70 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/bdb7bb16 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bdb7bb16 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bdb7bb16 Branch: refs/heads/cassandra-1.2 Commit: bdb7bb16facda0fbe266390bd3213f092d02c0dc Parents: 9d31ac1 Author: Brandon Williams Authored: Mon Oct 7 13:57:45 2013 -0500 Committer: Brandon Williams Committed: Mon Oct 7 14:03:08 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/bdb7bb16/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 result = comparator.deconstruct(name); Tuple t = TupleFactory.getInstance().newTuple(result.size()); for (int i=0; i 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/bdb7bb16/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/bdb7bb16/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 validators = getValidatorMap(cfDef); if (validators.get(col.name()) == null) - { - Map 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 */