Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.3.2, 3.0.0
-
None
-
None
Description
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:
/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;
/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;
This "feature" is just to prevent people from shooting themselves in the foot, even if they shouldn't be using Hive space for storing unrelated data.
Attachments
Issue Links
- is related to
-
HIVE-2090 Add "DROP DATABASE ... CASCADE/RESTRICT"
-
- Closed
-
- relates to
-
HIVE-18803 Add DROP To hive.mapred.mode Strict List
-
- Open
-