diff --git ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseAnalyzer.java index b460811b4c..6b4860b9e1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseAnalyzer.java @@ -56,6 +56,6 @@ public void analyzeInternal(ASTNode root) throws SemanticException { rootTasks.add(task); task.setFetchSource(true); - setFetchTask(createFetchTask(DescDatabaseDesc.DESC_DATABASE_SCHEMA)); + setFetchTask(createFetchTask(desc.getSchema())); } } diff --git ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java index b92ed21cad..09751eebd7 100644 --- ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java @@ -33,21 +33,26 @@ private static final long serialVersionUID = 1L; public static final String DESC_DATABASE_SCHEMA = + "db_name,comment,location,managedLocation,owner_name,owner_type#string:string:string:string:string:string"; + + public static final String DESC_DATABASE_SCHEMA_EXTENDED = "db_name,comment,location,managedLocation,owner_name,owner_type,parameters#" + "string:string:string:string:string:string:string"; private final String resFile; private final String dbName; - private final boolean isExt; + private final boolean isExtended; - public DescDatabaseDesc(Path resFile, String dbName, boolean isExt) { + public DescDatabaseDesc(Path resFile, String dbName, boolean isExtended) { this.resFile = resFile.toString(); this.dbName = dbName; - this.isExt = isExt; + this.isExtended = isExtended; } - public boolean isExt() { - return isExt; + @Explain(displayName = "extended", displayOnlyOnTrue=true, + explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) + public boolean isExtended() { + return isExtended; } @Explain(displayName = "database", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) @@ -59,4 +64,8 @@ public String getDatabaseName() { public String getResFile() { return resFile; } + + public String getSchema() { + return isExtended ? DESC_DATABASE_SCHEMA_EXTENDED : DESC_DATABASE_SCHEMA; + } } diff --git ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java index 406397dbb5..52b7eb95ca 100644 --- ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java +++ ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java @@ -48,7 +48,7 @@ public int execute() throws HiveException { } SortedMap params = null; - if (desc.isExt()) { + if (desc.isExtended()) { params = new TreeMap<>(database.getParameters()); } diff --git ql/src/test/queries/clientpositive/describe_database.q ql/src/test/queries/clientpositive/describe_database.q index 961bf5563b..15bbca024f 100644 --- ql/src/test/queries/clientpositive/describe_database.q +++ ql/src/test/queries/clientpositive/describe_database.q @@ -1,4 +1,10 @@ -create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2'); -desc database extended test_db; -desc schema extended test_db; -drop database test_db; +CREATE DATABASE test_db WITH dbproperties ('key1' = 'value1', 'key2' = 'value2'); + +EXPLAIN DESC DATABASE test_db; +DESC DATABASE test_db; + +EXPLAIN DESC DATABASE EXTENDED test_db; +DESC DATABASE EXTENDED test_db; +DESC SCHEMA EXTENDED test_db; + +DROP DATABASE test_db; diff --git ql/src/test/results/clientpositive/beeline/escape_comments.q.out ql/src/test/results/clientpositive/beeline/escape_comments.q.out index bc0c88c1ea..64b13f062d 100644 --- ql/src/test/results/clientpositive/beeline/escape_comments.q.out +++ ql/src/test/results/clientpositive/beeline/escape_comments.q.out @@ -49,7 +49,7 @@ PREHOOK: Input: database:escape_comments_db POSTHOOK: query: describe database escape_comments_db POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:escape_comments_db -escape_comments_db a\nb location/in/test user USER +escape_comments_db a\nb location/in/test user USER PREHOOK: query: show create table escape_comments_tbl1 PREHOOK: type: SHOW_CREATETABLE PREHOOK: Input: escape_comments_db@escape_comments_tbl1 diff --git ql/src/test/results/clientpositive/llap/alter_db_owner.q.out ql/src/test/results/clientpositive/llap/alter_db_owner.q.out index a6118f279a..e7434bac94 100644 --- ql/src/test/results/clientpositive/llap/alter_db_owner.q.out +++ ql/src/test/results/clientpositive/llap/alter_db_owner.q.out @@ -10,7 +10,7 @@ PREHOOK: Input: database:db_alter_onr POSTHOOK: query: describe database db_alter_onr POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:db_alter_onr -db_alter_onr location/in/test hive_test_user USER +db_alter_onr location/in/test hive_test_user USER #### A masked pattern was here #### PREHOOK: type: ALTERDATABASE_OWNER PREHOOK: Output: database:db_alter_onr @@ -40,7 +40,7 @@ PREHOOK: Input: database:db_alter_onr POSTHOOK: query: describe database db_alter_onr POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:db_alter_onr -db_alter_onr location/in/test user1 USER +db_alter_onr location/in/test user1 USER #### A masked pattern was here #### PREHOOK: type: ALTERDATABASE_OWNER PREHOOK: Output: database:db_alter_onr @@ -53,4 +53,4 @@ PREHOOK: Input: database:db_alter_onr POSTHOOK: query: describe database db_alter_onr POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:db_alter_onr -db_alter_onr location/in/test role1 ROLE +db_alter_onr location/in/test role1 ROLE diff --git ql/src/test/results/clientpositive/llap/authorization_owner_actions_db.q.out ql/src/test/results/clientpositive/llap/authorization_owner_actions_db.q.out index bc4805143f..0267f8680d 100644 --- ql/src/test/results/clientpositive/llap/authorization_owner_actions_db.q.out +++ ql/src/test/results/clientpositive/llap/authorization_owner_actions_db.q.out @@ -28,7 +28,7 @@ PREHOOK: Input: database:testdb POSTHOOK: query: desc database testdb POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:testdb -testdb location/in/test testrole ROLE +testdb location/in/test testrole ROLE PREHOOK: query: use testdb PREHOOK: type: SWITCHDATABASE PREHOOK: Input: database:testdb diff --git ql/src/test/results/clientpositive/llap/database_properties.q.out ql/src/test/results/clientpositive/llap/database_properties.q.out index 5b0c85734a..2febbd85ab 100644 --- ql/src/test/results/clientpositive/llap/database_properties.q.out +++ ql/src/test/results/clientpositive/llap/database_properties.q.out @@ -28,7 +28,7 @@ PREHOOK: Input: database:db2 POSTHOOK: query: describe database db2 POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:db2 -db2 location/in/test hive_test_user USER +db2 location/in/test hive_test_user USER PREHOOK: query: describe database extended db2 PREHOOK: type: DESCDATABASE PREHOOK: Input: database:db2 diff --git ql/src/test/results/clientpositive/llap/db_ddl_explain.q.out ql/src/test/results/clientpositive/llap/db_ddl_explain.q.out index ae8982c5e7..955dbf6d83 100644 --- ql/src/test/results/clientpositive/llap/db_ddl_explain.q.out +++ ql/src/test/results/clientpositive/llap/db_ddl_explain.q.out @@ -69,7 +69,7 @@ PREHOOK: Input: database:d POSTHOOK: query: DESCRIBE DATABASE d POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:d -d location/in/test hive_test_user USER +d location/in/test hive_test_user USER PREHOOK: query: EXPLAIN ALTER DATABASE d SET dbproperties('test'='yesthisis') PREHOOK: type: ALTERDATABASE PREHOOK: Output: database:d diff --git ql/src/test/results/clientpositive/llap/describe_database.q.out ql/src/test/results/clientpositive/llap/describe_database.q.out index 8d1e44a851..6ceea5d517 100644 --- ql/src/test/results/clientpositive/llap/describe_database.q.out +++ ql/src/test/results/clientpositive/llap/describe_database.q.out @@ -1,28 +1,78 @@ -PREHOOK: query: create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2') +PREHOOK: query: CREATE DATABASE test_db WITH dbproperties ('key1' = 'value1', 'key2' = 'value2') PREHOOK: type: CREATEDATABASE PREHOOK: Output: database:test_db -POSTHOOK: query: create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2') +POSTHOOK: query: CREATE DATABASE test_db WITH dbproperties ('key1' = 'value1', 'key2' = 'value2') POSTHOOK: type: CREATEDATABASE POSTHOOK: Output: database:test_db -PREHOOK: query: desc database extended test_db +PREHOOK: query: EXPLAIN DESC DATABASE test_db PREHOOK: type: DESCDATABASE PREHOOK: Input: database:test_db -POSTHOOK: query: desc database extended test_db +POSTHOOK: query: EXPLAIN DESC DATABASE test_db +POSTHOOK: type: DESCDATABASE +POSTHOOK: Input: database:test_db +STAGE DEPENDENCIES: + Stage-0 is a root stage + Stage-1 depends on stages: Stage-0 + +STAGE PLANS: + Stage: Stage-0 + Describe Database + database: test_db + + Stage: Stage-1 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: DESC DATABASE test_db +PREHOOK: type: DESCDATABASE +PREHOOK: Input: database:test_db +POSTHOOK: query: DESC DATABASE test_db +POSTHOOK: type: DESCDATABASE +POSTHOOK: Input: database:test_db +test_db location/in/test hive_test_user USER +PREHOOK: query: EXPLAIN DESC DATABASE EXTENDED test_db +PREHOOK: type: DESCDATABASE +PREHOOK: Input: database:test_db +POSTHOOK: query: EXPLAIN DESC DATABASE EXTENDED test_db +POSTHOOK: type: DESCDATABASE +POSTHOOK: Input: database:test_db +STAGE DEPENDENCIES: + Stage-0 is a root stage + Stage-1 depends on stages: Stage-0 + +STAGE PLANS: + Stage: Stage-0 + Describe Database + database: test_db + extended: true + + Stage: Stage-1 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: DESC DATABASE EXTENDED test_db +PREHOOK: type: DESCDATABASE +PREHOOK: Input: database:test_db +POSTHOOK: query: DESC DATABASE EXTENDED test_db POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:test_db test_db location/in/test hive_test_user USER {key1=value1, key2=value2} -PREHOOK: query: desc schema extended test_db +PREHOOK: query: DESC SCHEMA EXTENDED test_db PREHOOK: type: DESCDATABASE PREHOOK: Input: database:test_db -POSTHOOK: query: desc schema extended test_db +POSTHOOK: query: DESC SCHEMA EXTENDED test_db POSTHOOK: type: DESCDATABASE POSTHOOK: Input: database:test_db test_db location/in/test hive_test_user USER {key1=value1, key2=value2} -PREHOOK: query: drop database test_db +PREHOOK: query: DROP DATABASE test_db PREHOOK: type: DROPDATABASE PREHOOK: Input: database:test_db PREHOOK: Output: database:test_db -POSTHOOK: query: drop database test_db +POSTHOOK: query: DROP DATABASE test_db POSTHOOK: type: DROPDATABASE POSTHOOK: Input: database:test_db POSTHOOK: Output: database:test_db diff --git ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out index dad999ab1a..5af43def9c 100644 --- ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out +++ ql/src/test/results/clientpositive/tez/explainanalyze_3.q.out @@ -119,7 +119,7 @@ Stage-1 Fetch Operator limit:-1 Stage-0 - Describe Database{"database:":"newDB"} + Describe Database{"database:":"newDB","extended:":"true"} PREHOOK: query: describe database extended newDB PREHOOK: type: DESCDATABASE diff --git ql/src/test/results/clientpositive/tez/explainuser_3.q.out ql/src/test/results/clientpositive/tez/explainuser_3.q.out index 5218c90f0c..d886a26f78 100644 --- ql/src/test/results/clientpositive/tez/explainuser_3.q.out +++ ql/src/test/results/clientpositive/tez/explainuser_3.q.out @@ -137,7 +137,7 @@ Stage-1 Fetch Operator limit:-1 Stage-0 - Describe Database{"database:":"newDB"} + Describe Database{"database:":"newDB","extended:":"true"} PREHOOK: query: describe database extended newDB PREHOOK: type: DESCDATABASE