Author: gates Date: Wed Aug 27 14:42:11 2008 New Revision: 689631 URL: http://svn.apache.org/viewvc?rev=689631&view=rev Log: PIG-359. Shravan's patch to fix * semantics in generate and when passed as an argument to a UDF.
Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java incubator/pig/branches/types/test/org/apache/pig/test/TestPOUserFunc.java incubator/pig/branches/types/test/org/apache/pig/test/data/GoldenFiles/ComplexForeach.gld Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java?rev=689631&r1=689630&r2=689631&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java Wed Aug 27 14:42:11 2008 @@ -152,13 +152,19 @@ } if(temp.returnStatus!=POStatus.STATUS_OK) return temp; - + + if(op instanceof POProject){ + POProject projOp = (POProject)op; + if(projOp.isStar()){ + Tuple trslt = (Tuple) temp.result; + Tuple rslt = (Tuple) res.result; + for(int i=0;i<trslt.size();i++) + rslt.append(trslt.get(i)); + continue; + } + } ((Tuple)res.result).append(temp.result); } - Tuple rslt = ((Tuple)res.result); - if(rslt.size()==1 && rslt.get(0) instanceof Tuple){ - res.result = rslt.get(0); - } res.returnStatus = temp.returnStatus; return res; } Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java?rev=689631&r1=689630&r2=689631&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java Wed Aug 27 14:42:11 2008 @@ -17,6 +17,7 @@ import org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan; import org.apache.pig.impl.plan.OperatorKey; @@ -331,8 +332,13 @@ private void getLeaves() { if (inputPlans != null) { + int i=-1; for(PhysicalPlan p : inputPlans) { - planLeaves.add((PhysicalOperator)p.getLeaves().get(0)); + ++i; + PhysicalOperator leaf = (PhysicalOperator)p.getLeaves().get(0); + planLeaves.add(leaf); + if(leaf instanceof POProject && ((POProject)leaf).isStar()) + isToBeFlattened.set(i, true); } } } Modified: incubator/pig/branches/types/test/org/apache/pig/test/TestPOUserFunc.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/TestPOUserFunc.java?rev=689631&r1=689630&r2=689631&view=diff ============================================================================== --- incubator/pig/branches/types/test/org/apache/pig/test/TestPOUserFunc.java (original) +++ incubator/pig/branches/types/test/org/apache/pig/test/TestPOUserFunc.java Wed Aug 27 14:42:11 2008 @@ -55,7 +55,13 @@ @Override public Integer exec(Tuple input) throws IOException { - return new Integer(input.size()); + try { + return new Integer(((Tuple)input.get(0)).size()); + } catch (ExecException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return 0; } @Override Modified: incubator/pig/branches/types/test/org/apache/pig/test/data/GoldenFiles/ComplexForeach.gld URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/data/GoldenFiles/ComplexForeach.gld?rev=689631&r1=689630&r2=689631&view=diff ============================================================================== --- incubator/pig/branches/types/test/org/apache/pig/test/data/GoldenFiles/ComplexForeach.gld (original) +++ incubator/pig/branches/types/test/org/apache/pig/test/data/GoldenFiles/ComplexForeach.gld Wed Aug 27 14:42:11 2008 @@ -1,4 +1,4 @@ -New For Each(false)[bag] - Test-Plan-Builder-16 +New For Each(true)[bag] - Test-Plan-Builder-16 | | | Project[tuple][*] - Test-Plan-Builder-15 | |