-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Note: migrated from original JIRA: https://issues.apache.org/jira/browse/ARROW-10053
DataFusion currently cannot be integrated with codebases which are built for platforms that don't provide a libc implementations. This is because some of the dependencies have features flags enabled which pull in libc linked dependencies.
Specifically the datafusion cargo.toml:
- doesn't define
clapas an optional dependency (even ifclifeature is disable its pulled in) - the
arrowcrate has theprettyprintfeature set - the
parquetcrate doesn't havedefault-featuresdisabled which pull in a libc dependent crate
Ideally it would be possible to make these feature flags configurable or add a nonlibc feature which disables those. Just to five an idea here's the diff that I'm using right now to allow integration.
{code:java}
diff --git a/rust/datafusion/Cargo.toml b/rust/datafusion/Cargo.toml
index 71c16576f..e48bc3216 100644
--- a/rust/datafusion/Cargo.toml
+++ b/rust/datafusion/Cargo.toml
@@ -41,14 +41,14 @@ path = "src/bin/main.rs" [features]
default = ["cli"]
-cli = ["rustyline"]
+cli = ["rustyline", "clap"] [dependencies]
fnv = "1.0"
-arrow = { path = "../arrow", version = "2.0.0-SNAPSHOT", features = ["prettyprint"] }
-parquet = { path = "../parquet", version = "2.0.0-SNAPSHOT", features = ["arrow"] }
+arrow = { path = "../arrow", version = "2.0.0-SNAPSHOT"}
+parquet = { path = "../parquet", version = "2.0.0-SNAPSHOT", default-features = false, features = ["arrow"] }
sqlparser = "0.6.1"
-clap = "2.33"
+clap = { version = "2.33", optional = true }
rustyline = {version = "6.0", optional = true}
crossbeam = "0.7"
paste = "0.1"
{code}