Author: thejas
Date: Tue Jul 27 17:38:26 2010
New Revision: 979781

URL: http://svn.apache.org/viewvc?rev=979781&view=rev
Log:
PIG-1034: Pig does not support ORDER ... BY group alias (zjffdu)

Modified:
    hadoop/pig/trunk/CHANGES.txt
    hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
    hadoop/pig/trunk/test/org/apache/pig/test/TestOrderBy.java

Modified: hadoop/pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=979781&r1=979780&r2=979781&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Tue Jul 27 17:38:26 2010
@@ -106,6 +106,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
 
 BUG FIXES
 
+PIG-1034: Pig does not support ORDER ... BY group alias (zjffdu)
+
 PIG-1445: Pig error: ERROR 2013: Moving LOLimit in front of LOStream is not 
implemented (daijy)
 
 PIG-348:  -j command line option doesn't work (rding)

Modified: 
hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt?rev=979781&r1=979780&r2=979781&view=diff
==============================================================================
--- 
hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt 
(original)
+++ 
hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt 
Tue Jul 27 17:38:26 2010
@@ -2108,6 +2108,22 @@ int ColNameOrNum(Schema over) : 
                log.trace("Exiting ColNameOrNum");
                return i;
        }
+       | 
+       t = <GROUP> 
+       {       
+        try {
+                   if ( over == null ||  (i = over.getPosition(t.image)) == 
-1) {
+                           throw new ParseException("Invalid alias: " + 
t.image + " in " + over);
+                   } 
+        } catch (FrontendException fee) {
+               ParseException pe = new ParseException(fee.getMessage());
+               pe.initCause(fee);
+            throw pe;
+        }
+               
+               log.trace("Exiting ColNameOrNum");
+               return i;
+       }
        )
 }              
 

Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestOrderBy.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestOrderBy.java?rev=979781&r1=979780&r2=979781&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/TestOrderBy.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/TestOrderBy.java Tue Jul 27 
17:38:26 2010
@@ -227,5 +227,29 @@ public class TestOrderBy extends TestCas
                 "org.apache.pig.test.OrdDescNumeric; generate flatten(D); };",
                 false);
     }
+    
+    
+    // this test case is for JIRA_1034
+    @Test
+    public void testOrderByGroup() throws Exception{
+       tmpFile = File.createTempFile("test", "txt");
+       PrintStream ps = new PrintStream(new FileOutputStream(tmpFile));
+       for(int i = 0; i < 100; i++) {
+               ps.println(i);
+       }
+       ps.close();
+         
+       pig.registerQuery("a = load 'file:" + tmpFile +"' as (f1:int);");
+       pig.registerQuery("b = group a by $0;");
+       pig.registerQuery("c = order b by group;");
+       Iterator<Tuple> iter = pig.openIterator("c");
+       int count = 0;
+       while(iter.hasNext()){
+               Tuple tuple=iter.next();
+               assertEquals(count, tuple.get(0));
+               count++;
+       }
+       assertEquals(count, 100);
+    }
 
 }


Reply via email to