This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 73ad4926d9 feat: Make parquet_encryption a non-default feature (#17137)
73ad4926d9 is described below
commit 73ad4926d9b8a10ae8fdec16cf6bf66f7b59fc1c
Author: miro <[email protected]>
AuthorDate: Sat Aug 23 03:50:25 2025 +0800
feat: Make parquet_encryption a non-default feature (#17137)
* feat: Make parquet_encryption a non-default feature
* fix: enable parquet_encryption for sqllogictest
* fix: enable parquet_encryption for datafusion-examples
* fmt
* fix: update features list in README
* update: add parquet_encryption checks to CI workflow
* update parquet_encryption dependencies in Cargo.toml and CI workflow
* revert unecessary cargo changes
---------
Co-authored-by: Andrew Lamb <[email protected]>
---
.github/workflows/rust.yml | 2 +-
README.md | 2 +-
datafusion-cli/Cargo.toml | 1 +
datafusion-examples/Cargo.toml | 2 +-
datafusion/common/src/config.rs | 4 ++++
datafusion/core/Cargo.toml | 3 +--
datafusion/sqllogictest/Cargo.toml | 2 +-
7 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 25ab0a6c6f..d03bbe43f7 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -294,7 +294,7 @@ jobs:
--lib \
--tests \
--bins \
- --features serde,avro,json,backtrace,integration-tests
+ --features
serde,avro,json,backtrace,integration-tests,parquet_encryption
- name: Verify Working Directory Clean
run: git diff --exit-code
diff --git a/README.md b/README.md
index 8c92d0780f..9c3f6190c0 100644
--- a/README.md
+++ b/README.md
@@ -118,7 +118,6 @@ Default features:
- `datetime_expressions`: date and time functions such as `to_timestamp`
- `encoding_expressions`: `encode` and `decode` functions
- `parquet`: support for reading the [Apache Parquet] format
-- `parquet_encryption`: support for using [Parquet Modular Encryption]
- `regex_expressions`: regular expression functions, such as `regexp_match`
- `unicode_expressions`: Include unicode aware functions such as
`character_length`
- `unparser`: enables support to reverse LogicalPlans back into SQL
@@ -128,6 +127,7 @@ Optional features:
- `avro`: support for reading the [Apache Avro] format
- `backtrace`: include backtrace information in error messages
+- `parquet_encryption`: support for using [Parquet Modular Encryption]
- `pyarrow`: conversions between PyArrow and DataFusion types
- `serde`: enable arrow-schema's `serde` feature
diff --git a/datafusion-cli/Cargo.toml b/datafusion-cli/Cargo.toml
index 994c8cc8f2..3d845f6ac4 100644
--- a/datafusion-cli/Cargo.toml
+++ b/datafusion-cli/Cargo.toml
@@ -47,6 +47,7 @@ datafusion = { workspace = true, features = [
"encoding_expressions",
"nested_expressions",
"parquet",
+ "parquet_encryption",
"recursive_protection",
"regex_expressions",
"unicode_expressions",
diff --git a/datafusion-examples/Cargo.toml b/datafusion-examples/Cargo.toml
index f12bd9202e..d847db6165 100644
--- a/datafusion-examples/Cargo.toml
+++ b/datafusion-examples/Cargo.toml
@@ -66,7 +66,7 @@ bytes = { workspace = true }
dashmap = { workspace = true }
# note only use main datafusion crate for examples
base64 = "0.22.1"
-datafusion = { workspace = true, default-features = true }
+datafusion = { workspace = true, default-features = true, features =
["parquet_encryption"] }
datafusion-ffi = { workspace = true }
datafusion-physical-expr-adapter = { workspace = true }
datafusion-proto = { workspace = true }
diff --git a/datafusion/common/src/config.rs b/datafusion/common/src/config.rs
index bec471bfe4..bc0c47d1c3 100644
--- a/datafusion/common/src/config.rs
+++ b/datafusion/common/src/config.rs
@@ -671,6 +671,8 @@ config_namespace! {
config_namespace! {
/// Options for configuring Parquet Modular Encryption
+ ///
+ /// To use Parquet encryption, you must enable the `parquet_encryption`
feature flag, as it is not activated by default.
pub struct ParquetEncryptionOptions {
/// Optional file decryption properties
pub file_decryption: Option<ConfigFileDecryptionProperties>, default =
None
@@ -1880,6 +1882,8 @@ pub struct TableParquetOptions {
/// ```
pub key_value_metadata: HashMap<String, Option<String>>,
/// Options for configuring Parquet modular encryption
+ ///
+ /// To use Parquet encryption, you must enable the `parquet_encryption`
feature flag, as it is not activated by default.
/// See ConfigFileEncryptionProperties and ConfigFileDecryptionProperties
in datafusion/common/src/config.rs
/// These can be set via 'format.crypto', for example:
/// ```sql
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index f1f220f105..b87a3c93d8 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -62,7 +62,6 @@ default = [
"unicode_expressions",
"compression",
"parquet",
- "parquet_encryption",
"recursive_protection",
]
encoding_expressions = ["datafusion-functions/encoding_expressions"]
@@ -71,7 +70,7 @@ force_hash_collisions =
["datafusion-physical-plan/force_hash_collisions", "data
math_expressions = ["datafusion-functions/math_expressions"]
parquet = ["datafusion-common/parquet", "dep:parquet",
"datafusion-datasource-parquet"]
parquet_encryption = [
- "dep:parquet",
+ "parquet",
"parquet/encryption",
"datafusion-common/parquet_encryption",
"datafusion-datasource-parquet/parquet_encryption",
diff --git a/datafusion/sqllogictest/Cargo.toml
b/datafusion/sqllogictest/Cargo.toml
index 989bce59e0..1e38c147e0 100644
--- a/datafusion/sqllogictest/Cargo.toml
+++ b/datafusion/sqllogictest/Cargo.toml
@@ -43,7 +43,7 @@ bigdecimal = { workspace = true }
bytes = { workspace = true, optional = true }
chrono = { workspace = true, optional = true }
clap = { version = "4.5.44", features = ["derive", "env"] }
-datafusion = { workspace = true, default-features = true, features = ["avro"] }
+datafusion = { workspace = true, default-features = true, features = ["avro",
"parquet_encryption"] }
datafusion-spark = { workspace = true, default-features = true }
datafusion-substrait = { workspace = true, default-features = true }
futures = { workspace = true }
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]