Eric5553 commented on a change in pull request #27897: [SPARK-31113][SQL] Add
SHOW VIEWS command
URL: https://github.com/apache/spark/pull/27897#discussion_r402723336
##########
File path:
sql/core/src/main/scala/org/apache/spark/sql/execution/command/views.scala
##########
@@ -295,6 +295,41 @@ case class AlterViewAsCommand(
}
}
+/**
+ * A command for users to get views in the given database.
+ * If a databaseName is not given, the current database will be used.
+ * The syntax of using this command in SQL is:
+ * {{{
+ * SHOW VIEWS [(IN|FROM) database_name] [[LIKE] 'identifier_with_wildcards'];
+ * }}}
+ */
+case class ShowViewsCommand(
+ databaseName: Option[String],
+ tableIdentifierPattern: Option[String]) extends RunnableCommand {
+
+ // The result of SHOW VIEWS has three basic columns: namespace, viewName and
isTemporary.
+ override val output: Seq[Attribute] = Seq(
+ AttributeReference("namespace", StringType, nullable = false)(),
+ AttributeReference("viewName", StringType, nullable = false)(),
+ AttributeReference("isTemporary", BooleanType, nullable = false)())
+
+ override def run(sparkSession: SparkSession): Seq[Row] = {
+ val catalog = sparkSession.sessionState.catalog
+ val db = databaseName.getOrElse(catalog.getCurrentDatabase)
+
+ // Show the information of views.
+ val views = tableIdentifierPattern.map(catalog.listViews(db, _))
+ .getOrElse(catalog.listViews(db, "*"))
+ views.map { tableIdent =>
+ val namespace = tableIdent.database.getOrElse("")
Review comment:
Oh..I just force pushed from another machine ... Sorry. will updated it back.
----------------------------------------------------------------
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]