Parameter to UDF which is an alias returned in another UDF in nested foreach 
causes incorrect results
-----------------------------------------------------------------------------------------------------

                 Key: PIG-693
                 URL: https://issues.apache.org/jira/browse/PIG-693
             Project: Pig
          Issue Type: Bug
          Components: impl
    Affects Versions: types_branch
            Reporter: Viraj Bhat
             Fix For: types_branch


Consider the following Pig Script
{code}
register myudf.jar;

A = load 'one.txt' using PigStorage() as ( one: int ); --use this dummy file to 
start execution

B = foreach A {
        dec = myudf.URLDECODE('hello');
        str1 = myudf.REPLACEALL(dec, '[\\u0000-\\u0020]', ' '); -- ERROR
        str2 = myudf.REPLACEALL('hello', '[\\u0000-\\u0020]', ' ');
        generate
                dec,
                str1,
                str2;
        };
describe B;

dump B;

{code}

where one.txt is a file which contains number one (1) for starting execution of 
the Pig script!!
{code}
describe B; 
{code}
 returns the following:

B: {urldecode_9: chararray,replaceall_urldecode_10_11: chararray,replaceall_12: 
chararray}

{code}
dump B;
{code}

returns 

(hello,[\u0000-\u0020],hello)

The result should be:



There is a workaround for the same, 

{code}
register myudf.jar;

A = load 'one.txt' using PigStorage() as ( one: int );

B = foreach A {
        dec = myudf.URLDECODE('hello');
        generate
                dec as dec,
                myudf.REPLACEALL(dec, '[\\u0000-\\u0020]', ' ') as str1,
                myudf.REPLACEALL('hello', '[\\u0000-\\u0020]', ' ') as str2;
        };
describe B;

dump B;

{code}

where 

{code}
dump B;
{code}

returns (hello,hello,hello)


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to