You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 406e428
Browse filesBrowse the repository at this point in the historyBrowse files
test: check per rule that the pushdown rules reach a fixed point
Address review: add an observer test that fails when PushDownFilter or
PushDownLeafProjections changes the plan in the last optimizer pass, and
correct the rule precedence wording in the optimizer guide.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/source/library-user-guide/query-optimizer.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -164,9 +164,9 @@ the actual optimization. This approach is used in projection push down and filte
164
164
165
165
### Rule Precedence
166
166
167
-
Two rules can want the opposite order for the same pair of adjacent plan nodes. Each rule then undoes the work of the other one on every optimizer pass. The loop stops at `datafusion.optimizer.max_passes`, and the position of the two rules in the rule list decides the plan. This wastes a pass and makes the plan depend on the rule list.
167
+
Two rules can want the opposite order for the same pair of adjacent plan nodes. Each rule then undoes the work of the other one on every optimizer pass. The plan does not reach a fixed point, so the optimizer runs more passes than necessary, and the position of the two rules in the rule list decides the plan. The optimizer can stop early when the plan at the end of a pass is the same as the plan at the end of an earlier pass, but that does not make the result independent of the rule order.
168
168
169
-
Do not let two rules compete. Give one rule precedence, make that rule yield, and record the decision in the module documentation of both rules.
169
+
Do not let two rules compete. Give one rule precedence, make the competing rule yield, and record the decision in the module documentation of both rules.
0 commit comments