hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Olga Natkovich (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-597) Pig does not handdle correctly the case where "*" is passed to UDF
Date Thu, 15 Jan 2009 00:35:01 GMT

    [ https://issues.apache.org/jira/browse/PIG-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12663950#action_12663950
] 

Olga Natkovich commented on PIG-597:
------------------------------------

Shravan, thanks for providing the background.

I still believe that we need to make "*" work like any other tuple. One reason is that a UDF
that works with"*" would not be able to work if any other tuple is passed to it which seems
wrong. I don't know of any UDFs other than ARITY and SIZE that are specifically written for
* so I think the impact to the users would be minimal.

> 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
>            Assignee: Shravan Matthur Narayanamurthy
>
> 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.


Mime
View raw message