Skip to content

Preserve operator order when lifting filter chains above FILTER - #26

Open
jianhongshi123 wants to merge 1 commit into
robust-sql:mainfrom
jianhongshi123:dev/update_create_lift
Open

Preserve operator order when lifting filter chains above FILTER#26
jianhongshi123 wants to merge 1 commit into
robust-sql:mainfrom
jianhongshi123:dev/update_create_lift

Conversation

@jianhongshi123

Copy link
Copy Markdown
Contributor

This is a follow-up to #20 . That PR restored correctness by conservatively stopping CREATE_FILTER lifting when column bindings changed. However, some of the blocked lifts are semantically valid. The problem was the original rewrite: it moved the FILTER across operators that could not commute with it and also did not remap the input bindings.

This PR lifts the contiguous CREATE/PROBE chain through the deepest CREATE above the FILTER, while keeping the FILTER and all operators between FILTER and the chain in their original relative order. It also remaps the input bindings of the moved CREATE and PROBE operators against their new child output.

For TPC-H Q18 at SF=100 with 8 threads, relative performance improves from 0.35× baseline with #20 to 1.05× baseline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant