Author: gates Date: Tue Sep 23 10:34:53 2008 New Revision: 698256 URL: http://svn.apache.org/viewvc?rev=698256&view=rev Log: PIG-446 Changed POProject to emit a null when it tries to project a non-existent column instead of passing along the exception it gets.
Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ExpressionOperator.java incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ExpressionOperator.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ExpressionOperator.java?rev=698256&r1=698255&r2=698256&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ExpressionOperator.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ExpressionOperator.java Tue Sep 23 10:34:53 2008 @@ -39,7 +39,7 @@ public abstract class ExpressionOperator extends PhysicalOperator { private static final long serialVersionUID = 1L; - private Log log = LogFactory.getLog(getClass()); + protected Log log = LogFactory.getLog(getClass()); public ExpressionOperator(OperatorKey k) { this(k,-1); Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java?rev=698256&r1=698255&r2=698256&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java Tue Sep 23 10:34:53 2008 @@ -140,12 +140,25 @@ if (star) { return res; } else if(columns.size() == 1) { - ret = inpValue.get(columns.get(0)); + try { + ret = inpValue.get(columns.get(0)); + } catch (ExecException ee) { + log.warn("Attempt to access field " + + " which was not found in the input"); + res.returnStatus = POStatus.STATUS_NULL; + ret = null; + } } else { ArrayList<Object> objList = new ArrayList<Object>(columns.size()); for(int i: columns) { - objList.add(inpValue.get(i)); + try { + objList.add(inpValue.get(i)); + } catch (ExecException ee) { + log.warn("Attempt to access field " + i + + " which was not found in the input"); + objList.add(null); + } } ret = tupleFactory.newTuple(objList); }