-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[minor] make recursive package dependency optional #13778
base: main
Are you sure you want to change the base?
Conversation
should we add it to the docs? |
Thanks. Added to README.md file |
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.
Thanks @buraksenn
I wonder if there is some way to test this (aka add a CI test that will fail with recursive protection -- perhaps the WASM compile test 🤔 ) that doesn't fail when the feature is disabled?
That way we can ensure we have the configuration settings hooked up right
c352f8a
to
f92ee10
Compare
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.
thanks for working on this!
@@ -143,7 +143,6 @@ pbjson = { version = "0.7.0" } | |||
prost = "0.13.1" | |||
prost-derive = "0.13.1" | |||
rand = "0.8" | |||
recursive = "0.1.1" |
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.
revert, the version should still be defined here
@@ -61,7 +63,7 @@ object_store = { workspace = true, optional = true } | |||
parquet = { workspace = true, optional = true, default-features = true } | |||
paste = "1.0.15" | |||
pyo3 = { version = "0.22.0", optional = true } | |||
recursive = { workspace = true } | |||
recursive = { version = "0.1.1", optional = true } |
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.
recursive = { version = "0.1.1", optional = true } | |
recursive = { workspace = true, optional = true } |
same in other places
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.
also, define default recursive-protection
feature and make it a default feature
add dep:recursive
to it
avro = ["apache-avro"] | ||
backtrace = [] | ||
pyarrow = ["pyo3", "arrow/pyarrow", "parquet"] | ||
force_hash_collisions = [] | ||
recursive-protection = ["recursive"] |
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.
recursive-protection = ["recursive"] | |
recursive-protection = ["dep:recursive"] |
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.
@@ -36,6 +36,8 @@ name = "datafusion_expr" | |||
path = "src/lib.rs" | |||
|
|||
[features] | |||
default = ["recursive-protection"] | |||
recursive-protection = ["recursive"] |
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.
dep:
@@ -48,7 +50,7 @@ datafusion-functions-window-common = { workspace = true } | |||
datafusion-physical-expr-common = { workspace = true } | |||
indexmap = { workspace = true } | |||
paste = "^1.0" | |||
recursive = { workspace = true } | |||
recursive = { version = "0.1.1", optional = true } |
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.
use workspace version
" TableScan: t1 [a:UInt32, b:UInt32, c:UInt32]", | ||
" TableScan: t2 [a:UInt32, b:UInt32, c:UInt32]", | ||
"Filter: t2.c < UInt32(15) OR t2.c = UInt32(688) [a:UInt32, b:UInt32, c:UInt32, a:UInt32, b:UInt32, c:UInt32]", | ||
" Inner Join: t1.a + UInt32(100) = t2.a * UInt32(2) [a:UInt32, b:UInt32, c:UInt32, a:UInt32, b:UInt32, c:UInt32]", |
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.
unrelated change?
Which issue does this PR close?
Closes #13766
Rationale for this change
Adding recursive package causes issues for downstream projects
What changes are included in this PR?
Made recursive package optional in packages that use it instead of top level dependency
Are these changes tested?
Existing tests. Especially this one that fails when recursive is off: