diff --git ql/src/java/org/apache/hadoop/hive/ql/Driver.java ql/src/java/org/apache/hadoop/hive/ql/Driver.java index ec82ede..42e1e20 100644 --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -520,8 +520,8 @@ private String getExplainOutput(BaseSemanticAnalyzer sem, QueryPlan plan, ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); try { - task.getJSONPlan(ps, astStringTree, sem.getRootTasks(), sem.getFetchTask(), - false, true, true); + List> rootTasks = sem.getRootTasks(); + task.getJSONPlan(ps, astStringTree, rootTasks, sem.getFetchTask(), false, true, true); ret = baos.toString(); } catch (Exception e) { LOG.warn("Exception generating explain output: " + e, e); diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g index c903e8f..d65f895 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g @@ -1313,9 +1313,9 @@ descPartTypeExpr descStatement @init { pushMsg("describe statement", state); } @after { popMsg(state); } - : (KW_DESCRIBE|KW_DESC) (descOptions=KW_FORMATTED|descOptions=KW_EXTENDED|descOptions=KW_PRETTY)? (parttype=descPartTypeExpr) -> ^(TOK_DESCTABLE $parttype $descOptions?) + : (KW_DESCRIBE|KW_DESC) (KW_DATABASE|KW_SCHEMA) KW_EXTENDED? (dbName=identifier) -> ^(TOK_DESCDATABASE $dbName KW_EXTENDED?) + | (KW_DESCRIBE|KW_DESC) (descOptions=KW_FORMATTED|descOptions=KW_EXTENDED|descOptions=KW_PRETTY)? (parttype=descPartTypeExpr) -> ^(TOK_DESCTABLE $parttype $descOptions?) | (KW_DESCRIBE|KW_DESC) KW_FUNCTION KW_EXTENDED? (name=descFuncNames) -> ^(TOK_DESCFUNCTION $name KW_EXTENDED?) - | (KW_DESCRIBE|KW_DESC) (KW_DATABASE|KW_SCHEMA) KW_EXTENDED? (dbName=identifier) -> ^(TOK_DESCDATABASE $dbName KW_EXTENDED?) ; diff --git ql/src/test/queries/clientpositive/describe_database.q ql/src/test/queries/clientpositive/describe_database.q index efb052c..961bf55 100644 --- ql/src/test/queries/clientpositive/describe_database.q +++ ql/src/test/queries/clientpositive/describe_database.q @@ -1,3 +1,4 @@ create database test_db with dbproperties ('key1' = 'value1', 'key2' = 'value2'); desc database extended test_db; +desc schema extended test_db; drop database test_db; diff --git ql/src/test/queries/clientpositive/describe_database_json.q ql/src/test/queries/clientpositive/describe_database_json.q index 2f4cedc..67ca68f 100644 --- ql/src/test/queries/clientpositive/describe_database_json.q +++ ql/src/test/queries/clientpositive/describe_database_json.q @@ -6,6 +6,10 @@ DESCRIBE DATABASE jsondb1; DESCRIBE DATABASE EXTENDED jsondb1; +DESCRIBE SCHEMA jsondb1; + +DESCRIBE SCHEMA EXTENDED jsondb1; + SHOW DATABASES; SHOW DATABASES LIKE 'json*'; diff --git ql/src/test/results/clientpositive/describe_database.q.out ql/src/test/results/clientpositive/describe_database.q.out index 45e5a42..f2f0533 100644 --- ql/src/test/results/clientpositive/describe_database.q.out +++ ql/src/test/results/clientpositive/describe_database.q.out @@ -9,6 +9,11 @@ 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: desc schema extended test_db +PREHOOK: type: DESCDATABASE +POSTHOOK: query: desc schema 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 diff --git ql/src/test/results/clientpositive/describe_database_json.q.out ql/src/test/results/clientpositive/describe_database_json.q.out index 3fa0ca9..bedcae1 100644 --- ql/src/test/results/clientpositive/describe_database_json.q.out +++ ql/src/test/results/clientpositive/describe_database_json.q.out @@ -15,6 +15,16 @@ PREHOOK: type: DESCDATABASE POSTHOOK: query: DESCRIBE DATABASE EXTENDED jsondb1 POSTHOOK: type: DESCDATABASE #### A masked pattern was here #### +PREHOOK: query: DESCRIBE SCHEMA jsondb1 +PREHOOK: type: DESCDATABASE +POSTHOOK: query: DESCRIBE SCHEMA jsondb1 +POSTHOOK: type: DESCDATABASE +#### A masked pattern was here #### +PREHOOK: query: DESCRIBE SCHEMA EXTENDED jsondb1 +PREHOOK: type: DESCDATABASE +POSTHOOK: query: DESCRIBE SCHEMA EXTENDED jsondb1 +POSTHOOK: type: DESCDATABASE +#### A masked pattern was here #### PREHOOK: query: SHOW DATABASES PREHOOK: type: SHOWDATABASES POSTHOOK: query: SHOW DATABASES