yaooqinn commented on a change in pull request #26080: [SPARK-29425][SQL] The
ownership of a database should be respected
URL: https://github.com/apache/spark/pull/26080#discussion_r348325143
##########
File path:
sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala
##########
@@ -372,12 +372,44 @@ class HiveCatalogedDDLSuite extends DDLSuite with
TestHiveSingleton with BeforeA
assert(table.provider == Some("org.apache.spark.sql.hive.orc"))
}
}
+
+ test("Database Ownership") {
+ val catalog = spark.sessionState.catalog
+ try {
+ val dbName = "spark_29425"
+ val location = getDBPath(dbName)
+
+ sql(s"CREATE DATABASE $dbName")
+
+ checkAnswer(
+ sql(s"DESCRIBE DATABASE $dbName"),
+ Row("Database Name", dbName) ::
+ Row("Description", "") ::
+ Row("Location", CatalogUtils.URIToString(location)) ::
+ Row("Owner Name", Utils.getCurrentUserName()) ::
+ Row("Owner Type", "USER") :: Nil)
+
+ sql(s"ALTER DATABASE $dbName SET DBPROPERTIES ('a'='a', 'b'='b',
'c'='c')")
Review comment:
Behavior Before: we `create db` with no owner, `alter db` erase the owner if
exists not with our default spark user.
Behavior After: we `create db` with the spark user as default, or with
dbProps if ownerName exists; we `alter db` will prefer the owner in order of
`specified ownerName` -> `original db's ownerName` -> `spark's default if the
foregoing ones are null or empty`.
`ALTER DATABASE dbname SET DBPROPERTIES('ownerName'='userName')` equals
Hive's `ALTER DATABASE dbname SET OWNER USER userName`.
I suggest we make the ownerName and its type become members of
`CatalogDabase` in followup, and the `CatalogTable` too.
Then support,
```sql
ALTER [DATABASE|SCHEMA] dbname SET OWNER [USER|ROLE] userName
ALTER TABLE tblname SET OWNER [USER|ROLE] userName
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]