Fix to #28595 - Use partial updates for JSON #28844
Merged
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.
Currently, whenever we update/add/delete part of aggregate mapped to JSON column, we were replacing the entire structure.
Improvement is to use JSON_MODIFY which can alter just a portion of JSON structure, give a JSON path.
We analyze the entries that are being edited and for each JSON column we find the common denominator that needs to be replaced to accommodate all the requested changes
Note: Whenever we add/remove element from a collection we need to replace the entire collection in order to populate ordinal key values properly.
Also, modifying a single property is not yet supported - the smallest fragment that will be replaced is one that represents an entity.
Fixes #28595