grunt parser fails for: load .. as \n (b:bag{});
-------------------------------------------------
Key: PIG-2086
URL: https://issues.apache.org/jira/browse/PIG-2086
Project: Pig
Issue Type: Bug
Components: grunt
Affects Versions: 0.10
Environment: mac 10.5.8
Reporter: Woody Anderson
this snippet fails:
{code}
IN4 = load '$in' using
com.zzz.Storage() as
( inpt:bag{} );
{code}
this works (as on same line as semi-colon)
{code}
IN4 = load '$in' using
com.zzz.Storage()
as ( inpt:bag{} );
{code}
this is the grunt error:
2011-05-20 20:19:34,934 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR
1200: <file loadstore.pig, line 68, column 16> mismatched input ';' expecting
RIGHT_PAREN
this only happens in cases where the types of the fields are complex e.g.
bags/tuples
eg. change the type of _inpt_ to be _chararray_ and it will parse.
this is very strange! and i spent hours debugging my schema writing skills and
reading QueryParser.g before simply trying "as (expr);" on the same line.
_all_ of my scripts had been written with the lines split the other way (with
lots of ctor args and as-clause elements: hence the line breaks), this is not
an issue if i don't load complicated types, but it fails in this particular
case.
This is quite unexpected and seems to be undocumented and a bug imho.
i don't know enough about antlr (i was a javacc person) to make sense of why
this would be an issue for the parser b/c the grammar looks good assuming
newline is basically whitespace.
though i can't figure out how newlines are treated in the grammar, there does
not seem to be a newline routine ala
https://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/antlr/antlr.html
I'm going to assume the grammar author is much more sophisticated than that
tutorial and knows how to fix this.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira