[ 
https://issues.apache.org/jira/browse/HIVE-6264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13879079#comment-13879079
 ] 

Jason Dere commented on HIVE-6264:
----------------------------------

https://reviews.apache.org/r/17200/

> Unbalanced number of HiveParser msgs.push/msgs.pop calls when doing lookahead
> -----------------------------------------------------------------------------
>
>                 Key: HIVE-6264
>                 URL: https://issues.apache.org/jira/browse/HIVE-6264
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>         Attachments: HIVE-6264.1.patch
>
>
> HiveParser pushes/pops messages describing the current parse rule like so:
> {noformat}
> joinSource
> @init { gParent.msgs.push("join source"); }
> @after { gParent.msgs.pop(); }
> ...
> {noformat}
> The ANTLR generated code for the init/after actions looks like this:
> {noformat}
>          gParent.msgs.push("join source"); 
> ...
>             if ( state.backtracking==0 ) { gParent.msgs.pop(); }
> {noformat}
> If we have a parse rule that does some lookahead, the message is always 
> pushed onto the message stack since the init action has no check of 
> state.backtracking.  But that message is never popped because the after 
> action does check state.backtracking. As a result there can be a bunch of 
> parser context messages added to the stack which are never taken off.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to