-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
ALL
-
QO 2023-05-29
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Currently the rule is displayed under the physicalNodeId and applies to the best plan. We should be displaying rules for rejected plans as well if we track them. For example currently we have:
physicalNodeId: 3, costLimit: {Infinite cost}, rule: SargableToIndex
Physical properties:
projections:
pa
pb
distribution:
type: Centralized
indexingRequirement:
Index, dedupRID
cost: 0.0213882, localCost: 0.0213882, adjustedCE: 18.1659, node:
IndexScan [{'<indexKey> 0': pa, '<indexKey> 1': pb}, scanDefName: c1, indexDefName: index1, interval: {(Const [0 | 0], Const [0 | maxKey]]}]
ce: 18.1659
rejectedPlans:
cost: 0.453393, localCost: 0.194114, adjustedCE: 18.1659, node:
Filter []
ce: 18.1659
| EvalFilter []
| | FunctionCall [getArraySize]
...
We should be displaying rules under the best plan (IndexScan) and the rejected one (Filter plan). SargableToIndex applies only to the best node. The filter node rooted plan should be annotated as having an RIDIntersectGroupBy rule