Implement heuristic CE for SargableNode that takes into account the actual predicates (or equivalent intervals).
That is, compute specific
- equality (or point intervals): [c,c]
- closed-range inequality: [c1, c2]
- one-sided inequality: (minKey, c]
- inequalities (interval ends) can be either open or closed
Each of the cases above will have a different default selectivity, which also depends on the actual collection cardinality.
Consider using metadata for estimation (if already not used):
- multikey info
- unique info (_id field)
- anything else?