You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2013/03/15 17:56:18 UTC

svn commit: r1457017 - in /pig/trunk: CHANGES.txt src/org/apache/pig/parser/PigMacro.java test/org/apache/pig/test/TestSplit.java

Author: cheolsoo
Date: Fri Mar 15 16:56:18 2013
New Revision: 1457017

URL: http://svn.apache.org/r1457017
Log:
PIG-3239: Unable to return multiple values from a macro using SPLIT (dreambird via cheolsoo)

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/parser/PigMacro.java
    pig/trunk/test/org/apache/pig/test/TestSplit.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1457017&r1=1457016&r2=1457017&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Mar 15 16:56:18 2013
@@ -137,6 +137,8 @@ PIG-3013: BinInterSedes improve chararra
 
 BUG FIXES
 
+PIG-3239: Unable to return multiple values from a macro using SPLIT (dreambird via cheolsoo)
+
 PIG-3077: TestMultiQueryLocal should not write in /tmp (dreambird via cheolsoo)
 
 PIG-3081: Pig progress stays at 0% for the first job in hadoop 23 (rohini)

Modified: pig/trunk/src/org/apache/pig/parser/PigMacro.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/parser/PigMacro.java?rev=1457017&r1=1457016&r2=1457017&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/parser/PigMacro.java (original)
+++ pig/trunk/src/org/apache/pig/parser/PigMacro.java Fri Mar 15 16:56:18 2013
@@ -298,7 +298,7 @@ class PigMacro {
                 testSet.add(st.sval.substring(1));
             } else if (matchDollarAlias(st, false)) {
                 String prevWord = st.sval;
-                if (matchWord(st, "if", true)) {
+                if (matchWord(st, "if", true) || matchWord(st, "otherwise", true)) {
                     testSet.add(prevWord.substring(1));
                 } else if (matchChar(st, '=', true) && !matchChar(st, '=', true)) {
                      testSet.add(prevWord.substring(1)); 

Modified: pig/trunk/test/org/apache/pig/test/TestSplit.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestSplit.java?rev=1457017&r1=1457016&r2=1457017&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestSplit.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestSplit.java Fri Mar 15 16:56:18 2013
@@ -74,6 +74,27 @@ public class TestSplit {
         Util.checkQueryOutputsAfterSort(it, expectedRes);
     }
     
+    @Test
+    public void testSplitMacro() throws IOException {
+        String query =
+            "define split_into_two (A,key) returns B, C {" +
+            "    SPLIT $A INTO $B IF $key<4, $C OTHERWISE;" +
+            "};"  +
+            "a = load '" + file.getAbsolutePath() + "' as (id:int);" +
+            "B, C = split_into_two(a, id);"
+            ;
+
+        Util.registerMultiLineQuery(pig, query);
+        Iterator<Tuple> it = pig.openIterator("B");
+
+        List<Tuple> expectedRes = Util.getTuplesFromConstantTupleStrings(new String[] { "(1)", "(2)", "(3)" });
+        Util.checkQueryOutputsAfterSort(it, expectedRes);
+
+        it = pig.openIterator("C");
+        expectedRes = Util.getTuplesFromConstantTupleStrings(new String[] { "(4)", "(5)", "(6)" });
+        Util.checkQueryOutputsAfterSort(it, expectedRes);
+    }
+
     @Test(expected=FrontendException.class)
     public void testSplitNondeterministic() throws IOException {
         String query =