Author: rding
Date: Fri Apr 22 15:55:11 2011
New Revision: 1095953

URL: http://svn.apache.org/viewvc?rev=1095953&view=rev
Log:
PIG-2005: Discrepancy in the way dry run handles semicolon in macro definition

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/parser/DryRunGruntParser.java
    pig/trunk/test/org/apache/pig/test/TestMacroExpansion.java

Modified: pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1095953&r1=1095952&r2=1095953&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Apr 22 15:55:11 2011
@@ -172,6 +172,8 @@ PIG-1696: Performance: Use System.arrayc
 
 BUG FIXES
 
+PIG-2005: Discrepancy in the way dry run handles semicolon in macro definition 
(rding)
+
 PIG-1281: Detect org.apache.pig.data.DataByteArray cannot be cast to 
  org.apache.pig.data.Tuple type of errors at Compile Type during 
  creation of logical plan (thejas)

Modified: pig/trunk/src/org/apache/pig/parser/DryRunGruntParser.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/parser/DryRunGruntParser.java?rev=1095953&r1=1095952&r2=1095953&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/parser/DryRunGruntParser.java (original)
+++ pig/trunk/src/org/apache/pig/parser/DryRunGruntParser.java Fri Apr 22 
15:55:11 2011
@@ -227,6 +227,11 @@ public class DryRunGruntParser extends P
 
     @Override
     protected void processPig(String cmd) throws IOException {
+        
+        if (cmd.charAt(cmd.length() - 1) != ';') {
+            cmd += ";";
+        }
+        
         CommonTokenStream tokenStream = QueryParserDriver.tokenize(cmd, 
source);
         Tree ast = null;
 

Modified: pig/trunk/test/org/apache/pig/test/TestMacroExpansion.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestMacroExpansion.java?rev=1095953&r1=1095952&r2=1095953&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestMacroExpansion.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestMacroExpansion.java Fri Apr 22 
15:55:11 2011
@@ -1082,6 +1082,25 @@ public class TestMacroExpansion {
         testMacro(macro, expected);
     }
     
+    @Test // PIG-2005
+    public void noSemiColonTest() throws Exception {
+        String macro = "define group_and_count (A) returns B {\n" +
+            "    $B = FILTER $A BY ($1 == 8) OR (NOT ($0+$2 > $1));\n" +
+            "}\n";
+        
+        String script = 
+            "alpha = load 'users' as (user, age, zip);\n" +
+            "gamma = group_and_count (alpha);\n" +
+            "store gamma into 'byuser';\n";
+        
+        String expected = 
+            "alpha = load 'users' as (user, age, zip);\n" +
+            "gamma = FILTER alpha BY (($1 == 8) OR ( NOT ($0 + $2 > $1)));\n" +
+            "store gamma INTO 'byuser';\n";
+        
+        verify(macro + script, expected);
+    }
+    
     @Test
     public void test1() throws Exception {
         String query = "A = load 'x' as ( u:int, v:long, w:bytearray); " + 


Reply via email to