Commits


alamb authored and Jorge C. Leitao committed 4bbb74713c6
ARROW-10233: [Rust] Make array_value_to_string available in all Arrow builds This PR makes `array_value_to_string` available to all arrow builds. Currently it is only available if the `feature = "prettyprint"` is enabled which is not the default. The full `print_batches` and `pretty_format_batches` (and the libraries they depend on) are still only available of the feature flag is set. The rationale for making this change is that I want to be able to use `array_value_to_string` to write tests (such as on https://github.com/apache/arrow/pull/8346) but currently it is only available when `feature = "prettyprint"` is enabled. It appears that @nevi-me made prettyprint compilation optional so that arrow could be compiled for wasm in https://github.com/apache/arrow/pull/7400. https://issues.apache.org/jira/browse/ARROW-9088 explains that this is due to some dependency of pretty-table; `array_value_to_string` has no needed dependencies. Note I tried to compile ARROW again using the `wasm32-unknown-unknown` target on master and it fails (perhaps due to a new dependency that was added?): <details> <summary>Click to expand!</summary> ``` alamb@ip-192-168-0-182 rust % git log | head -n 1 git log | head -n 1 commit d4cbc4b7aab5d37262b83e972af4bd7cb44c7a5c alamb@ip-192-168-0-182 rust % git status git status On branch master Your branch is up to date with 'upstream/master'. nothing to commit, working tree clean alamb@ip-192-168-0-182 rust % alamb@ip-192-168-0-182 rust % cargo build --target=wasm32-unknown-unknown cargo build --target=wasm32-unknown-unknown Compiling cfg-if v0.1.10 Compiling lazy_static v1.4.0 Compiling futures-core v0.3.5 Compiling slab v0.4.2 Compiling futures-sink v0.3.5 Compiling once_cell v1.4.0 Compiling pin-utils v0.1.0 Compiling futures-io v0.3.5 Compiling itoa v0.4.5 Compiling bytes v0.5.4 Compiling fnv v1.0.7 Compiling iovec v0.1.4 Compiling unicode-width v0.1.7 Compiling pin-project-lite v0.1.7 Compiling ppv-lite86 v0.2.8 Compiling atty v0.2.14 Compiling dirs v1.0.5 Compiling smallvec v1.4.0 Compiling regex-syntax v0.6.18 Compiling encode_unicode v0.3.6 Compiling hex v0.4.2 Compiling tower-service v0.3.0 error[E0433]: failed to resolve: could not find `unix` in `os` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:41:18 | 41 | use std::os::unix::ffi::OsStringExt; | ^^^^ could not find `unix` in `os` error[E0432]: unresolved import `unix` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:6:5 | 6 | use unix; | ^^^^ no `unix` in the root Compiling alloc-no-stdlib v2.0.1 Compiling adler32 v1.0.4 error[E0599]: no function or associated item named `from_vec` found for struct `std::ffi::OsString` in the current scope --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:48:34 | 48 | Some(PathBuf::from(OsString::from_vec(out))) | ^^^^^^^^ function or associated item not found in `std::ffi::OsString` | = help: items from traits can only be used if the trait is in scope = note: the following trait is implemented but not in scope; perhaps add a `use` for it: `use std::sys_common::os_str_bytes::OsStringExt;` error: aborting due to 3 previous errors Some errors have detailed explanations: E0432, E0433, E0599. For more information about an error, try `rustc --explain E0432`. error: could not compile `dirs`. To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: build failed alamb@ip-192-168-0-182 rust % ``` </details> Closes #8397 from alamb/alamb/consolidate-array-value-to-string Lead-authored-by: alamb <andrew@nerdnetworks.org> Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org> Signed-off-by: Jorge C. Leitao <jorgecarleitao@gmail.com>