You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2008/09/18 02:39:45 UTC
svn commit: r696527 - in /incubator/pig/branches/types: CHANGES.txt
src/org/apache/pig/impl/logicalLayer/LOForEach.java
src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
test/org/apache/pig/test/TestLogicalPlanBuilder.java
Author: olga
Date: Wed Sep 17 17:39:45 2008
New Revision: 696527
URL: http://svn.apache.org/viewvc?rev=696527&view=rev
Log:
PIG-433: no () for single column alias after flatten
Modified:
incubator/pig/branches/types/CHANGES.txt
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOForEach.java
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java
Modified: incubator/pig/branches/types/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/CHANGES.txt?rev=696527&r1=696526&r2=696527&view=diff
==============================================================================
--- incubator/pig/branches/types/CHANGES.txt (original)
+++ incubator/pig/branches/types/CHANGES.txt Wed Sep 17 17:39:45 2008
@@ -201,3 +201,5 @@
(pradeepk via olgan)
PIG-434: short-circuit AND and OR (pradeepk viia olgan)
+
+ PIG-333: allowing no parethesis with single column alias with flatten
Modified: incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOForEach.java
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOForEach.java?rev=696527&r1=696526&r2=696527&view=diff
==============================================================================
--- incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOForEach.java (original)
+++ incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOForEach.java Wed Sep 17 17:39:45 2008
@@ -30,6 +30,7 @@
import org.apache.pig.impl.plan.OperatorKey;
import org.apache.pig.impl.plan.PlanVisitor;
import org.apache.pig.impl.plan.VisitorException;
+import org.apache.pig.impl.logicalLayer.parser.QueryParser ;
import org.apache.pig.impl.logicalLayer.parser.ParseException;
import org.apache.pig.data.DataType;
import org.apache.commons.logging.Log;
@@ -226,6 +227,7 @@
fss.add(newFs);
} else {
for(Schema.FieldSchema ufs: userDefinedSchema.getFields()) {
+ QueryParser.SchemaUtils.setFieldSchemaDefaultType(ufs, DataType.BYTEARRAY);
fss.add(new Schema.FieldSchema(ufs.alias, ufs.schema, ufs.type));
updateAliasCount(aliases, ufs.alias);
}
Modified: incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt?rev=696527&r1=696526&r2=696527&view=diff
==============================================================================
--- incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt (original)
+++ incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt Wed Sep 17 17:39:45 2008
@@ -2260,7 +2260,7 @@
{
flatten = true;
}
- [ <AS> "(" schema = TupleSchema() ")" ]
+ [ <AS> ( "(" schema = TupleSchema() ")" | fs = FieldSchema() ) ]
)
|
(
Modified: incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java?rev=696527&r1=696526&r2=696527&view=diff
==============================================================================
--- incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java (original)
+++ incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java Wed Sep 17 17:39:45 2008
@@ -1183,6 +1183,11 @@
foreach = (LOForEach) lp.getLeaves().get(0);
assertTrue(foreach.getSchema().equals(getSchemaFromString("name: chararray, age: int, mycount: long")));
+ //the first element in group, i.e., name is renamed as myname
+ lp = buildPlan("c = foreach b generate flatten(group) as myname, COUNT(a) as mycount;");
+ foreach = (LOForEach) lp.getLeaves().get(0);
+ assertTrue(foreach.getSchema().equals(getSchemaFromString("myname: chararray, age: int, mycount: long")));
+
//group is renamed as mygroup
lp = buildPlan("c = foreach b generate group as mygroup, COUNT(a) as mycount;");
foreach = (LOForEach) lp.getLeaves().get(0);
@@ -1203,18 +1208,33 @@
foreach = (LOForEach) lp.getLeaves().get(0);
assertTrue(foreach.getSchema().equals(getSchemaFromString("mygroup:(name: chararray, age: int), mycount: long")));
- /*
- //forcing an wrror by having more elements in the fhe schema
- lp = buildPlan("c = foreach B generate group as mygroup:(myname, myage, mygpa), COUNT(A) as mycount;");
- lp = buildPlan("c = foreach B generate group as mygroup:(myname: int, myage), COUNT(A) as mycount;");
- lp = buildPlan("c = foreach B generate group as mygroup:(myname, myage: chararray), COUNT(A) as mycount;");
- lp = buildPlan("c = foreach B generate group as mygroup:{t: (myname, myage)}, COUNT(A) as mycount;");
- lp = buildPlan("c = foreach B generate flatten(group) as (myname, myage, mygpa), COUNT(A) as mycount;");
+ //setting the schema of flattened bag that has no schema with the user defined schema
+ buildPlan("c = load 'another_file';");
+ buildPlan("d = cogroup a by $0, c by $0;");
+ lp = buildPlan("e = foreach d generate flatten(DIFF(a, c)) as (x, y, z), COUNT(a) as mycount;");
+ foreach = (LOForEach) lp.getLeaves().get(0);
+ assertTrue(foreach.getSchema().equals(getSchemaFromString("x: bytearray, y: bytearray, z: bytearray, mycount: long")));
+
+ //setting the schema of flattened bag that has no schema with the user defined schema
+ buildPlan("c = load 'another_file';");
+ buildPlan("d = cogroup a by $0, c by $0;");
+ lp = buildPlan("e = foreach d generate flatten(DIFF(a, c)) as (x: int, y: float, z), COUNT(a) as mycount;");
+ foreach = (LOForEach) lp.getLeaves().get(0);
+ assertTrue(foreach.getSchema().equals(getSchemaFromString("x: int, y: float, z: bytearray, mycount: long")));
+ //setting the schema of flattened bag that has no schema with the user defined schema
+ buildPlan("c = load 'another_file';");
+ buildPlan("d = cogroup a by $0, c by $0;");
+ lp = buildPlan("e = foreach d generate flatten(DIFF(a, c)) as x, COUNT(a) as mycount;");
foreach = (LOForEach) lp.getLeaves().get(0);
+ assertTrue(foreach.getSchema().equals(getSchemaFromString("x: bytearray, mycount: long")));
- assertTrue(foreach.getSchema().equals(getSchemaFromString()));
- */
+ //setting the schema of flattened bag that has no schema with the user defined schema
+ buildPlan("c = load 'another_file';");
+ buildPlan("d = cogroup a by $0, c by $0;");
+ lp = buildPlan("e = foreach d generate flatten(DIFF(a, c)) as x: int, COUNT(a) as mycount;");
+ foreach = (LOForEach) lp.getLeaves().get(0);
+ assertTrue(foreach.getSchema().equals(getSchemaFromString("x: int, mycount: long")));
}