diff options
author | gatorsmile <gatorsmile@gmail.com> | 2016-03-26 20:12:30 -0700 |
---|---|---|
committer | Yin Huai <yhuai@databricks.com> | 2016-03-26 20:12:30 -0700 |
commit | a01b6a92b5f0287a5236bddb1b817d13f320d489 (patch) | |
tree | a61865cc9473235e8f505c7184fbe555e3d90dd7 /sql/core/src/test/scala/org/apache | |
parent | bc925b73a65ad57a636e6e6cb5648e4aed027af5 (diff) | |
download | spark-a01b6a92b5f0287a5236bddb1b817d13f320d489.tar.gz spark-a01b6a92b5f0287a5236bddb1b817d13f320d489.tar.bz2 spark-a01b6a92b5f0287a5236bddb1b817d13f320d489.zip |
[SPARK-14177][SQL] Native Parsing for DDL Command "Describe Database" and "Alter Database"
#### What changes were proposed in this pull request?
This PR is to provide native parsing support for two DDL commands: ```Describe Database``` and ```Alter Database Set Properties```
Based on the Hive DDL document:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
##### 1. ALTER DATABASE
**Syntax:**
```SQL
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...)
```
- `ALTER DATABASE` is to add new (key, value) pairs into `DBPROPERTIES`
##### 2. DESCRIBE DATABASE
**Syntax:**
```SQL
DESCRIBE DATABASE [EXTENDED] db_name
```
- `DESCRIBE DATABASE` shows the name of the database, its comment (if one has been set), and its root location on the filesystem. When `extended` is true, it also shows the database's properties
#### How was this patch tested?
Added the related test cases to `DDLCommandSuite`
Author: gatorsmile <gatorsmile@gmail.com>
Author: xiaoli <lixiao1983@gmail.com>
Author: Xiao Li <xiaoli@Xiaos-MacBook-Pro.local>
This patch had conflicts when merged, resolved by
Committer: Yin Huai <yhuai@databricks.com>
Closes #11977 from gatorsmile/parseAlterDatabase.
Diffstat (limited to 'sql/core/src/test/scala/org/apache')
-rw-r--r-- | sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLCommandSuite.scala | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLCommandSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLCommandSuite.scala index 18f48ffa94..7a6343748b 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLCommandSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLCommandSuite.scala @@ -101,6 +101,44 @@ class DDLCommandSuite extends PlanTest { comparePlans(parsed7, expected7) } + test("alter database set dbproperties") { + // ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...) + val sql1 = "ALTER DATABASE database_name SET DBPROPERTIES ('a'='a', 'b'='b', 'c'='c')" + val sql2 = "ALTER SCHEMA database_name SET DBPROPERTIES ('a'='a')" + + val parsed1 = parser.parsePlan(sql1) + val parsed2 = parser.parsePlan(sql2) + + val expected1 = AlterDatabaseProperties( + "database_name", + Map("a" -> "a", "b" -> "b", "c" -> "c"))(sql1) + val expected2 = AlterDatabaseProperties( + "database_name", + Map("a" -> "a"))(sql2) + + comparePlans(parsed1, expected1) + comparePlans(parsed2, expected2) + } + + test("describe database") { + // DESCRIBE DATABASE [EXTENDED] db_name; + val sql1 = "DESCRIBE DATABASE EXTENDED db_name" + val sql2 = "DESCRIBE DATABASE db_name" + + val parsed1 = parser.parsePlan(sql1) + val parsed2 = parser.parsePlan(sql2) + + val expected1 = DescribeDatabase( + "db_name", + extended = true)(sql1) + val expected2 = DescribeDatabase( + "db_name", + extended = false)(sql2) + + comparePlans(parsed1, expected1) + comparePlans(parsed2, expected2) + } + test("create function") { val sql1 = """ |