Github user sarutak commented on a diff in the pull request:

    https://github.com/apache/spark/pull/11301#discussion_r54682799
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ExpressionSet.scala
 ---
    @@ -50,7 +50,7 @@ object ExpressionSet {
     class ExpressionSet protected(
         protected val baseSet: mutable.Set[Expression] = new mutable.HashSet,
         protected val originals: mutable.Buffer[Expression] = new ArrayBuffer)
    -  extends Set[Expression] {
    +  extends Set[Expression] with Serializable {
    --- End diff --
    
    Yes,  `constraints` in `QueryPlan` is `ExpressionSet` and `SparkPlan` which 
is a subclass of `QueryPlan` is serializable so `ExpressionSet` should be also 
serializable strictly. But `constraints` is lazy val and it's not accessed when 
the receiver object is a instance of `SparkPlan`. In other word, `constraints` 
is accessed only when the receiver object is a instance of `LogicalPlan`.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to