hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santhosh Srinivasan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-773) Empty complex constants (empty bag, empty tuple and empty map) should be supported
Date Mon, 22 Jun 2009 17:36:07 GMT

    [ https://issues.apache.org/jira/browse/PIG-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12722701#action_12722701
] 

Santhosh Srinivasan commented on PIG-773:
-----------------------------------------

Comments:

1. Minor comment - the comment on the empty productions all have the same text For tuple and
bag, it should be changed to tuple and bag respectively

{code}
+	|{ } // Match the empty content in map.
{code}

2. I am not sure about the test case testEmptyBagConstRecursive. Here the bag contains an
empty tuple. As a result, the field schema for the bag should contain the schema of the empty
tuple. The test case will probably fail.

{code}
+    @Test
+    public void testEmptyBagConstRecursive() throws FrontendException{
+       
+        LogicalPlan lp = buildPlan("a = foreach (load 'b') generate {()};");
+        LOForEach foreach = (LOForEach) lp.getLeaves().get(0);
+        
+        Schema.FieldSchema bagFs = new Schema.FieldSchema(null,null,DataType.BAG);
+        Schema expectedSchema = new Schema(bagFs);
+       
+        assertTrue(Schema.equals(foreach.getSchema(), expectedSchema, false, true));
+    }

{code}

3. There are no tests that check if the empty constants are actually created, i.e., there
are no checks for expected empty constants. The test below checks if the parser can parse
the new syntax for empty constants. In addition, the values generated by the parser have to
checked against expected values for these constants.

{code}
+    @Test
+    public void testRandomEmptyConst(){
+        // Various random scripts to test recursive nature of parser with empty constants.
+       
+        buildPlan("a = foreach (load 'b') generate {({})};");
+        buildPlan("a = foreach (load 'b') generate ({()});");
+        buildPlan("a = foreach (load 'b') generate {(),()};");
+        buildPlan("a = foreach (load 'b') generate ({},{});");
+        buildPlan("a = foreach (load 'b') generate ((),());");
+        buildPlan("a = foreach (load 'b') generate ([],[]);");
+        buildPlan("a = foreach (load 'b') generate {({},{})};");
+        buildPlan("a = foreach (load 'b') generate {([],[])};");
+        buildPlan("a = foreach (load 'b') generate (({},{}));");
+        buildPlan("a = foreach (load 'b') generate (([],[]));");
+    }
{code}

> Empty complex constants (empty bag, empty tuple and empty map) should be supported
> ----------------------------------------------------------------------------------
>
>                 Key: PIG-773
>                 URL: https://issues.apache.org/jira/browse/PIG-773
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.3.0
>            Reporter: Pradeep Kamath
>            Priority: Minor
>         Attachments: pig-773.patch, pig-773_v2.patch
>
>
> We should be able to create empty bag constant using {}, empty tuple constant using (),
empty map constant using [] within a pig script

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message