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.