[ https://issues.apache.org/jira/browse/HIVE-11848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15269526#comment-15269526 ]
Eugene Koifman commented on HIVE-11848: --------------------------------------- reran all failed tests with age=1 All passed > 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)