From 1c0bd4c15a28d7c6a2dca846a5b8d0eb1d152aae Mon Sep 17 00:00:00 2001 From: ulysses-you Date: Tue, 5 Jul 2022 12:40:26 -0700 Subject: [PATCH] [SPARK-39656][SQL][3.2] Fix wrong namespace in DescribeNamespaceExec backport https://github.com/apache/spark/pull/37049 for branch-3.2 ### What changes were proposed in this pull request? DescribeNamespaceExec change ns.last to ns.quoted ### Why are the changes needed? DescribeNamespaceExec should show the whole namespace rather than last ### Does this PR introduce _any_ user-facing change? yes, a small bug fix ### How was this patch tested? fix test Closes #37072 from ulysses-you/desc-namespace-3.2. Authored-by: ulysses-you Signed-off-by: huaxingao --- .../execution/datasources/v2/DescribeNamespaceExec.scala | 3 ++- .../apache/spark/sql/connector/DataSourceV2SQLSuite.scala | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DescribeNamespaceExec.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DescribeNamespaceExec.scala index bd8a4f06fe114..8c8fecb57b895 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DescribeNamespaceExec.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DescribeNamespaceExec.scala @@ -23,6 +23,7 @@ import scala.collection.mutable.ArrayBuffer import org.apache.spark.sql.catalyst.InternalRow import org.apache.spark.sql.catalyst.expressions.Attribute import org.apache.spark.sql.connector.catalog.{CatalogV2Util, SupportsNamespaces} +import org.apache.spark.sql.connector.catalog.CatalogV2Implicits._ /** * Physical plan node for describing a namespace. @@ -37,7 +38,7 @@ case class DescribeNamespaceExec( val ns = namespace.toArray val metadata = catalog.loadNamespaceMetadata(ns) - rows += toCatalystRow("Namespace Name", ns.last) + rows += toCatalystRow("Namespace Name", ns.quoted) CatalogV2Util.NAMESPACE_RESERVED_PROPERTIES.foreach { p => rows ++= Option(metadata.get(p)).map(toCatalystRow(p.capitalize, _)) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala index 68a0f8b282228..ba4828dbf0264 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala @@ -1243,7 +1243,7 @@ class DataSourceV2SQLSuite )) val description = descriptionDf.collect() assert(description === Seq( - Row("Namespace Name", "ns2"), + Row("Namespace Name", "ns1.ns2"), Row(SupportsNamespaces.PROP_COMMENT.capitalize, "test namespace"), Row(SupportsNamespaces.PROP_LOCATION.capitalize, "/tmp/ns_test"), Row(SupportsNamespaces.PROP_OWNER.capitalize, defaultUser)) @@ -1258,7 +1258,7 @@ class DataSourceV2SQLSuite sql("ALTER NAMESPACE testcat.ns1.ns2 SET PROPERTIES ('a'='b','b'='a')") val descriptionDf = sql("DESCRIBE NAMESPACE EXTENDED testcat.ns1.ns2") assert(descriptionDf.collect() === Seq( - Row("Namespace Name", "ns2"), + Row("Namespace Name", "ns1.ns2"), Row(SupportsNamespaces.PROP_COMMENT.capitalize, "test namespace"), Row(SupportsNamespaces.PROP_LOCATION.capitalize, "/tmp/ns_test"), Row(SupportsNamespaces.PROP_OWNER.capitalize, defaultUser), @@ -1305,7 +1305,7 @@ class DataSourceV2SQLSuite sql("ALTER NAMESPACE testcat.ns1.ns2 SET LOCATION '/tmp/ns_test_2'") val descriptionDf = sql("DESCRIBE NAMESPACE EXTENDED testcat.ns1.ns2") assert(descriptionDf.collect() === Seq( - Row("Namespace Name", "ns2"), + Row("Namespace Name", "ns1.ns2"), Row(SupportsNamespaces.PROP_COMMENT.capitalize, "test namespace"), Row(SupportsNamespaces.PROP_LOCATION.capitalize, "/tmp/ns_test_2"), Row(SupportsNamespaces.PROP_OWNER.capitalize, defaultUser))