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));
+        }
+    }
 }