hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Dere (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-6264) Unbalanced number of HiveParser msgs.push/msgs.pop calls when doing lookahead
Date Tue, 28 Jan 2014 18:57:37 GMT

     [ https://issues.apache.org/jira/browse/HIVE-6264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jason Dere updated HIVE-6264:
-----------------------------

    Attachment: HIVE-6264.3.patch

Try running precommit test again, looks like the issues with Minimr tests have been fixed
(HIVE-6310).

> 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
>
>
> 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)

Mime
View raw message