nastra commented on code in PR #9675: URL: https://github.com/apache/iceberg/pull/9675#discussion_r1501371107
########## spark/v3.5/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/RewriteViewCommands.scala: ########## @@ -102,20 +113,23 @@ case class RewriteViewCommands(spark: SparkSession) extends Rule[LogicalPlan] wi private def verifyTemporaryObjectsDontExist( name: Identifier, child: LogicalPlan): Unit = { - import org.apache.spark.sql.connector.catalog.CatalogV2Implicits._ - val tempViews = collectTemporaryViews(child) - tempViews.foreach { nameParts => - throw new AnalysisException( - errorClass = "INVALID_TEMP_OBJ_REFERENCE", - messageParameters = Map( - "obj" -> "VIEW", - "objName" -> name.name(), - "tempObj" -> "VIEW", - "tempObjName" -> nameParts.quoted)) + if (tempViews.nonEmpty) { + throw invalidRefToTempObject(name, tempViews.map(v => v.quoted).mkString("[", ", ", "]"), "VIEW") } - // TODO: check for temp function names + val tempFunctions = collectTemporaryFunctions(child) + if (tempFunctions.nonEmpty) { + throw invalidRefToTempObject(name, tempFunctions.mkString("[", ", ", "]"), "FUNCTION") + } + } + + private def invalidRefToTempObject(name: Identifier, tempObjectNames: String, tempObjectType: String) = { + new AnalysisException(String.format("Cannot create persistent object %s" + + " of type VIEW because it references the temporary object(s) %s of" + + " type %s. Please make the temporary object(s)" + + " persistent, or make the persistent object %s temporary", Review Comment: yeah the idea here was to match Spark's behavior and Spark's error msg wasn't particularly good. I've updated the error msg to what you suggested -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org