Adding newlines to format foreach statement with constants causes parse errors
------------------------------------------------------------------------------
Key: PIG-579
URL: https://issues.apache.org/jira/browse/PIG-579
Project: Pig
Issue Type: Bug
Components: impl
Affects Versions: types_branch
Reporter: David Ciemiewicz
The following code example files with parse errors on step D:
{code}
A = LOAD 'student_data' AS (name: chararray, age: int, gpa: float);
B = LOAD 'voter_data' AS (name: chararray, age: int, registration: chararray,
contributions: float);
C = COGROUP A BY name, B BY name;
D = FOREACH C GENERATE
group,
flatten((not IsEmpty(A) ? A : (bag{tuple(chararray, int,
float)}){(null, null, null)})),
flatten((not IsEmpty(B) ? B : (bag{tuple(chararray, int, chararray,
float)}){(null,null,null, null)}));
dump D;
{code}
I get the parse error:
Caused by: org.apache.pig.impl.logicalLayer.parser.ParseException: Encountered
"not IsEmpty ( A ) ? A : ( bag { tuple ( chararray , int , float ) } ;" at line
9, column 18.
Was expecting one of:
"(" ...
"-" ...
"tuple" ...
"bag" ...
"map" ...
"int" ...
"long" ...
...
However, if I simply remove the new lines from statement D and make it:
{code}
D = FOREACH C GENERATE group, flatten((not IsEmpty(A) ? A :
(bag{tuple(chararray, int, float)}){(null, null, null)})), flatten((not
IsEmpty(B) ? B : (bag{tuple(chararray, int, chararray,
float)}){(null,null,null, null)}));
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.