Skip to content

Resolve Issues with prettytable-rs dependency #69

@alamb

Description

@alamb

Note: migrated from original JIRA: https://issues.apache.org/jira/browse/ARROW-8637

{{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 =}}

{{    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.) ???

 
 

Metadata

Metadata

Assignees

No one assigned

    Labels

    arrowChanges to the arrow crate

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions