You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by th...@apache.org on 2011/05/16 17:58:26 UTC
svn commit: r1103776 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java
test/org/apache/pig/test/TestProjectStarRangeInUdf.java
Author: thejas
Date: Mon May 16 15:58:26 2011
New Revision: 1103776
URL: http://svn.apache.org/viewvc?rev=1103776&view=rev
Log:
PIG-2072: NPE when udf has project-star argument and input schema is null
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java
pig/trunk/test/org/apache/pig/test/TestProjectStarRangeInUdf.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1103776&r1=1103775&r2=1103776&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Mon May 16 15:58:26 2011
@@ -44,8 +44,6 @@ BUG FIXES
PIG-2044: Patten match bug in org.apache.pig.newplan.optimizer.Rule (knoguchi via daijy)
-PIG-1938: support project-range as udf argument (thejas)
-
PIG-2048: Add zookeeper to pig jar (gbowyer via gates)
PIG-2008: Cache outputFormat in HBaseStorage (thedatachef via gates)
@@ -72,6 +70,8 @@ PIG-1876: Typed map for Pig (daijy)
IMPROVEMENTS
+PIG-1938: support project-range as udf argument (thejas)
+
PIG-2059: PIG doesn't validate incomplete query in batch mode even if -c option is given (xuefu)
PIG-2062: Script silently ended (xuefu)
@@ -224,6 +224,8 @@ PIG-1696: Performance: Use System.arrayc
BUG FIXES
+PIG-2072: NPE when udf has project-star argument and input schema is null (thejas)
+
PIG-2075: Bring back TestNewPlanPushUpFilter (daijy)
PIG-1827: When passing a parameter to Pig, if the value contains $ it has to be escaped for no apparent reason (rding)
Modified: pig/trunk/src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java?rev=1103776&r1=1103775&r2=1103776&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/visitor/TypeCheckingExpVisitor.java Mon May 16 15:58:26 2011
@@ -973,6 +973,8 @@ public class TypeCheckingExpVisitor exte
for(int i=0;i<s.size();i++){
try {
FieldSchema fs=s.getField(i);
+ if(fs == null)
+ return false;
if(fs.type==DataType.BYTEARRAY){
return true;
}
@@ -1098,7 +1100,10 @@ public class TypeCheckingExpVisitor exte
FieldSchema inputFieldSchema = i.next();
FieldSchema udfFieldSchema = j.next();
-
+ if(inputFieldSchema == null)
+ return false;
+
+
if(ignoreByteArrays && inputFieldSchema.type == DataType.BYTEARRAY) {
continue;
}
@@ -1249,6 +1254,9 @@ public class TypeCheckingExpVisitor exte
int castCnt=0;
for(int i=0;i<sFields.size();i++){
FieldSchema sFS = sFields.get(i);
+ if(sFS == null){
+ return INF;
+ }
// if we have a byte array do not include it
// in the computation of the score - bytearray
Modified: pig/trunk/test/org/apache/pig/test/TestProjectStarRangeInUdf.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestProjectStarRangeInUdf.java?rev=1103776&r1=1103775&r2=1103776&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestProjectStarRangeInUdf.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestProjectStarRangeInUdf.java Mon May 16 15:58:26 2011
@@ -100,6 +100,30 @@ public class TestProjectStarRangeInUdf
}
@Test
+ public void testProjStarExpandInForeach1NegativeNoSchema() throws IOException{
+
+ String query;
+
+ query =
+ " l1 = load '" + INP_FILE_5FIELDS + "' ;"
+ + "f = foreach l1 generate CONCAT(*) as ct;"
+ ;
+ Util.checkExceptionMessage(query, "f",
+ "Could not infer the matching function for " +
+ "org.apache.pig.builtin.CONCAT");
+
+
+ query =
+ " l1 = load '" + INP_FILE_5FIELDS + "' ;"
+ + "f = foreach l1 generate SIZE(*) as ct;"
+ ;
+ Util.checkExceptionMessage(query, "f",
+ "Could not infer the matching function for " +
+ "org.apache.pig.builtin.SIZE");
+
+ }
+
+ @Test
public void testProjStarExpandInForeach2() throws IOException {
String query;