You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ya...@apache.org on 2010/11/17 17:28:34 UTC
svn commit: r1036102 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
test/org/apache/pig/test/TestFilterUDF.java
Author: yanz
Date: Wed Nov 17 16:28:34 2010
New Revision: 1036102
URL: http://svn.apache.org/viewvc?rev=1036102&view=rev
Log:
PIG-1731: Stack Overflows where there are composite logical expressions on UDFs using the new logical plan (yanz)
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
pig/trunk/test/org/apache/pig/test/TestFilterUDF.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1036102&r1=1036101&r2=1036102&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Nov 17 16:28:34 2010
@@ -220,6 +220,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
BUG FIXES
+PIG-1731: Stack Overflows where there are composite logical expressions on UDFs using the new logical plan (yanz)
+
PIG-1723: Need to limit the length of Pig counter names (rding)
PIG-1714: Option mapred.output.compress doesn't work in Pig 0.8 but worked in
Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java?rev=1036102&r1=1036101&r2=1036102&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java Wed Nov 17 16:28:34 2010
@@ -65,7 +65,7 @@ public class UserFuncExpression extends
public boolean isEqual(Operator other) throws FrontendException {
if( other instanceof UserFuncExpression ) {
UserFuncExpression exp = (UserFuncExpression)other;
- return plan.isEqual(exp.plan) && mFuncSpec.equals(exp.mFuncSpec );
+ return mFuncSpec.equals(exp.mFuncSpec );
} else {
return false;
}
Modified: pig/trunk/test/org/apache/pig/test/TestFilterUDF.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestFilterUDF.java?rev=1036102&r1=1036101&r2=1036102&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestFilterUDF.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestFilterUDF.java Wed Nov 17 16:28:34 2010
@@ -166,4 +166,43 @@ public class TestFilterUDF {
assertTrue(t.equals(expectedTuple));
}
}
+
+ @Test
+ public void testFilterUDFusingDefine2() throws Exception{
+ File inputFile= createFile(
+ new String[]{
+ "www.paulisageek.com\t4",
+ "www.yahoo.com\t12344",
+ "google.com\t1",
+ "us2.amazon.com\t4141"
+ }
+ );
+
+ File filterFile = createFile(
+ new String[]{
+ "12344"
+ }
+ );
+
+ pigServer.registerQuery("define FILTER_CRITERION "
+ + FILTERFROMFILE.class.getName()
+ + "('"
+ + Util.generateURI(filterFile.toString(), pigServer
+ .getPigContext()) + "');");
+ pigServer.registerQuery("a = LOAD '"
+ + Util.generateURI(inputFile.toString(), pigServer
+ .getPigContext())
+ + "' as (url:chararray, numvisits:int);");
+ pigServer.registerQuery("b = filter a by FILTER_CRITERION(numvisits) AND FILTER_CRITERION(numvisits);");
+
+ Tuple expectedTuple = tf.newTuple();
+ expectedTuple.append(new String("www.yahoo.com"));
+ expectedTuple.append(new Integer("12344"));
+
+ Iterator<Tuple> iter = pigServer.openIterator("b");
+ while(iter.hasNext()){
+ Tuple t = iter.next();
+ assertTrue(t.equals(expectedTuple));
+ }
+ }
}