Github user windpiger commented on the issue: https://github.com/apache/spark/pull/16549 For test case ``` test("intersect") { checkSQL("SELECT * FROM t0 INTERSECT SELECT * FROM t0", "intersect") } ``` https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/planning/QueryPlanner.scala#L83 when `placeholder` & `childPlan` are `PlanLater MetaStoreRelation[#87] default t0`, and `candicate p` is `PlanLater MetaStoreRelation[#88] default t0`, these two will be equal `without` output compare, that is `p == placeholder`, it will transform to `childPlan`. That will cause Exception `Could't find id#88L in [id#87L]`. If we don't change the equal, it will be OK. I think we should not change the MetaStoreRelation equal logic
--- 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 infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org