You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Andrew Lamb (Jira)" <ji...@apache.org> on 2020/10/26 14:32:00 UTC

[jira] [Created] (ARROW-10390) [Rust] [Parquet] Regression Can not implement custom ParquetWriter because `TryClone` is not publically exported

Andrew Lamb created ARROW-10390:
-----------------------------------

             Summary: [Rust] [Parquet] Regression Can not implement custom ParquetWriter because `TryClone` is not publically exported
                 Key: ARROW-10390
                 URL: https://issues.apache.org/jira/browse/ARROW-10390
             Project: Apache Arrow
          Issue Type: Bug
            Reporter: Andrew Lamb
            Assignee: Andrew Lamb


As of this commit

https://github.com/apache/arrow/commit/7155cd5488310c15d864428252ca71dd9ebd3b48

I don't think it is possible for a user of the arrow trait to implement a custom Parquet writer anymore. Specifically, theParquetWriter trait requires `TryClone` implemented,  https://github.com/apache/arrow/blob/master/rust/parquet/src/file/writer.rs#L117-L118

{code}

pub trait ParquetWriter: Write + Seek + TryClone {}
impl<T: Write + Seek + TryClone> ParquetWriter for T {}

/// A serialized implementation for Parquet [`FileWriter`].
/// See documentation on file writer for more information.
pub struct SerializedFileWriter<W: ParquetWriter> {

{code}


but `TryClone` is can not be used. It is a `pub` trait:

https://github.com/apache/arrow/blob/master/rust/parquet/src/util/io.rs#L28-L32

{code}
/// TryClone tries to clone the type and should maintain the `Seek` position of the given
/// instance.
pub trait TryClone: Sized {
    /// Clones the type returning a new instance or an error if it's not possible
    /// to clone it.
    fn try_clone(&self) -> Result<Self>;
}
{code}

But the module it is (util.io) in is not marked as `pub`: https://github.com/apache/arrow/blob/master/rust/parquet/src/lib.rs#L39

```
 #[macro_use]
mod util;
#[cfg(any(feature = "arrow", test))]
pub mod arrow;
pub mod column;
pub mod compression;
mod encodings;
pub mod file;
pub mod record;
pub mod schema;
{code}






--
This message was sent by Atlassian Jira
(v8.3.4#803005)