[
https://issues.apache.org/jira/browse/HIVE-15891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15868906#comment-15868906
]
Wei Zheng commented on HIVE-15891:
----------------------------------
I tried that, and it works for existing tests that contain subquery. But this
check will fail MERGE statement.
{code}
if (!hasSubQuery) {
throw new RuntimeException("A matching node should have been found,
otherwise it means " +
"this is an UPDATE/DELETE/MERGE query but the AST got modified!");
}
{code}
Do we want to add another condition to rule out MERGE?
> Detect query rewrite scenario for UPDATE/DELETE/MERGE and fail fast
> -------------------------------------------------------------------
>
> Key: HIVE-15891
> URL: https://issues.apache.org/jira/browse/HIVE-15891
> Project: Hive
> Issue Type: Bug
> Components: Transactions
> Affects Versions: 2.2.0
> Reporter: Wei Zheng
> Assignee: Wei Zheng
> Attachments: HIVE-15891.1.patch, HIVE-15891.2.patch
>
>
> Currently ACID UpdateDeleteSemanticAnalyzer directly manipulates the AST tree
> but it's different from the general approach of modifying the token stream
> and thus will cause AST tree mismatch if there is any rewrite happening after
> UpdateDeleteSemanticAnalyzer.
> The long term solution will be to rewrite the AST handling logic in
> UpdateDeleteSemanticAnalyzer, to make it consistent with the general approach.
> This ticket will for now detect the error prone cases and fail early.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)