You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by dv...@apache.org on 2011/12/16 04:35:44 UTC
svn commit: r1215033 - in /pig/branches/branch-0.9: ./
src/org/apache/pig/parser/ test/org/apache/pig/test/
Author: dvryaboy
Date: Fri Dec 16 03:35:44 2011
New Revision: 1215033
URL: http://svn.apache.org/viewvc?rev=1215033&view=rev
Log:
PIG-2427: getSchemaFromString throws away the name of the tuple that is in a bag
Modified:
pig/branches/branch-0.9/CHANGES.txt
pig/branches/branch-0.9/src/org/apache/pig/parser/AliasMasker.g
pig/branches/branch-0.9/src/org/apache/pig/parser/AstValidator.g
pig/branches/branch-0.9/src/org/apache/pig/parser/LogicalPlanGenerator.g
pig/branches/branch-0.9/src/org/apache/pig/parser/QueryParser.g
pig/branches/branch-0.9/test/org/apache/pig/test/TestSchema.java
Modified: pig/branches/branch-0.9/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/CHANGES.txt?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/CHANGES.txt (original)
+++ pig/branches/branch-0.9/CHANGES.txt Fri Dec 16 03:35:44 2011
@@ -22,6 +22,8 @@ Release 0.9.2 - Unreleased
BUG FIXES
+PIG-2427: getSchemaFromString throws away the name of the tuple that is in a bag (jcoveney via dvryaboy)
+
PIG-2415: A fix for 0.23 local mode: put "yarn-default.xml" into the configuration (daijy)
PIG-2402: inIllustrator condition in PigMapReduce is wrong for hadoop 23 (daijy)
Modified: pig/branches/branch-0.9/src/org/apache/pig/parser/AliasMasker.g
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/parser/AliasMasker.g?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/parser/AliasMasker.g (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/parser/AliasMasker.g Fri Dec 16 03:35:44 2011
@@ -209,7 +209,7 @@ tuple_type
;
bag_type
- : ^( BAG_TYPE tuple_type? )
+ : ^( BAG_TYPE IDENTIFIER? tuple_type? )
;
map_type : ^( MAP_TYPE type? )
Modified: pig/branches/branch-0.9/src/org/apache/pig/parser/AstValidator.g
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/parser/AstValidator.g?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/parser/AstValidator.g (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/parser/AstValidator.g Fri Dec 16 03:35:44 2011
@@ -209,7 +209,7 @@ simple_type : INT | LONG | FLOAT | DOUBL
tuple_type : ^( TUPLE_TYPE field_def_list? )
;
-bag_type : ^( BAG_TYPE tuple_type? )
+bag_type : ^( BAG_TYPE IDENTIFIER? tuple_type? )
;
map_type : ^( MAP_TYPE type? )
Modified: pig/branches/branch-0.9/src/org/apache/pig/parser/LogicalPlanGenerator.g
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/parser/LogicalPlanGenerator.g?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/parser/LogicalPlanGenerator.g (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/parser/LogicalPlanGenerator.g Fri Dec 16 03:35:44 2011
@@ -370,14 +370,14 @@ tuple_type returns[LogicalSchema logical
;
bag_type returns[LogicalSchema logicalSchema]
- : ^( BAG_TYPE tuple_type? )
+ : ^( BAG_TYPE IDENTIFIER? tuple_type? )
{
if ($tuple_type.logicalSchema!=null && $tuple_type.logicalSchema.size()==1 && $tuple_type.logicalSchema.getField(0).type==DataType.TUPLE) {
$logicalSchema = $tuple_type.logicalSchema;
}
else {
LogicalSchema s = new LogicalSchema();
- s.addField(new LogicalFieldSchema(null, $tuple_type.logicalSchema, DataType.TUPLE));
+ s.addField(new LogicalFieldSchema($IDENTIFIER.text, $tuple_type.logicalSchema, DataType.TUPLE));
$logicalSchema = s;
}
}
Modified: pig/branches/branch-0.9/src/org/apache/pig/parser/QueryParser.g
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/parser/QueryParser.g?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/src/org/apache/pig/parser/QueryParser.g (original)
+++ pig/branches/branch-0.9/src/org/apache/pig/parser/QueryParser.g Fri Dec 16 03:35:44 2011
@@ -305,7 +305,7 @@ tuple_type : TUPLE? LEFT_PAREN field_def
;
bag_type : BAG? LEFT_CURLY ( ( identifier COLON )? tuple_type )? RIGHT_CURLY
- -> ^( BAG_TYPE tuple_type? )
+ -> ^( BAG_TYPE identifier? tuple_type? )
;
map_type : MAP? LEFT_BRACKET type? RIGHT_BRACKET
Modified: pig/branches/branch-0.9/test/org/apache/pig/test/TestSchema.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/test/org/apache/pig/test/TestSchema.java?rev=1215033&r1=1215032&r2=1215033&view=diff
==============================================================================
--- pig/branches/branch-0.9/test/org/apache/pig/test/TestSchema.java (original)
+++ pig/branches/branch-0.9/test/org/apache/pig/test/TestSchema.java Fri Dec 16 03:35:44 2011
@@ -694,7 +694,7 @@ public class TestSchema {
LogicalSchema ls1 = Utils.parseSchema("a:{t:(a0:int, a1:int)}");
LogicalSchema ls2 = Utils.parseSchema("b:{t:(b0:int, b1:int)}");
LogicalSchema ls3 = LogicalSchema.merge(ls1, ls2, MergeMode.LoadForEach);
- Assert.assertTrue(org.apache.pig.newplan.logical.Util.translateSchema(ls3).toString().equals("{a: {(a0: int,a1: int)}}"));
+ Assert.assertTrue(org.apache.pig.newplan.logical.Util.translateSchema(ls3).toString().equals("{a: {t: (a0: int,a1: int)}}"));
}
@Test
@@ -865,4 +865,30 @@ public class TestSchema {
Schema s2 = Schema.getPigSchema(new ResourceSchema(s1));
Assert.assertTrue(s1.equals(s2));
}
+
+ @Test
+ public void testGetStringFromSchema() throws ParserException {
+ String[] schemaStrings = {
+ "a:int",
+ "a:long",
+ "a:chararray",
+ "a:double",
+ "a:float",
+ "a:bytearray",
+ "b:bag{tuple(x:int,y:int,z:int)}",
+ "b:bag{t:tuple(x:int,y:int,z:int)}",
+ "a:int,b:chararray,c:Map[int]",
+ "a:double,b:float,t:tuple(x:int,y:double,z:bytearray)",
+ "a:double,b:float,t:tuple(x:int,b:bag{t:tuple(a:int,b:float,c:double,x:tuple(z:bag{r:tuple(z:bytearray)}))},z:bytearray)",
+ "a,b,t:tuple(x,b:bag{t:tuple(a,b,c,x:tuple(z:bag{r:tuple(z)}))},z)",
+ "a:bag{t:tuple(a:bag{t:tuple(a:bag{t:tuple(a:bag{t:tuple(a:bag{t:tuple(a:bag{t:tuple(a:int,b:float)})})})})})}",
+ "a:bag{}"
+ };
+ for (String schemaString : schemaStrings) {
+ Schema s1 = Utils.getSchemaFromString(schemaString);
+ String s=s1.toString();
+ Schema s2 = Utils.getSchemaFromString(s.substring(1,s.length()-1)); //have to cut out the brackets that surround it
+ Assert.assertTrue(Schema.equals(s1,s2,false,true));
+ }
+ }
}