Skip to content

Not possible to disable crypto_expressions feature as a library user of DataFusion. #10058

@phillipleblanc

Description

@phillipleblanc

Describe the bug

Both the datafusion core crate and datafusion-functions crate have a default feature for crypto_expressions.

datafusion/core/Cargo.toml

crypto_expressions = ["datafusion-functions/crypto_expressions"]
default = [
    "array_expressions",
    "crypto_expressions",
...

datafusion/functions/Cargo.toml

crypto_expressions = ["md-5", "sha2", "blake2", "blake3"]
...
default = [
    "core_expressions",
...
    "crypto_expressions",
...

If I disable all features from DataFusion when importing the crate in my project, the crypto_expressions dependencies are still enabled because datafusion-functions enables them by default.

To Reproduce

cargo new --bin df_crypto
cd df_crypto
cargo add datafusion --no-default-features
cargo build
cat Cargo.lock | grep blake2

Expected behavior

Disabling default features from the core crate should not get re-enabled by default elsewhere.

Additional context

I will submit a PR to fix this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions