-
Notifications
You must be signed in to change notification settings - Fork 205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove filter plan node in pipeline #341
Comments
I remember that the predicate used by the filter plan node can be controlled by the implementation of That is to say, for different |
Yes, it is better to use different TableProviderFilterPushDown. As you mentioned in #326, we can move the control of pub trait Table: std::fmt::Debug {
fn supports_filter_pushdown(&self, _filter: &Expr) -> Result<TableProviderFilterPushDown>;
}
impl TableProvider for TableProviderAdapter {
fn supports_filter_pushdown(&self, _filter: &Expr) -> Result<TableProviderFilterPushDown> {
self.table.support_filter_pushdown()
}
} |
👍 That sounds great! However, I guess it will be better to avoid using |
From the context, we can just change |
assigne me! |
## Rationale close #341 ## Detailed Changes I just change `supports_filter_pushdown` in `TableProvider` to return `TableProviderFilterPushDown::Exact` to fix this ## Test Plan pass --------- Co-authored-by: jiacai2050 <dev@liujiacai.net>
Describe This Problem
For filter pushdown, we only pushdown partial filters to table scan now, that means the filter plan node is still preserved. For example:
Query
:Plan
:Proposal
We have three derives of
Table
trait:https://github.com/CeresDB/ceresdb/blob/28be2ed754a8dc404499b01797d0e45a412b3f65/analytic_engine/src/table/mod.rs#L84
https://github.com/CeresDB/ceresdb/blob/28be2ed754a8dc404499b01797d0e45a412b3f65/system_catalog/src/lib.rs#L91
https://github.com/CeresDB/ceresdb/blob/28be2ed754a8dc404499b01797d0e45a412b3f65/table_engine/src/memory.rs#L78
In #326, we will support filters pushdown fully in
TableImpl
. If we want to remove filter plan node in pipeline, we need add same filter logic to the other two derives.Additional Context
No response
The text was updated successfully, but these errors were encountered: