-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This merges DimensionJoin, Selection, and OrderedSlice into a single leaf-or-join Select relation, while restricting the relation types that can appear upstream or downstream of it. This means almost all trees will be structured as (with [] meaning optional): ╭─ [DatasetSearch] [OrderedSlice] <─ [FindFirst] <─ Select <─┼─ [DataCoordinateUpload] ╰─ [Materialization] <─ ... where "..." is another tree of the same structure. While this *can* do arbitrary nesting, we never descend past a Materialization when figuring out where put a new operation when pushing a new filter or join onto the tree, so all the logic for that can just work with the first Select it sees rather than worry about what's upstream. It's hard to overstate how much of a simplification this is going to be compared to the more general daf_relation trees. The downside of this restricted-tree approach is that it obfuscates what happens in SQL vs. Python postprocessing, and while that might seem like a good thing (since it *mostly*) is, the performance difference involved in moving certain operations down to Python can be so huge that we can't pretend it's a pure implementation, and this simplified tree structure may make it a bit more difficult to warn or fail if the user tries to do something that *seems* reasonable but actually isn't when those implementation/performance implications are in play.
- Loading branch information
Showing
10 changed files
with
84 additions
and
137 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
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
Oops, something went wrong.