This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new 5302b92  Move more parquet functionality behind experimental feature 
flag (#1032)  (#1134)
5302b92 is described below

commit 5302b92012e86c5c966378b1564027466a545430
Author: Raphael Taylor-Davies <[email protected]>
AuthorDate: Mon Jan 10 21:50:31 2022 +0000

    Move more parquet functionality behind experimental feature flag (#1032)  
(#1134)
    
    * Move more parquet functionality behind experimental feature flag (#1032)
    
    * Fix logical conflicts
---
 parquet/src/arrow/array_reader.rs       |  4 +--
 parquet/src/arrow/arrow_array_reader.rs |  8 +++---
 parquet/src/arrow/arrow_writer.rs       |  7 +++---
 parquet/src/arrow/mod.rs                |  8 +++---
 parquet/src/compression.rs              | 44 ++++++++++++++++++---------------
 parquet/src/encodings/encoding.rs       |  2 +-
 parquet/src/lib.rs                      | 17 ++++++++-----
 7 files changed, 51 insertions(+), 39 deletions(-)

diff --git a/parquet/src/arrow/array_reader.rs 
b/parquet/src/arrow/array_reader.rs
index 2190076..752ca4c 100644
--- a/parquet/src/arrow/array_reader.rs
+++ b/parquet/src/arrow/array_reader.rs
@@ -2469,8 +2469,8 @@ mod tests {
 
     #[test]
     fn test_complex_array_reader_dict_enc_string() {
-        use crate::encoding::{DictEncoder, Encoder};
-        use crate::memory::MemTracker;
+        use crate::encodings::encoding::{DictEncoder, Encoder};
+        use crate::util::memory::MemTracker;
         // Construct column schema
         let message_type = "
         message test_schema {
diff --git a/parquet/src/arrow/arrow_array_reader.rs 
b/parquet/src/arrow/arrow_array_reader.rs
index cd1e92b..d814f7f 100644
--- a/parquet/src/arrow/arrow_array_reader.rs
+++ b/parquet/src/arrow/arrow_array_reader.rs
@@ -19,12 +19,12 @@ use super::array_reader::ArrayReader;
 use crate::arrow::schema::parquet_to_arrow_field;
 use crate::basic::Encoding;
 use crate::data_type::{ByteArray, ByteArrayType};
-use crate::decoding::{Decoder, DeltaByteArrayDecoder};
+use crate::encodings::decoding::{Decoder, DeltaByteArrayDecoder};
 use crate::errors::{ParquetError, Result};
 use crate::{
     column::page::{Page, PageIterator},
-    memory::ByteBufferPtr,
     schema::types::{ColumnDescPtr, ColumnDescriptor},
+    util::memory::ByteBufferPtr,
 };
 use arrow::{
     array::{ArrayRef, Int16Array},
@@ -1263,12 +1263,12 @@ mod tests {
     use crate::column::writer::ColumnWriter;
     use crate::data_type::ByteArray;
     use crate::data_type::ByteArrayType;
-    use crate::encoding::{DictEncoder, Encoder};
+    use crate::encodings::encoding::{DictEncoder, Encoder};
     use crate::file::properties::WriterProperties;
     use crate::file::reader::SerializedFileReader;
     use crate::file::serialized_reader::SliceableCursor;
     use crate::file::writer::{FileWriter, SerializedFileWriter, TryClone};
-    use crate::memory::MemTracker;
+    use crate::util::memory::MemTracker;
     use crate::schema::parser::parse_message_type;
     use crate::schema::types::SchemaDescriptor;
     use crate::util::test_common::page_util::{
diff --git a/parquet/src/arrow/arrow_writer.rs 
b/parquet/src/arrow/arrow_writer.rs
index 82c6d03..7f255db 100644
--- a/parquet/src/arrow/arrow_writer.rs
+++ b/parquet/src/arrow/arrow_writer.rs
@@ -26,7 +26,8 @@ use arrow_array::Array;
 
 use super::levels::LevelInfo;
 use super::schema::{
-    add_encoded_arrow_schema_to_metadata, decimal_length_from_precision,
+    add_encoded_arrow_schema_to_metadata, arrow_to_parquet_schema,
+    decimal_length_from_precision,
 };
 
 use crate::column::writer::ColumnWriter;
@@ -62,7 +63,7 @@ impl<W: 'static + ParquetWriter> ArrowWriter<W> {
         arrow_schema: SchemaRef,
         props: Option<WriterProperties>,
     ) -> Result<Self> {
-        let schema = crate::arrow::arrow_to_parquet_schema(&arrow_schema)?;
+        let schema = arrow_to_parquet_schema(&arrow_schema)?;
         // add serialized arrow schema
         let mut props = props.unwrap_or_else(|| 
WriterProperties::builder().build());
         add_encoded_arrow_schema_to_metadata(&arrow_schema, &mut props);
@@ -470,7 +471,7 @@ macro_rules! def_get_binary_array_fn {
     ($name:ident, $ty:ty) => {
         fn $name(array: &$ty) -> Vec<ByteArray> {
             let mut byte_array = ByteArray::new();
-            let ptr = crate::memory::ByteBufferPtr::new(
+            let ptr = crate::util::memory::ByteBufferPtr::new(
                 unsafe { array.value_data().typed_data::<u8>() }.to_vec(),
             );
             byte_array.set_data(ptr);
diff --git a/parquet/src/arrow/mod.rs b/parquet/src/arrow/mod.rs
index 7927bf4..57ad5b1 100644
--- a/parquet/src/arrow/mod.rs
+++ b/parquet/src/arrow/mod.rs
@@ -119,17 +119,19 @@
 //! ```
 
 experimental_mod!(array_reader);
-pub mod arrow_array_reader;
+experimental_mod!(arrow_array_reader);
 pub mod arrow_reader;
 pub mod arrow_writer;
-pub mod converter;
+experimental_mod!(converter);
 pub(in crate::arrow) mod levels;
 pub(in crate::arrow) mod record_reader;
-pub mod schema;
+experimental_mod!(schema);
 
 pub use self::arrow_reader::ArrowReader;
 pub use self::arrow_reader::ParquetFileArrowReader;
 pub use self::arrow_writer::ArrowWriter;
+
+#[cfg(feature = "experimental")]
 pub use self::schema::{
     arrow_to_parquet_schema, parquet_to_arrow_schema, 
parquet_to_arrow_schema_by_columns,
     parquet_to_arrow_schema_by_root_columns,
diff --git a/parquet/src/compression.rs b/parquet/src/compression.rs
index a115597..5d6554d 100644
--- a/parquet/src/compression.rs
+++ b/parquet/src/compression.rs
@@ -20,26 +20,30 @@
 //! See [`Compression`](crate::basic::Compression) enum for all available 
compression
 //! algorithms.
 //!
-//! # Example
-//!
-//! ```no_run
-//! use parquet::{basic::Compression, compression::create_codec};
-//!
-//! let mut codec = match create_codec(Compression::SNAPPY) {
-//!     Ok(Some(codec)) => codec,
-//!     _ => panic!(),
-//! };
-//!
-//! let data = vec![b'p', b'a', b'r', b'q', b'u', b'e', b't'];
-//! let mut compressed = vec![];
-//! codec.compress(&data[..], &mut compressed).unwrap();
-//!
-//! let mut output = vec![];
-//! codec.decompress(&compressed[..], &mut output).unwrap();
-//!
-//! assert_eq!(output, data);
-//! ```
-
+#[cfg_attr(
+    feature = "experimental",
+    doc = r##"
+# Example
+
+```no_run
+use parquet::{basic::Compression, compression::create_codec};
+
+let mut codec = match create_codec(Compression::SNAPPY) {
+ Ok(Some(codec)) => codec,
+ _ => panic!(),
+};
+
+let data = vec![b'p', b'a', b'r', b'q', b'u', b'e', b't'];
+let mut compressed = vec![];
+codec.compress(&data[..], &mut compressed).unwrap();
+
+let mut output = vec![];
+codec.decompress(&compressed[..], &mut output).unwrap();
+
+assert_eq!(output, data);
+```
+"##
+)]
 use crate::basic::Compression as CodecType;
 use crate::errors::{ParquetError, Result};
 
diff --git a/parquet/src/encodings/encoding.rs 
b/parquet/src/encodings/encoding.rs
index f452618..4d67e65 100644
--- a/parquet/src/encodings/encoding.rs
+++ b/parquet/src/encodings/encoding.rs
@@ -922,7 +922,7 @@ mod tests {
 
     use std::sync::Arc;
 
-    use crate::decoding::{get_decoder, Decoder, DictDecoder, PlainDecoder};
+    use crate::encodings::decoding::{get_decoder, Decoder, DictDecoder, 
PlainDecoder};
     use crate::schema::types::{
         ColumnDescPtr, ColumnDescriptor, ColumnPath, Type as SchemaType,
     };
diff --git a/parquet/src/lib.rs b/parquet/src/lib.rs
index 6436a88..1c4cafd 100644
--- a/parquet/src/lib.rs
+++ b/parquet/src/lib.rs
@@ -42,11 +42,13 @@
 ///
 /// Experimental modules have no stability guarantees
 macro_rules! experimental_mod {
-    ($module:ident) => {
+    ($module:ident $(, #[$meta:meta])*) => {
         #[cfg(feature = "experimental")]
         #[doc(hidden)]
+        $(#[$meta])*
         pub mod $module;
         #[cfg(not(feature = "experimental"))]
+        $(#[$meta])*
         mod $module;
     };
 }
@@ -54,19 +56,22 @@ macro_rules! experimental_mod {
 #[macro_use]
 pub mod errors;
 pub mod basic;
-#[macro_use]
-pub mod data_type;
+experimental_mod!(data_type, #[macro_use]);
 
 // Exported for external use, such as benchmarks
+#[cfg(feature = "experimental")]
+#[doc(hidden)]
 pub use self::encodings::{decoding, encoding};
+
+#[cfg(feature = "experimental")]
+#[doc(hidden)]
 pub use self::util::memory;
 
-#[macro_use]
-pub mod util;
+experimental_mod!(util, #[macro_use]);
 #[cfg(any(feature = "arrow", test))]
 pub mod arrow;
 pub mod column;
-pub mod compression;
+experimental_mod!(compression);
 mod encodings;
 pub mod file;
 pub mod record;

Reply via email to