szehon-ho commented on code in PR #53207:
URL: https://github.com/apache/spark/pull/53207#discussion_r2558587223
##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/v2Commands.scala:
##########
@@ -916,19 +922,29 @@ case class MergeIntoTable(
false
} else {
val actions = matchedActions ++ notMatchedActions
- val assignments = actions.collect {
- case a: UpdateAction => a.assignments
- case a: InsertAction => a.assignments
- }.flatten
- val sourcePaths = DataTypeUtils.extractAllFieldPaths(sourceTable.schema)
- assignments.forall { assignment =>
- assignment.resolved ||
- (assignment.value.resolved && sourcePaths.exists {
- path => MergeIntoTable.isEqual(assignment, path)
- })
+ val hasStarActions = actions.exists {
Review Comment:
The call to canEvaluateSchemaEvolution (that guards whether the schema
evolution check gets evaluated) gets called with updateStar and insertStar.
This is triggered in the Dataframe API, and revealed I had missed this case.
So here I return false to explicitly skip until they are resolved. Else this
hits an analysis error later. This was not triggered in SQL case where the
stars got resolved earlier.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]