MONGOID-5067: Fix Storable.add_field_expression() when adding a nested String operator equivalent to an existing nested Symbol operator #4966
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.
Summary
Storable.add_field_expression()
doesn't correctly handle adding a nested String operator that is equivalent to an existing nested Symbol operator. This PR includes both the fix and a test reproducing the bug in the old code.This is the second piece of a Symbol-String bug manifesting in a chained
Query.where().where()
. The first piece is addressed in MONGOID-5066 and its accompanying PR.Original Repro
query.where(:f => { :$in => [...] }).where(:f => { "$in" => [...] })
Test Output (No Changes)
Test Output (Fix Implemented)