Updated Branches: refs/heads/master 2232d0a7a -> a69bda8f5
Fix nested table test for Avro PTypes Project: http://git-wip-us.apache.org/repos/asf/incubator-crunch/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-crunch/commit/a69bda8f Tree: http://git-wip-us.apache.org/repos/asf/incubator-crunch/tree/a69bda8f Diff: http://git-wip-us.apache.org/repos/asf/incubator-crunch/diff/a69bda8f Branch: refs/heads/master Commit: a69bda8f50b6ed227cf28a3a59da0c0c2d379dcc Parents: 2232d0a Author: Josh Wills <[email protected]> Authored: Tue Jul 3 08:11:57 2012 -0700 Committer: Josh Wills <[email protected]> Committed: Tue Jul 3 08:11:57 2012 -0700 ---------------------------------------------------------------------- .../java/com/cloudera/crunch/types/avro/Avros.java | 9 +++++++++ .../com/cloudera/crunch/types/avro/AvrosTest.java | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-crunch/blob/a69bda8f/src/main/java/com/cloudera/crunch/types/avro/Avros.java ---------------------------------------------------------------------- diff --git a/src/main/java/com/cloudera/crunch/types/avro/Avros.java b/src/main/java/com/cloudera/crunch/types/avro/Avros.java index d2edae2..59237fc 100644 --- a/src/main/java/com/cloudera/crunch/types/avro/Avros.java +++ b/src/main/java/com/cloudera/crunch/types/avro/Avros.java @@ -44,6 +44,7 @@ import com.cloudera.crunch.Tuple4; import com.cloudera.crunch.TupleN; import com.cloudera.crunch.fn.CompositeMapFn; import com.cloudera.crunch.fn.IdentityFn; +import com.cloudera.crunch.types.PTableType; import com.cloudera.crunch.types.PType; import com.cloudera.crunch.types.TupleFactory; import com.cloudera.crunch.util.PTypes; @@ -601,6 +602,14 @@ public class Avros { public static final <K, V> AvroTableType<K, V> tableOf(PType<K> key, PType<V> value) { + if (key instanceof PTableType) { + PTableType ptt = (PTableType) key; + key = Avros.pairs(ptt.getKeyType(), ptt.getValueType()); + } + if (value instanceof PTableType) { + PTableType ptt = (PTableType) value; + value = Avros.pairs(ptt.getKeyType(), ptt.getValueType()); + } AvroType<K> avroKey = (AvroType<K>) key; AvroType<V> avroValue = (AvroType<V>) value; return new AvroTableType(avroKey, avroValue, Pair.class); http://git-wip-us.apache.org/repos/asf/incubator-crunch/blob/a69bda8f/src/test/java/com/cloudera/crunch/types/avro/AvrosTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/com/cloudera/crunch/types/avro/AvrosTest.java b/src/test/java/com/cloudera/crunch/types/avro/AvrosTest.java index 74e2ad3..c7e9908 100644 --- a/src/test/java/com/cloudera/crunch/types/avro/AvrosTest.java +++ b/src/test/java/com/cloudera/crunch/types/avro/AvrosTest.java @@ -105,8 +105,8 @@ public class AvrosTest { @Test public void testNestedTables() throws Exception { PTableType<Long, Long> pll = Avros.tableOf(Avros.longs(), Avros.longs()); - PTableType<Pair<Long, Long>, String> nest = Avros.tableOf(pll, Avros.strings()); - assertNotNull(nest); + String schema = Avros.tableOf(pll, Avros.strings()).getSchema().toString(); + assertNotNull(schema); } @Test
