Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support predicate pull-up optimization rule for limbo optimizer #513

Open
KaguraMilet opened this issue Dec 19, 2024 · 2 comments
Open

Support predicate pull-up optimization rule for limbo optimizer #513

KaguraMilet opened this issue Dec 19, 2024 · 2 comments

Comments

@KaguraMilet
Copy link
Contributor

Predicate pullup typical purpose is to move more expensive operations further back in the processing queue so they have fewer rows and columns on which to operate after other query rewrites have been done.

This is very useful in many cases, and the details are well described in duckdb and teradata.
Duckdb Optimizer Blog
Teradata Predicate Pushdown and Pullup

@jussisaurio
Copy link
Collaborator

feel free to cook up a PR if you have implementation ideas, we definitely want to do all sorts of useful optimizations (of which there currently are not many).

@KaguraMilet
Copy link
Contributor Author

KaguraMilet commented Dec 19, 2024

I'm trying to implement it, but I must admit that Sqlite's planner is different from most DBs I've come across, and it's difficult to implement optimizer rules in an elegant way. I think the biggest difficulty is that SQLite's plan is not like a tree, but more like a very bloated node filled with various fields to determine the operator type. In other words, non-volcano style.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants