-
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!
" 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?
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 think this was caused by cargo fmt
when I've added feature above
@alamb would you want to see this in this PR, or in a follow-up? |
Yes sorry I should have been more explicit. I think this PR should have a test (maybe even manually at first?) to both
|
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 spent some time playing around with this locally, I think it does the right thing
Enabled by default:
$ cargo test -p datafusion-common --lib 2>&1 | grep test_large_tree
test tree_node::tests::test_large_tree ... ok
Disabled without default features:
$ cargo test --no-default-features -p datafusion-common --lib 2>&1 | grep test_large_tree
$
Can enable explicitly:
$ cargo test --no-default-features -p datafusion-common --features=recursive-protection --lib 2>&1 | grep test_large_tree
test tree_node::tests::test_large_tree ... ok
$
Unfortunately, I can't really think of any feasible way to add this test to CI
Sorry for the delay reviewing / approving this @buraksenn and thank you for the reviews @findepi
I merged up from main and plan to merge it once the tests pass
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: