-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
To represent sets of fields, implement the Shape member of Type.
We should be able to construct the shape and get and set the fields in the Shape.
Also extend the algebra from SERVER-134590 to include handling of the shape.
This should include intersection, union, complement of Types with a Shape.
The isOpen bit should be handled (isOpen means field is any type, and !isOpen, means field is missing).
intersection - A new shape is created if the object type is preserved. The new Shape has fields which are the memberwise intersection of the types of the two Shapes (in the case of two Shapes).
union - The new Shape is the memberwise union of the types of the fields.
complement - Any Shape is removed, since we cannot represent the complement type of a particular object type.
The TypeSet should also be updated where relevant.
- depends on
-
SERVER-134590 Implement TypeSet and related algebra
-
- Closed
-
- is depended on by
-
SERVER-134593 Add basic matcher path traversal and narrowing
-
- Needs Scheduling
-