Author: daijy
Date: Wed Mar 4 06:19:07 2015
New Revision: 1663862
URL: http://svn.apache.org/r1663862
Log:
PIG-4445: VALUELIST and VALUESET outputSchema does not match actual schema of
data returned when map value schema is complex
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
pig/trunk/src/org/apache/pig/builtin/VALUESET.java
pig/trunk/test/org/apache/pig/test/TestBuiltin.java
Modified: pig/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1663862&r1=1663861&r2=1663862&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Mar 4 06:19:07 2015
@@ -50,6 +50,9 @@ PIG-4333: Split BigData tests into multi
BUG FIXES
+PIG-4445: VALUELIST and VALUESET outputSchema does not match actual schema of
data returned when map value schema
+ is complex (erwaman via daijy)
+
PIG-4442: Eliminate redundant RPC call to get file information in HPath
(cnauroth via daijy)
PIG-4440: Some code samples in documentation use Unicode left/right single
quotes, which cause a
Modified: pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUELIST.java?rev=1663862&r1=1663861&r2=1663862&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUELIST.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUELIST.java Wed Mar 4 06:19:07 2015
@@ -105,7 +105,7 @@ public class VALUELIST extends EvalFunc<
throw new RuntimeException(fe);
}
if(fs != null) {
- innerFieldSchema = new Schema.FieldSchema(fs);
+ innerFieldSchema = new Schema.FieldSchema(null, new
Schema(fs));
}
} else {
innerFieldSchema = new Schema.FieldSchema(null,
DataType.BYTEARRAY);
Modified: pig/trunk/src/org/apache/pig/builtin/VALUESET.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUESET.java?rev=1663862&r1=1663861&r2=1663862&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUESET.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUESET.java Wed Mar 4 06:19:07 2015
@@ -118,7 +118,7 @@ public class VALUESET extends EvalFunc<D
throw new RuntimeException(fe);
}
if (fs != null) {
- innerFieldSchema = new Schema.FieldSchema(fs);
+ innerFieldSchema = new Schema.FieldSchema(null, new
Schema(fs));
}
} else {
innerFieldSchema = new Schema.FieldSchema(null,
DataType.BYTEARRAY);
Modified: pig/trunk/test/org/apache/pig/test/TestBuiltin.java
URL:
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestBuiltin.java?rev=1663862&r1=1663861&r2=1663862&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestBuiltin.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestBuiltin.java Wed Mar 4 06:19:07 2015
@@ -2934,6 +2934,23 @@ public class TestBuiltin {
}
/**
+ * Tests that VALUESET preserves the schema when the map's value type is
primitive.
+ */
+ @Test
+ public void testValueSetOutputSchemaPrimitiveType() throws
FrontendException {
+ Schema inputSchema = new Schema();
+ Schema charArraySchema = new Schema(new FieldSchema(null,
DataType.CHARARRAY));
+ FieldSchema mapSchema = new FieldSchema(null, charArraySchema,
DataType.MAP);
+ inputSchema.add(mapSchema);
+
+ Schema tupleSchema = new Schema(new FieldSchema(null, charArraySchema,
DataType.TUPLE));
+ Schema expectedSchema = new Schema(new FieldSchema(null, tupleSchema,
DataType.BAG));
+
+ VALUESET vs = new VALUESET();
+ assertEquals(expectedSchema, vs.outputSchema(inputSchema));
+ }
+
+ /**
* Tests that VALUESET preserves the schema when the map's value type is
complex.
*/
@Test
@@ -2943,7 +2960,8 @@ public class TestBuiltin {
FieldSchema mapSchema = new FieldSchema(null, bagSchema, DataType.MAP);
inputSchema.add(mapSchema);
- Schema expectedSchema = new Schema(new FieldSchema(null, bagSchema,
DataType.BAG));
+ Schema tupleSchema = new Schema(new FieldSchema(null, bagSchema,
DataType.TUPLE));
+ Schema expectedSchema = new Schema(new FieldSchema(null, tupleSchema,
DataType.BAG));
VALUESET vs = new VALUESET();
assertEquals(expectedSchema, vs.outputSchema(inputSchema));
@@ -2975,6 +2993,23 @@ public class TestBuiltin {
}
/**
+ * Tests that VALUELIST preserves the schema when the map's value type is
primitive.
+ */
+ @Test
+ public void testValueListOutputSchemaPrimitiveType() throws
FrontendException {
+ Schema inputSchema = new Schema();
+ Schema charArraySchema = new Schema(new FieldSchema(null,
DataType.CHARARRAY));
+ FieldSchema mapSchema = new FieldSchema(null, charArraySchema,
DataType.MAP);
+ inputSchema.add(mapSchema);
+
+ Schema tupleSchema = new Schema(new FieldSchema(null, charArraySchema,
DataType.TUPLE));
+ Schema expectedSchema = new Schema(new FieldSchema(null, tupleSchema,
DataType.BAG));
+
+ VALUELIST vl = new VALUELIST();
+ assertEquals(expectedSchema, vl.outputSchema(inputSchema));
+ }
+
+ /**
* Tests that VALUELIST preserves the schema when the map's value type is
complex.
*/
@Test
@@ -2984,7 +3019,8 @@ public class TestBuiltin {
FieldSchema mapSchema = new FieldSchema(null, bagSchema, DataType.MAP);
inputSchema.add(mapSchema);
- Schema expectedSchema = new Schema(new FieldSchema(null, bagSchema,
DataType.BAG));
+ Schema tupleSchema = new Schema(new FieldSchema(null, bagSchema,
DataType.TUPLE));
+ Schema expectedSchema = new Schema(new FieldSchema(null, tupleSchema,
DataType.BAG));
VALUELIST vl = new VALUELIST();
assertEquals(expectedSchema, vl.outputSchema(inputSchema));