imback82 commented on a change in pull request #27550: [SPARK-30799][SQL]
"spark_catalog.t" should not be resolved to temp view
URL: https://github.com/apache/spark/pull/27550#discussion_r379248174
##########
File path:
sql/core/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveSessionCatalog.scala
##########
@@ -584,7 +632,29 @@ class ResolveSessionCatalog(
object SessionCatalogAndTable {
def unapply(nameParts: Seq[String]): Option[(CatalogPlugin, Seq[String])]
= nameParts match {
case SessionCatalogAndIdentifier(catalog, ident) =>
- Some(catalog -> ident.asMultipartIdentifier)
+ if (nameParts.length == 1) {
+ // If there is only one name part, it means the current catalog is
the session catalog.
+ // Here we return the original name part, to keep the error message
unchanged for
+ // v1 commands.
+ Some(catalog -> nameParts)
+ } else {
+ Some(catalog -> ident.asMultipartIdentifier)
+ }
+ case _ => None
+ }
+ }
+
+ object TempViewOrV1Table {
+ def unapply(nameParts: Seq[String]): Option[Seq[String]] = nameParts match
{
+ case _ if isTempView(nameParts) => Some(nameParts)
+ case SessionCatalogAndTable(_, tbl) =>
+ if (nameParts.head == CatalogManager.SESSION_CATALOG_NAME &&
tbl.length == 1) {
+ // For name parts like `spark_catalog.t`, we need to fill in the
default database so
Review comment:
Got it, thanks for the explanation. It makes more sense to forbid it to keep
the behavior consistent.
----------------------------------------------------------------
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]