BELUGA BEHR created HIVE-18670:
----------------------------------
Summary: Prevent DROP DATABASE If Data Exists in HDFS
Key: HIVE-18670
URL: https://issues.apache.org/jira/browse/HIVE-18670
Project: Hive
Issue Type: Improvement
Components: HiveServer2
Affects Versions: 2.3.2, 3.0.0
Reporter: BELUGA BEHR
A user is not able to drop a database if it has tables under it unless they
include the _CASCADE_ keyword to their DROP DATABASE statement.
[https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-DropTable]
I would like to propose that, if {{hive.mapred.mode}} is set to 'strict', Hive
also checks for other data before dropping the database.
For example, if the database is stored within HDFS, then Hive should check if
there exists other data, not even necessarily related to Hive, within the
database's HDFS directory, before dropping.
The examples are:
{code:java|title=Example 1}
/hive/my_database
/hive/my_database/my_table
-- Does not succeed because 'my_table' exists
> DROP DATABASE my_database;
-- Succeeds and removes the root directory /hive/my_database
> DROP DATABASE my_database CASCADE;
{code}
{code:java|title=Example 2}
/hive/my_database
/hive/my_database/my_important_file.txt
-- Succeeds because no tables exist, but I just lost my "important" file
> DROP DATABASE my_database;
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)