Pig does not handdle correctly the case where "*" is passed to UDF ------------------------------------------------------------------
Key: PIG-597 URL: https://issues.apache.org/jira/browse/PIG-597 Project: Pig Issue Type: Bug Reporter: Olga Natkovich Script: ====== A = LOAD 'foo' USING PigStorage('\t'); B = FILTER A BY ARITY(*) < 5; DUMP B; Error: ===== 2009-01-05 21:46:56,355 [main] ERROR org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc - Caught error from UDF org.apache.pig.builtin.ARITY[org.apache.pig.data.DataByteArray cannot be cast to org.apache.pig.data.Tuple [org.apache.pig.data.DataByteArray cannot be cast to org.apache.pig.data.Tuple] Problem: ======= Santhosh tracked this to the following code in POUserFunc.java: if(op instanceof POProject && op.getResultType() == DataType.TUPLE){ 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; } } It seems to be unwrapping the tuple before passing it to the function. There is no comments so we are not sure why it is there; will need to run tests to see if removing it would solve this issue and not create others. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.