Allow negative indexes in json operators #7849
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.
Fixes #7839.
This PR allows negative indexes to be used as input to the JSON operators: -1 means last item of the array, -2 means next-to-last item, and so on. A negative index that would go "past" the start of the array will be treated as an invalid index, e.g. in an array of length 5, the index -5 would be the first item in the list, but trying to do
jsonget[-6]
would produce an empty result. Similarly, trying to dojsonset[-6],[newValue]
would return the original JSON data unchanged, just asjsonset
does with any other invalid index.