Eugene Koifman created HIVE-11848:
-------------------------------------

             Summary: 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
            Reporter: Eugene Koifman
            Assignee: Eugene Koifman


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

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)

Reply via email to