aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
Diffstat (limited to 'sql/catalyst')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala14
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala
index 6cfc4a4321..bfcdb70fe4 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala
@@ -259,7 +259,19 @@ class SessionCatalog(
val db = formatDatabaseName(tableDefinition.identifier.database.getOrElse(getCurrentDatabase))
val table = formatTableName(tableDefinition.identifier.table)
validateName(table)
- val newTableDefinition = tableDefinition.copy(identifier = TableIdentifier(table, Some(db)))
+
+ val newTableDefinition = if (tableDefinition.storage.locationUri.isDefined
+ && !tableDefinition.storage.locationUri.get.isAbsolute) {
+ // make the location of the table qualified.
+ val qualifiedTableLocation =
+ makeQualifiedPath(tableDefinition.storage.locationUri.get)
+ tableDefinition.copy(
+ storage = tableDefinition.storage.copy(locationUri = Some(qualifiedTableLocation)),
+ identifier = TableIdentifier(table, Some(db)))
+ } else {
+ tableDefinition.copy(identifier = TableIdentifier(table, Some(db)))
+ }
+
requireDbExists(db)
externalCatalog.createTable(newTableDefinition, ignoreIfExists)
}