vladimirg-db commented on code in PR #49445:
URL: https://github.com/apache/spark/pull/49445#discussion_r1925392103


##########
sql/catalyst/src/main/scala/org/apache/spark/sql/connector/catalog/CatalogManager.scala:
##########
@@ -49,6 +49,18 @@ class CatalogManager(
   // TODO: create a real SYSTEM catalog to host `TempVariableManager` under 
the SESSION namespace.
   val tempVariableManager: TempVariableManager = new TempVariableManager
 
+  // This field will be populated and cleaned up by SqlScriptingExecution.
+  private val sqlScriptingLocalVariableManager: 
InheritableThreadLocal[Option[VariableManager]] =

Review Comment:
   Thread-locals are error prone. You can easily mess up your logic by 
accidentally accessing a certain thread local from a different thread. They 
complicate refactors as well (see my example with single-pass Analyzer).
   
   The proper way would be to generate an UUID4 when script starts and pass it 
back-and-forth during client-driver communication.



-- 
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-unsubscr...@spark.apache.org

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


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

Reply via email to