You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2008/10/21 01:36:09 UTC

svn commit: r706460 - in /incubator/pig/branches/types: CHANGES.txt src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj test/org/apache/pig/test/TestGrunt.java

Author: olga
Date: Mon Oct 20 16:36:09 2008
New Revision: 706460

URL: http://svn.apache.org/viewvc?rev=706460&view=rev
Log:
PIG-499: parser issue with as

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=706460&r1=706459&r2=706460&view=diff
==============================================================================
--- incubator/pig/branches/types/CHANGES.txt (original)
+++ incubator/pig/branches/types/CHANGES.txt Mon Oct 20 16:36:09 2008
@@ -291,3 +291,5 @@
 
     PIG-500: Load Func for POCast is not being set in some cases (sms via
     olgan)
+
+    PIG-499: parser issue with as (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=706460&r1=706459&r2=706460&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 Mon Oct 20 16:36:09 2008
@@ -192,8 +192,8 @@
 {
 	<"'"> {prevState = PIG_START;} : IN_STRING
 |	<"`"> {prevState = PIG_START;} : IN_COMMAND
-|	<(" " | "\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
+|	<(" " | "\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
@@ -289,8 +289,8 @@
 <IN_BLOCK> MORE :
 {
 	<"\""> {prevState = IN_BLOCK;} : IN_STRING
-|	<(" " | "\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
+|	<(" " | "\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=706460&r1=706459&r2=706460&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 Mon Oct 20 16:36:09 2008
@@ -77,7 +77,7 @@
         PigServer server = new PigServer("MAPREDUCE");
         PigContext context = server.getPigContext();
         
-        String strCmd = "a = load 'input1'as (b: bag{t(i: int, c:chararray, f: float)});\n";
+        String strCmd = "a = load 'input1' as (b: bag{t(i: int, c:chararray, f: float)});\n";
         
         ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
         InputStreamReader reader = new InputStreamReader(cmd);
@@ -88,6 +88,25 @@
     }
 
     @Test 
+    public void testBagSchemaFail() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "a = load 'input1'as (b: bag{t(i: int, c:chararray, f: float)});\n";
+        
+        ByteArrayInputStream cmd = new ByteArrayInputStream(strCmd.getBytes());
+        InputStreamReader reader = new InputStreamReader(cmd);
+        
+        Grunt grunt = new Grunt(new BufferedReader(reader), context);
+    
+        try {
+            grunt.exec();
+        } catch (Exception e) {
+            assertTrue(e.getMessage().contains("Encountered \";\""));
+        }
+    }
+
+    @Test 
     public void testBagConstant() throws Throwable {
         PigServer server = new PigServer("MAPREDUCE");
         PigContext context = server.getPigContext();
@@ -207,6 +226,21 @@
         grunt.exec();
     }
 
+    @Test 
+    public void testParsingWordWithAsInForeachWithOutBlock2() throws Throwable {
+        PigServer server = new PigServer("MAPREDUCE");
+        PigContext context = server.getPigContext();
+        
+        String strCmd = "cash = load 'foo' as (foo, fast); b = foreach cash generate fast * 2.0;\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 {