Author: olga
Date: Tue Sep 30 13:45:42 2008
New Revision: 700576

URL: http://svn.apache.org/viewvc?rev=700576&view=rev
Log:
PIG-437: as causing parser errors

Modified:
    incubator/pig/branches/types/CHANGES.txt
    
incubator/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
    incubator/pig/branches/types/test/org/apache/pig/test/TestGrunt.java

Modified: incubator/pig/branches/types/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/CHANGES.txt?rev=700576&r1=700575&r2=700576&view=diff
==============================================================================
--- incubator/pig/branches/types/CHANGES.txt (original)
+++ incubator/pig/branches/types/CHANGES.txt Tue Sep 30 13:45:42 2008
@@ -261,3 +261,5 @@
     PIG-463: POCast changes (pradeepk via olgan)
 
     PIG-427: casting input to UDFs
+     
+    PIG-437: as in alias names causing problems (sms via olgan)

Modified: 
incubator/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj?rev=700576&r1=700575&r2=700576&view=diff
==============================================================================
--- 
incubator/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
 (original)
+++ 
incubator/pig/branches/types/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj
 Tue Sep 30 13:45:42 2008
@@ -192,8 +192,8 @@
 {
        <"'"> {prevState = PIG_START;} : IN_STRING
 |      <"`"> {prevState = PIG_START;} : IN_COMMAND
-|      <["A","a"]["S","s"]> {prevState = PIG_START;} : SCHEMA_DEFINITION
-|   <["G","g"]["E","e"]["N","n"]["E","e"]["R","r"]["A","a"]["T","t"]["E","e"]> 
{prevState = PIG_START;} : GENERATE
+|      <(" " | "\t")*["A","a"]["S","s"](" " | "\t")* > {prevState = 
PIG_START;} : SCHEMA_DEFINITION
+|   <(" " | 
"\t")*["G","g"]["E","e"]["N","n"]["E","e"]["R","r"]["A","a"]["T","t"]["E","e"]("
 " | "\t")* > {prevState = PIG_START;} : GENERATE
 |       <"{"> {pigBlockLevel = 1;} : IN_BLOCK
 |       <"}"> {if (true) throw new TokenMgrError("Unmatched '}'", 
TokenMgrError.LEXICAL_ERROR);}
 |       <";"> : PIG_END
@@ -241,7 +241,7 @@
         saveState(prevState);
         prevState = GENERATE;
     } : BAG_CONSTANT
-|      <["A","a"]["S","s"]> 
+|      <(" " | "\t")+["A","a"]["S","s"](" " | "\t")+> 
     {
         prevState = getState(prevState);
         saveState(prevState);
@@ -289,8 +289,8 @@
 <IN_BLOCK> MORE :
 {
        <"\""> {prevState = IN_BLOCK;} : IN_STRING
-|      <["A","a"]["S","s"]> {prevState = IN_BLOCK;} : SCHEMA_DEFINITION
-|   <["G","g"]["E","e"]["N","n"]["E","e"]["R","r"]["A","a"]["T","t"]["E","e"]> 
{prevState = IN_BLOCK;} : GENERATE
+|      <(" " | "\t")*["A","a"]["S","s"](" " | "\t")* > {prevState = IN_BLOCK;} 
: SCHEMA_DEFINITION
+|   <(" " | 
"\t")*["G","g"]["E","e"]["N","n"]["E","e"]["R","r"]["A","a"]["T","t"]["E","e"]("
 " | "\t")*> {prevState = IN_BLOCK;} : GENERATE
 |      <"{"> {pigBlockLevel++;}
 |       <"}"(";")?> {pigBlockLevel--; if (pigBlockLevel == 0) 
SwitchTo(PIG_END);}
 |      <"'"> {prevState = IN_BLOCK;} : IN_STRING

Modified: incubator/pig/branches/types/test/org/apache/pig/test/TestGrunt.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/TestGrunt.java?rev=700576&r1=700575&r2=700576&view=diff
==============================================================================
--- incubator/pig/branches/types/test/org/apache/pig/test/TestGrunt.java 
(original)
+++ incubator/pig/branches/types/test/org/apache/pig/test/TestGrunt.java Tue 
Sep 30 13:45:42 2008
@@ -146,4 +146,125 @@
     
         grunt.exec();
     }
+
+    @Test 
+    public void testParsingAsInForeachBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast); b = group a by foo; c 
= foreach b {generate SUM(a.fast) as fast;};\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingAsInForeachWithOutBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast); b = group a by foo; c 
= foreach b generate SUM(a.fast) as fast;\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingWordWithAsInForeachBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast); b = group a by foo; c 
= foreach b {generate SUM(a.fast);};\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingWordWithAsInForeachWithOutBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast); b = group a by foo; c 
= foreach b generate SUM(a.fast);\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+
+    @Test 
+    public void testParsingGenerateInForeachBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast, regenerate); b = group 
a by foo; c = foreach b {generate a.regenerate;};\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingGenerateInForeachWithOutBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast, regenerate); b = group 
a by foo; c = foreach b generate a.regenerate;\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingAsGenerateInForeachBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast, regenerate); b = group 
a by foo; c = foreach b {generate {(1, '1', 0.4f),(2, '2', 0.45)} as b: 
bag{t(i: int, cease:chararray, degenerate: double)}, SUM(a.fast) as fast, 
a.regenerate as degenerated;};\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
+
+    @Test 
+    public void testParsingAsGenerateInForeachWithOutBlock() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'foo' as (foo, fast, regenerate); b = group 
a by foo; c = foreach b generate {(1, '1', 0.4f),(2, '2', 0.45)} as b: bag{t(i: 
int, cease:chararray, degenerate: double)}, SUM(a.fast) as fast, a.regenerate 
as degenerated;\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        grunt.exec();
+    }
 }


Reply via email to