Josh Rosen created SPARK-37448: ---------------------------------- Summary: Avoid CurrentOrigin.withOrigin calls in tree transformation methods when partial function isn't defined Key: SPARK-37448 URL: https://issues.apache.org/jira/browse/SPARK-37448 Project: Spark Issue Type: Improvement Components: Optimizer Affects Versions: 3.2.0 Reporter: Josh Rosen Assignee: Josh Rosen
`CurrentOrigin.withOrigin \{ block }` performs a ThreadLocal.get() call to retrieve the current value of the `origin` thread local so it can be restored after `block` exits. TreeNode has transform methods which apply PartialFunctions to every node in the tree. By checking `rule.isDefinedAt` before applying a rule we can skip the `CurrentOrigin.withOrigin` call in cases where we know the partial function isn't defined. This avoids the performance overhead associated with thread-local reads and sets. -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org