diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index 24f829f..ab1998a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -3216,16 +3216,20 @@ private int descDatabase(DescDatabaseDesc descDatabase) throws HiveException { if (database == null) { throw new HiveException(ErrorMsg.DATABASE_NOT_EXISTS, descDatabase.getDatabaseName()); - } else { - Map params = null; - if(descDatabase.isExt()) { - params = database.getParameters(); - } - PrincipalType ownerType = database.getOwnerType(); - formatter.showDatabaseDescription(outStream, database.getName(), - database.getDescription(), database.getLocationUri(), - database.getOwnerName(), (null == ownerType) ? null : ownerType.name(), params); } + Map params = null; + if (descDatabase.isExt()) { + params = database.getParameters(); + } + String location = database.getLocationUri(); + if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_IN_TEST)) { + location = "location/in/test"; + } + PrincipalType ownerType = database.getOwnerType(); + formatter.showDatabaseDescription(outStream, database.getName(), + database.getDescription(), location, + database.getOwnerName(), (null == ownerType) ? null : ownerType.name(), params); + outStream.close(); outStream = null; } catch (IOException e) { diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/DescDatabaseDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/DescDatabaseDesc.java index 99e1fa8..3c0ed2a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/DescDatabaseDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/DescDatabaseDesc.java @@ -38,7 +38,7 @@ /** * thrift ddl for the result of describe database. */ - private static final String schema = "db_name,comment,location,parameters#string:string:string:string"; + private static final String schema = "db_name,comment,location,owner_name,owner_type,parameters#string:string:string:string:string:string"; public DescDatabaseDesc() { } diff --git ql/src/test/queries/clientpositive/describe_database.q ql/src/test/queries/clientpositive/describe_database.q new file mode 100644 index 0000000..efb052c --- /dev/null +++ ql/src/test/queries/clientpositive/describe_database.q @@ -0,0 +1,3 @@ +create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2'); +desc database extended test_db; +drop database test_db; diff --git ql/src/test/results/clientpositive/describe_database.q.out ql/src/test/results/clientpositive/describe_database.q.out new file mode 100644 index 0000000..757508b --- /dev/null +++ ql/src/test/results/clientpositive/describe_database.q.out @@ -0,0 +1,17 @@ +PREHOOK: query: create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2') +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2') +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: desc database extended test_db +PREHOOK: type: DESCDATABASE +POSTHOOK: query: desc database extended test_db +POSTHOOK: type: DESCDATABASE +test_db location/in/test hive_test_user USER {key2=value2, key1=value1} +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: type: DROPDATABASE +POSTHOOK: Input: database:test_db +POSTHOOK: Output: database:test_db