[Spark] Fix dependent constraints/generated columns checker for type widening #3912
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which Delta project/connector is this regarding?
Description
The current checker of dependent expressions doesn't validate changes for array and map types. For example, usage of type widening could lead to constraints breaks:
The proposed algorithm is more strict and regards maps, arrays and structs during constraints/generated columns dependencies.
How was this patch tested?
Added new tests for constraints and generated columns used with type widening feature.
Does this PR introduce any user-facing changes?
Due to strictness of the algorithm new potential dangerous type changes will be prohibited. An exception will be thrown in the example above.
But such changes are called in the schema evolution feature mostly that was introduced recently, so it should not affect many users.