You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by xu...@apache.org on 2011/04/22 20:06:32 UTC
svn commit: r1095974 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/parser/QueryParser.g
test/org/apache/pig/parser/TestLogicalPlanGenerator.java
Author: xuefu
Date: Fri Apr 22 18:06:31 2011
New Revision: 1095974
URL: http://svn.apache.org/viewvc?rev=1095974&view=rev
Log:
PIG-2007: Parsing error when map key referred directly from udf in nested foreach
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/parser/QueryParser.g
pig/trunk/test/org/apache/pig/parser/TestLogicalPlanGenerator.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1095974&r1=1095973&r2=1095974&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Apr 22 18:06:31 2011
@@ -42,6 +42,8 @@ PIG-1876: Typed map for Pig (daijy)
IMPROVEMENTS
+PIG-2007: Parsing error when map key referred directly from udf in nested foreach (xuefu)
+
PIG-2000: Pig gives incorrect error message dealing with scalar projection (xuefu)
PIG-2002: Regression: Pig gives error "Projection with nothing to reference!" for a valid query (xuefu)
Modified: pig/trunk/src/org/apache/pig/parser/QueryParser.g
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/parser/QueryParser.g?rev=1095974&r1=1095973&r2=1095974&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/parser/QueryParser.g (original)
+++ pig/trunk/src/org/apache/pig/parser/QueryParser.g Fri Apr 22 18:06:31 2011
@@ -556,16 +556,15 @@ nested_command_list : ( nested_command S
|
;
-nested_command : IDENTIFIER EQUAL func_eval
- -> ^( NESTED_CMD_ASSI IDENTIFIER func_eval )
- | IDENTIFIER EQUAL nested_op
- -> ^( NESTED_CMD IDENTIFIER nested_op )
+nested_command : ( IDENTIFIER EQUAL col_ref PERIOD col_ref_list { input.LA( 1 ) == SEMI_COLON }? ) => ( IDENTIFIER EQUAL nested_proj )
+ -> ^( NESTED_CMD IDENTIFIER nested_proj )
| IDENTIFIER EQUAL expr
-> ^( NESTED_CMD_ASSI IDENTIFIER expr )
+ | IDENTIFIER EQUAL nested_op
+ -> ^( NESTED_CMD IDENTIFIER nested_op )
;
-nested_op : nested_proj
- | nested_filter
+nested_op : nested_filter
| nested_sort
| nested_distinct
| nested_limit
Modified: pig/trunk/test/org/apache/pig/parser/TestLogicalPlanGenerator.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/parser/TestLogicalPlanGenerator.java?rev=1095974&r1=1095973&r2=1095974&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/parser/TestLogicalPlanGenerator.java (original)
+++ pig/trunk/test/org/apache/pig/parser/TestLogicalPlanGenerator.java Fri Apr 22 18:06:31 2011
@@ -238,6 +238,20 @@ public class TestLogicalPlanGenerator {
}
@Test
+ public void test20() {
+ String query = "A = load 'x' using PigStorage() as (a:int,b:chararray);\n" +
+ "B = foreach A { C = TOMAP()#'key1'; generate C as C; };";
+ generateLogicalPlan( query );
+ }
+
+ @Test
+ public void test21() {
+ String query = "A = load 'x' as (u, v);\n" +
+ "B = foreach A { S = u; T = org.apache.pig.builtin.TOMAP(); generate S, T;};";
+ generateLogicalPlan( query );
+ }
+
+ @Test
public void testFilter() {
String query = "A = load 'x' as ( u:int, v:long, w:bytearray); " +
"B = filter A by 2 > 1;\n" +