Uploaded image for project: 'Pig'
  1. Pig
  2. PIG-597

Pig does not handdle correctly the case where "*" is passed to UDF

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.2.0
    • Component/s: None
    • Labels:
      None

      Description

      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.

        Attachments

        1. 597.patch
          3 kB
          Shravan Matthur Narayanamurthy

          Activity

            People

            • Assignee:
              shravanmn Shravan Matthur Narayanamurthy
              Reporter:
              olgan Olga Natkovich
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: