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 f0a3579
Browse filesBrowse the repository at this point in the historyBrowse files
perf: Cache remapped expression in DynamicFilterPhysicalExpr::current()
`current()` calls `remap_children()` which does a full `transform_up()`
tree walk on every invocation. This is called per-batch in `evaluate()`,
`snapshot()`, etc. When the inner expression hasn't changed (the common
case — updates are infrequent relative to evaluations), this tree walk
is pure redundant work.
Cache the remapped result per-instance using `Arc::ptr_eq` on the source
expression for invalidation. When `update()` replaces `inner.expr` with
a new `Arc`, the pointer naturally changes and the cache invalidates.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
0 commit comments