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
Combine the optimization rules decorrelate, decorrelate_lateral_join, and decorrelate_predicate_subquery into one. #16073
Do you think this draft PR can combine all the rules?
lateral join is not mentioned yet, but i think we can use the same data structure to reason the dependencies between the operator
pub struct DependentJoinTracker {
root: Option<usize>,
// each logical plan traversal will assign it a integer id
current_id: usize,
// each newly visted operator is inserted inside this map for tracking
nodes: IndexMap<usize, Operator>,
// all the node ids from root to the current node
// this is used during traversal only
stack: Vec<usize>,
// track for each column, the nodes/logical plan that reference to its within the tree
accessed_columns: IndexMap<Column, Vec<ColumnAccess>>,
alias_generator: Arc<AliasGenerator>,
}
Activity
duongcongtoai commentedon May 17, 2025
Do you think this draft PR can combine all the rules?
lateral join is not mentioned yet, but i think we can use the same data structure to reason the dependencies between the operator
irenjj commentedon May 18, 2025
Cool! Thanks @duongcongtoai, maybe we can support lateral join after #16016 merged.
alamb commentedon May 18, 2025
I really like the idea of using #16016 / #5492 to satisfy this goal