-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
QO 2021-09-06, QO 2021-09-20, QO 2021-10-04, QO 2021-11-29, QO 2021-12-13, QO 2021-12-27, QO 2022-01-10, QO 2022-01-24
-
69
When someone creates a partial index on a time-series collection, internally we will create a partial index on the buckets collection. The user specifies the partialFilterExpression as a predicate on events, but we'll translate it to a predicate on buckets.
This sounds identical to how we push down $match predicates past the $_internalUnpackBucket stage. We should make sure that logic is factored out into some helper that can be called both from DocumentSource::optimize() and from CmdCreateIndexes.
For example:
- Predicates on metadata are pushed down exactly
- $lt predicates on measurements are pushed down as $lt on control.min
- $geoWithin is pushed down as $_internalBucketGeoWithin
- causes
-
SERVER-63000 createPredicatesOnBucketLevelField with $in should be treated like $or
- Closed
- depends on
-
SERVER-60672 Simpler pushdown when timeseries collection has no mixed-schema buckets
- Closed
- is depended on by
-
SERVER-58059 Support partial indexes on time-series measurements
- Closed
-
SERVER-55719 Support partial indexes on time-series metadata
- Closed
- is duplicated by
-
SERVER-63316 Object.extend should handle Date objects
- Closed
- is related to
-
SERVER-63316 Object.extend should handle Date objects
- Closed
- related to
-
SERVER-59505 Time-series query on mixed, nested measurements can miss some events
- Closed
-
SERVER-62954 fix macos dyld limit
- Closed
-
SERVER-59508 Support $or, $in and multi-level expressions in partial indexes
- Closed