-
Notifications
You must be signed in to change notification settings - Fork 174
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
chore: move symbolic and boolean algebra code into new crate #3570
Conversation
CodSpeed Performance ReportMerging #3570 will not alter performanceComparing Summary
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3570 +/- ##
========================================
Coverage 77.81% 77.81%
========================================
Files 716 718 +2
Lines 87987 88303 +316
========================================
+ Hits 68463 68712 +249
- Misses 19524 19591 +67
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really have any strong opinions on this, but wondering why this needs to be it's own crate instead of a module of daft-dsl?
I considered this too and I don't have a strong opinion either. Just thought that this was a good enough abstraction to be able to separate out into its own crate, and if we use any libraries for symbolic algebra in the future, that can be isolated into this crate. But other than that I don't really have much reason. |
👍 I'm fine with these changes then as long as no one else has strong objections. |
@samster25 any thoughts? Otherwise I will merge this in |
@samster25 follow-up on weekly kickoff discussion, |
@kevinzwang It would be better to get it from |
Moving some of the code we have around symbolic/boolean algebra on expressions into its own crate, because I anticipate that we will be building more of this kind of thing, so it would be nicer to consolidate it as well as make it easier to reuse. It also allows us to better test these things in isolation of the context they are being used in.
For example, we'll be building some optimization rules that more intelligently finds predicates for filter pushdown into joins, and that may use both
split_conjunction
as well as some expression simplification logic.Also took this opportunity to fix a typo (conjuct -> conjunct) and rename
conjunct
(which is an adjective) tocombine_conjunction
. Otherwise everything else is pretty much a straightforward move