You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Eugene Koifman (JIRA)" <ji...@apache.org> on 2016/05/03 04:29:12 UTC

[jira] [Updated] (HIVE-11848) tables in subqueries don't get locked

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

Eugene Koifman updated HIVE-11848:
----------------------------------
    Status: Patch Available  (was: Open)

> tables in subqueries don't get locked
> -------------------------------------
>
>                 Key: HIVE-11848
>                 URL: https://issues.apache.org/jira/browse/HIVE-11848
>             Project: Hive
>          Issue Type: Bug
>          Components: Locking, Transactions
>    Affects Versions: 1.0.0
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>            Priority: Critical
>         Attachments: HIVE-11848.patch
>
>
> Consider
> {noformat}
> update acidTbl set b=19 where acidTbl.b in(select I.b from nonAcidOrcTbl I where I.a = 3)
> {noformat}
> noAcidOrcTbl doesn't get locked at all.  (SHARED_WRITE is taken on acidTbl).
> Same for __delete__ with subquery
> This is is because the ReadEntity for nonAcidOrcTbl is skipped by
> {noformat}
>     for (ReadEntity input : plan.getInputs()) {
>       if (!input.needsLock() || input.isUpdateOrDelete()) {
>         // We don't want to acquire readlocks during update or delete as we'll be acquiring write
>         // locks instead.
>         continue;
>       }
> {noformat}
> whatever sets isUpdateOrDelete() flag doesn't pay attention to whether the table is written to or not.
> HIVE-10150 was a similar issue, abstractly



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)