You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by sm...@apache.org on 2009/03/04 02:42:08 UTC
svn commit: r749874 - in /hadoop/pig/trunk: CHANGES.txt
src/org/apache/pig/impl/logicalLayer/schema/Schema.java
test/org/apache/pig/test/TestUnion.java test/org/apache/pig/test/Util.java
Author: sms
Date: Wed Mar 4 01:42:07 2009
New Revision: 749874
URL: http://svn.apache.org/viewvc?rev=749874&view=rev
Log:
PIG-690: UNION doesn't work in the latest code (pradeepkth via sms)
Modified:
hadoop/pig/trunk/CHANGES.txt
hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/schema/Schema.java
hadoop/pig/trunk/test/org/apache/pig/test/TestUnion.java
hadoop/pig/trunk/test/org/apache/pig/test/Util.java
Modified: hadoop/pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=749874&r1=749873&r2=749874&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Wed Mar 4 01:42:07 2009
@@ -444,3 +444,5 @@
via sms)
PIG-577: outer join query looses name information (sms via pradeepkth)
+
+ PIG-690: UNION doesn't work in the latest code (pradeepkth via sms)
Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/schema/Schema.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/schema/Schema.java?rev=749874&r1=749873&r2=749874&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/schema/Schema.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/schema/Schema.java Wed Mar 4 01:42:07 2009
@@ -1378,7 +1378,13 @@
// create the merged field
// the mergedSubSchema can be true if allowIncompatibleTypes
- mergedFs = new FieldSchema(mergedAlias, mergedSubSchema) ;
+ try {
+ mergedFs = new FieldSchema(mergedAlias, mergedSubSchema, mergedType) ;
+ } catch (FrontendException e) {
+ int errCode = 2124;
+ String errMsg = "Internal Error: Unexpected error creating field schema";
+ throw new SchemaMergeException(errMsg, errCode, PigException.BUG, e);
+ }
}
outputList.add(mergedFs) ;
Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestUnion.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestUnion.java?rev=749874&r1=749873&r2=749874&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/TestUnion.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/TestUnion.java Wed Mar 4 01:42:07 2009
@@ -216,4 +216,38 @@
assertFalse(it.hasNext());
}
+ // Test schema merge in union when one of the fields is a bag
+ @Test
+ public void testSchemaMergeWithBag() throws Exception {
+ Util.createInputFile(cluster, "input1.txt", new String[] {"dummy"});
+ Util.createInputFile(cluster, "input2.txt", new String[] {"dummy"});
+ PigServer pig = new PigServer(ExecType.MAPREDUCE, cluster.getProperties());
+ Util.registerQuery(pig, "a = load 'input1.txt' ;" +
+ "b = load 'input2.txt';" +
+ "c = foreach a generate 1, {(1, 'str1')};" +
+ "d = foreach b generate 2, {(2, 'str2')};" +
+ "e = union c,d");
+ Iterator<Tuple> it = pig.openIterator("e");
+ Object[] expected = new Object[] { Util.getPigConstant("(1, {(1, 'str1')})"),
+ Util.getPigConstant("(2, {(2, 'str2')})")};
+ Object[] results = new Object[2];
+ int i = 0;
+ while(it.hasNext()) {
+ if(i == 2) {
+ fail("Got more tuples than expected!");
+ }
+ Tuple t = it.next();
+ if(t.get(0).equals(1)) {
+ // this is the first tuple
+ results[0] = t;
+ } else {
+ results[1] = t;
+ }
+ i++;
+ }
+ for (int j = 0; j < expected.length; j++) {
+ assertTrue(expected[j].equals(results[j]));
+ }
+ }
+
}
Modified: hadoop/pig/trunk/test/org/apache/pig/test/Util.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/Util.java?rev=749874&r1=749873&r2=749874&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/Util.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/Util.java Wed Mar 4 01:42:07 2009
@@ -311,6 +311,12 @@
Schema.setSchemaDefaultType(schema, defaultType);
return schema;
}
+
+ static Object getPigConstant(String pigConstantAsString) throws ParseException {
+ ByteArrayInputStream stream = new ByteArrayInputStream(pigConstantAsString.getBytes()) ;
+ QueryParser queryParser = new QueryParser(stream) ;
+ return queryParser.Datum();
+ }
public static File createFile(String[] data) throws Exception{
File f = File.createTempFile("tmp", "");