-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: projection merge and projection filter transpose rule (#162)
This PR implements a part of the projection transpose series of rules. It also includes a fair amount of refactoring. ### Projection Merge Rule - This rule matches on two projection nodes and combines the two nodes into one. - It is added to the heuristic optimizer pass before the cascades optimizer. In the future, it should also be added to a pass after the cascades optimizer. ### Projection Filter Transpose Rule - This rule matches pushes a projection node passed a filter node. If the filter node contains columns that are not in this projection node, the top most projection node is also kept. - It is added as a cascades rule. ### Refactoring Relevant functions for projection transpose rules can be found in `project_transpose_common.rs`. Rules are implemented in separate files as a part of the `projection_transpose` module rather than in all one file. Similarly, `FilterProjectTransposeRule` and `ProjectionPullUpJoin` were moved into this module. ### Testing Unit tests using the dummy heuristic optimizer were implemented. --------- Signed-off-by: AveryQi115 <averyqi115@gmail.com> Co-authored-by: Benjamin O <jeep70cp@gmail.com> Co-authored-by: AveryQi115 <averyqi115@gmail.com>
- Loading branch information
1 parent
74dc3ff
commit 9ef6339
Showing
16 changed files
with
948 additions
and
270 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
pub mod project_filter_transpose; | ||
pub mod project_join_transpose; | ||
pub mod project_merge; | ||
pub mod project_transpose_common; |
Oops, something went wrong.