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); " +