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)

Reply via email to