[ https://issues.apache.org/jira/browse/HIVE-10242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eugene Koifman updated HIVE-10242: ---------------------------------- Attachment: HIVE-10242.3.patch rebase to trunk > ACID: insert overwrite prevents create table command > ---------------------------------------------------- > > Key: HIVE-10242 > URL: https://issues.apache.org/jira/browse/HIVE-10242 > Project: Hive > Issue Type: Bug > Components: Transactions > Affects Versions: 1.0.0 > Reporter: Eugene Koifman > Assignee: Eugene Koifman > Attachments: HIVE-10242.2.patch, HIVE-10242.3.patch, HIVE-10242.patch > > > 1. insert overwirte table DB.T1 select ... from T2: this takes X lock on > DB.T1 and S lock on T2. > X lock makes sense because we don't want anyone reading T1 while it's > overwritten. S lock on T2 prevents if from being dropped while the query is > in progress. > 2. create table DB.T3: takes S lock on DB. > This S lock gets blocked by X lock on T1. S lock prevents the DB from being > dropped while create table is executed. > If the insert statement is long running, this blocks DDL ops on the same > database. This is a usability issue. > There is no good reason why X lock on a table within a DB and S lock on DB > should be in conflict. > (this is different from a situation where X lock is on a partition and S lock > is on the table to which this partition belongs. Here it makes sense. > Basically there is no SQL way to address all tables in a DB but you can > easily refer to all partitions of a table) -- This message was sent by Atlassian JIRA (v6.3.4#6332)