[ 
https://issues.apache.org/jira/browse/HIVE-16950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16071999#comment-16071999
 ] 

Bing Li commented on HIVE-16950:
--------------------------------

>From the description, the requirement is more like an EXTERNAL database which 
>has NOT been supported by Hive yet.

But I think we could add some check when create/drop database to avoid this 
issue.
There would be two ways to do this:
1. Throw an error when the target location on HDFS already exists.
An existing empty directory is invalid as well. Because currently, Hive allows 
to create two databases with the same location.
2. ONLY drop the tables belong to the target database.
With this purpose, we should get all the tables under this database when DROP 
DATABASE is invoked. 
But it would affect the performance of DROP statement.

I prefer the #1. [~ashutoshc], any comments on this?  Thank you.


> Dropping hive database/table which was created explicitly in default database 
> location, deletes all databases data from default database location
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-16950
>                 URL: https://issues.apache.org/jira/browse/HIVE-16950
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>    Affects Versions: 1.2.1
>            Reporter: Rahul Kalgunde
>            Assignee: Bing Li
>            Priority: Minor
>
> When database/table is created explicitly pointing to the default location, 
> dropping the database/table deletes all the data associated with the all 
> databases/tables.
> Steps to replicate: 
> in below e.g. dropping table test_db2 also deletes data of test_db1 where as 
> metastore still contains test_db1
> hive> create database test_db1;
> OK
> Time taken: 4.858 seconds
> hive> describe database test_db1;
> OK
> test_db1                
> hdfs://sandbox.hortonworks.com:8020/apps/hive/warehouse/test_db1.db     root  
>   USER
> Time taken: 0.599 seconds, Fetched: 1 row(s)
> hive> create database test_db2 location '/apps/hive/warehouse' ;
> OK
> Time taken: 1.457 seconds
> hive> describe database test_db2;
> OK
> test_db2                
> hdfs://sandbox.hortonworks.com:8020/apps/hive/warehouse root    USER
> Time taken: 0.582 seconds, Fetched: 1 row(s)
> hive> drop database test_db2;
> OK
> Time taken: 1.317 seconds
> hive> dfs -ls /apps/hive/warehouse;
> ls: `/apps/hive/warehouse': No such file or directory
> Command failed with exit code = 1
> Query returned non-zero code: 1, cause: null
> hive> describe database test_db1;
> OK
> test_db1                
> hdfs://sandbox.hortonworks.com:8020/apps/hive/warehouse/test_db1.db     root  
>   USER
> Time taken: 0.629 seconds, Fetched: 1 row(s)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to