Mark Hildreth created ARROW-8637:
------------------------------------
Summary: Resolve Issues with `prettytable-rs` dependency
Key: ARROW-8637
URL: https://issues.apache.org/jira/browse/ARROW-8637
Project: Apache Arrow
Issue Type: Improvement
Components: Rust
Reporter: Mark Hildreth
{{prettytable-rs}} is a dependency of Arrow for creating a string for
displaying record batches in a tabular form (see [pretty
util|https://github.com/apache/arrow/blob/c546eef41e6ab20c4ca29a2d836987959843896f/rust/arrow/src/util/pretty.rs#L24-L25])
The crate, however, has some issues:
1.) {{prettytable-rs}} has a dependency on the {{term}} crate. The {{term}}
crate is under minimal maintenance, and it is advised to switch to another
crate. This will probably pop up in an [informational security
advisory|https://rustsec.org/advisories/RUSTSEC-2018-0015] if it's decided one
day to audit the crates.
2.) The crate also has a dependency on {{encode-unicode}}. While not
problematic in its own right, this crate implements some traits which can bring
about confusing type inference issues. For example, after adding the
{{prettytable-rs}} dependency in arrow, the following error occurred what
attempting to compile the parquet crate:
{{let seed_vec: Vec<u8> =}}
{{ Standard.sample_iter(&mut rng).take(seed_len).collect();}}
{{error[E0282]: type annotations needed}}
{{ --> parquet/src/encodings/rle.rs:833:26}}
{{ |}}
{{833 | Standard.sample_iter(&mut rng).take(seed_len).collect();}}
{{ | ^^^^^^^^^^^ cannot infer type for `T`}}
Any user of the arrow crate would see a similar style of error.
There are a few possible ways to resolve this:
1.) Hopefully hear from the crate maintainer. There is a [PR
open|https://github.com/phsym/prettytable-rs/pull/125] for the encode-unicode
issue.
2.) Find a different table-generating crate with less issues.
3.) Fork and fix prettytable-rs.
4.) ???
--
This message was sent by Atlassian Jira
(v8.3.4#803005)