You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by "szehon-ho (via GitHub)" <gi...@apache.org> on 2026/01/05 20:07:00 UTC

Re: [PR] [SPARK-54682][SQL] Support showing parameters in DESCRIBE PROCEDURE [spark]

szehon-ho commented on code in PR #53437:
URL: https://github.com/apache/spark/pull/53437#discussion_r2662664237


##########
sql/core/src/main/scala/org/apache/spark/sql/execution/command/DescribeProcedureCommand.scala:
##########
@@ -45,34 +42,63 @@ case class DescribeProcedureCommand(
 
   override def run(sparkSession: SparkSession): Seq[Row] = {
     child match {
-      case ResolvedIdentifier(catalog, ident) =>
-        val procedure = load(catalog.asProcedureCatalog, ident)
-        describeV2Procedure(procedure)
+      case ResolvedProcedure(catalog, ident, procedure) =>
+        describeV2Procedure(procedure.asInstanceOf[UnboundProcedure])
       case _ =>
         throw SparkException.internalError(s"Invalid procedure identifier: ${child.getClass}")
     }
   }
 
-  private def load(catalog: ProcedureCatalog, ident: Identifier): UnboundProcedure = {
-    try {
-      catalog.loadProcedure(ident)
-    } catch {
-      case e: Exception if !e.isInstanceOf[SparkThrowable] =>
-        val nameParts = catalog.name +: ident.asMultipartIdentifier
-        throw QueryCompilationErrors.failedToLoadRoutineError(nameParts, e)
-    }
-  }
 
   private def describeV2Procedure(procedure: UnboundProcedure): Seq[Row] = {
     val buffer = new ArrayBuffer[(String, String)]
     append(buffer, "Procedure:", procedure.name())
     append(buffer, "Description:", procedure.description())
 
+    // UnboundProcedure requires binding to retrieve parameters. We try to bind with an empty
+    // argument list to get the parameters. If the procedure requires arguments, binding might
+    // fail. In that case, we suppress the exception and just show the procedure metadata
+    // without parameters.

Review Comment:
   maybe later we can add some more methods to non simple UnboundProcedure , to better hint what arguments it supports? + @aokolnychyi  as well



-- 
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.

To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org