[
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.4.patch
patch 4 addresses Alan's latest comments
> 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.4.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)