[SERVER-83835] Make logical rewrites more granular Created: 04/Dec/23 Updated: 10/Jan/24 |
|
| Status: | Open |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Alya Berciu | Assignee: | Backlog - Query Optimization |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Query Optimization
|
| Participants: |
| Description |
|
Logical rewrites could in some cases be more granular, e.g. FilterSubstitute. Splitting larger rewrites up would allow us to:
The first thing to implement is the ability to apply the same rewrite struct (e.g. SubstituteConvert) to the same type of node multiple times. This would require the introduction of an additional template parameter to distinguish between SubstituteConvert/FilterNode combinations. The second would be to ensure 1) ordering of rewrites and 2) that we only run each rewrite once per node. A possible future improvement is for rewrites to be able to schedule (or maybe unschedule) other rewrites once they run. |