Greg Bowyer created ARROW-10636:
-----------------------------------

             Summary: Remove specialisation from Rust parquet
                 Key: ARROW-10636
                 URL: https://issues.apache.org/jira/browse/ARROW-10636
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Rust
            Reporter: Greg Bowyer


This is a very initial attempt at removing the specialization features from the 
Rust Parquet implementation.

The specialisation is too complex to be covered by {{min_specialization}} and 
requires a bit of reworking in the crate.

Right now the code dispatches in sub-traits and methods on the Parquet type, 
and uses a combination of trait abuse, macros and transmutes to eliminate the 
feature.

I have broken this up into several commits ranging from the simplest removals 
(which could probably be taken fairly easily) to the most ugly and complex.

I am not stoked on the {{transmute}} abuse, and I think another take (or follow 
up) should be taken to remove as many as possible in the code.

The general trait for {{DataType::T}} has been made a private sealed trait to 
make it impossible to implement external to the Parquet crate, this is 
intentional as I dont think many of the public interfaces are sensible for end 
users to be able to implement.
h1. TODO:
 * Purge the added {{std::mem::transmute}}s if possible
 * Refine and rationalise the {{unimplemented!}} implementations
 * Performance test?



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

Reply via email to