[SERVER-1213] allow splitting new $or range in two Created: 10/Jun/10 Updated: 12/Jul/16 Resolved: 15/Sep/10 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | 1.7.1 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Aaron Staple | Assignee: | Aaron Staple |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Participants: | |||||||||
| Description |
|
If we have {$or:[ {a:/^abc/}, {a:/^ab/}]} we scan the overlap part twice because we would have to split the range [ "ab", "ac" ] in two to do so and we can't handle that yet. Note that range limiting that doesn't require splitting a range is handled nicely now. ( {$or:[{a:{$lt:"abc"}}, {a:/^ab/}]} does not do any double scanning. ) |
| Comments |
| Comment by Aaron Staple [ 15/Sep/10 ] |
|
I just implemented the one dimensional case of this. May not be worth doing anything more complicated than that right now. |
| Comment by auto [ 14/Sep/10 ] |
|
Author: {'login': 'astaple', 'name': 'Aaron', 'email': 'aaron@10gen.com'}Message: |
| Comment by Aaron Staple [ 10/Jun/10 ] |
|
Just a reminder that when this is implemented, the field ranges passed to the matcher for old clause negation should be the original ranges, not ones which have been split. |