[ https://issues.apache.org/jira/browse/HIVE-6264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Harish Butani updated HIVE-6264: -------------------------------- Resolution: Fixed Status: Resolved (was: Patch Available) thanks Jason > 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, HIVE-6264.2.patch, HIVE-6264.3.patch, > HIVE-6264.4.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)