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

tustvold 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 6bf0aab6b Deprecate old JSON reader (#3610) (#3718)
6bf0aab6b is described below

commit 6bf0aab6bbc0a6a4cc89affd7552af515edc1c38
Author: Raphael Taylor-Davies <[email protected]>
AuthorDate: Wed Feb 22 21:48:09 2023 +0000

    Deprecate old JSON reader (#3610) (#3718)
---
 arrow-json/src/lib.rs                    | 1 +
 arrow-json/src/raw/mod.rs                | 1 +
 arrow-json/src/reader.rs                 | 9 +++++++++
 arrow-json/src/writer.rs                 | 3 +++
 arrow/benches/json_reader.rs             | 5 +++--
 parquet/src/arrow/arrow_writer/levels.rs | 6 ++----
 parquet/src/arrow/arrow_writer/mod.rs    | 4 +---
 7 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/arrow-json/src/lib.rs b/arrow-json/src/lib.rs
index 7e582c335..5998bc3a4 100644
--- a/arrow-json/src/lib.rs
+++ b/arrow-json/src/lib.rs
@@ -28,6 +28,7 @@ pub mod writer;
 mod raw;
 
 pub use self::raw::{RawDecoder, RawReader, RawReaderBuilder};
+#[allow(deprecated)]
 pub use self::reader::{Reader, ReaderBuilder};
 pub use self::writer::{ArrayWriter, LineDelimitedWriter, Writer};
 use half::f16;
diff --git a/arrow-json/src/raw/mod.rs b/arrow-json/src/raw/mod.rs
index e597753a9..595a54c10 100644
--- a/arrow-json/src/raw/mod.rs
+++ b/arrow-json/src/raw/mod.rs
@@ -310,6 +310,7 @@ fn tape_error(d: TapeElement, expected: &str) -> ArrowError 
{
 }
 
 #[cfg(test)]
+#[allow(deprecated)]
 mod tests {
     use super::*;
     use crate::reader::infer_json_schema;
diff --git a/arrow-json/src/reader.rs b/arrow-json/src/reader.rs
index 54e687a8b..7df63bf8d 100644
--- a/arrow-json/src/reader.rs
+++ b/arrow-json/src/reader.rs
@@ -584,6 +584,7 @@ where
 /// [`RawDecoder`]: crate::raw::RawDecoder
 /// [#3610]: https://github.com/apache/arrow-rs/issues/3610
 #[derive(Debug)]
+#[deprecated(note = "Use RawDecoder instead")]
 pub struct Decoder {
     /// Explicit schema for the JSON file
     schema: SchemaRef,
@@ -640,6 +641,7 @@ impl DecoderOptions {
     }
 }
 
+#[allow(deprecated)]
 impl Decoder {
     /// Create a new JSON decoder from some value that implements an
     /// iterator over [`serde_json::Value`]s (aka implements the
@@ -1606,12 +1608,15 @@ fn flatten_json_string_values(values: &[Value]) -> 
Vec<Option<String>> {
 /// [`RawReader`]: crate::raw::RawReader
 /// [#3610]: https://github.com/apache/arrow-rs/issues/3610
 #[derive(Debug)]
+#[deprecated(note = "Use RawReader instead")]
+#[allow(deprecated)]
 pub struct Reader<R: Read> {
     reader: BufReader<R>,
     /// JSON value decoder
     decoder: Decoder,
 }
 
+#[allow(deprecated)]
 impl<R: Read> Reader<R> {
     /// Create a new JSON Reader from any value that implements the `Read` 
trait.
     ///
@@ -1658,6 +1663,7 @@ impl<R: Read> Reader<R> {
 /// [#3610]: https://github.com/apache/arrow-rs/issues/3610
 ///
 #[derive(Debug, Default)]
+#[deprecated(note = "Use RawReaderBuilder instead")]
 pub struct ReaderBuilder {
     /// Optional schema for the JSON file
     ///
@@ -1672,6 +1678,7 @@ pub struct ReaderBuilder {
     options: DecoderOptions,
 }
 
+#[allow(deprecated)]
 impl ReaderBuilder {
     /// Create a new builder for configuring JSON parsing options.
     ///
@@ -1752,6 +1759,7 @@ impl ReaderBuilder {
     }
 }
 
+#[allow(deprecated)]
 impl<R: Read> Iterator for Reader<R> {
     type Item = Result<RecordBatch, ArrowError>;
 
@@ -1761,6 +1769,7 @@ impl<R: Read> Iterator for Reader<R> {
 }
 
 #[cfg(test)]
+#[allow(deprecated)]
 mod tests {
     use super::*;
     use arrow_array::cast::{
diff --git a/arrow-json/src/writer.rs b/arrow-json/src/writer.rs
index 028b7d889..27ae38764 100644
--- a/arrow-json/src/writer.rs
+++ b/arrow-json/src/writer.rs
@@ -1218,6 +1218,7 @@ mod tests {
         );
     }
 
+    #[allow(deprecated)]
     fn test_write_for_file(test_file: &str) {
         let builder = ReaderBuilder::new()
             .infer_schema(None)
@@ -1295,6 +1296,7 @@ mod tests {
     }
 
     #[test]
+    #[allow(deprecated)]
     fn json_list_roundtrip() {
         let json_content = r#"
         {"list": [{"ints": 1}]}
@@ -1406,6 +1408,7 @@ mod tests {
     }
 
     #[test]
+    #[allow(deprecated)]
     fn test_write_single_batch() {
         let test_file = "test/data/basic.json";
         let builder = ReaderBuilder::new()
diff --git a/arrow/benches/json_reader.rs b/arrow/benches/json_reader.rs
index b5d8a5367..5651813a6 100644
--- a/arrow/benches/json_reader.rs
+++ b/arrow/benches/json_reader.rs
@@ -22,16 +22,17 @@ use arrow::util::bench_util::{
     create_primitive_array, create_string_array, create_string_array_with_len,
 };
 use arrow_array::RecordBatch;
+use arrow_json::LineDelimitedWriter;
 use arrow_json::RawReaderBuilder;
-use arrow_json::{LineDelimitedWriter, ReaderBuilder};
 use std::io::Cursor;
 use std::sync::Arc;
 
+#[allow(deprecated)]
 fn do_bench(c: &mut Criterion, name: &str, json: &str, schema: SchemaRef) {
     c.bench_function(&format!("{name} (basic)"), |b| {
         b.iter(|| {
             let cursor = Cursor::new(black_box(json));
-            let builder = ReaderBuilder::new()
+            let builder = arrow_json::ReaderBuilder::new()
                 .with_schema(schema.clone())
                 .with_batch_size(64);
 
diff --git a/parquet/src/arrow/arrow_writer/levels.rs 
b/parquet/src/arrow/arrow_writer/levels.rs
index f427ce3e1..11ed35263 100644
--- a/parquet/src/arrow/arrow_writer/levels.rs
+++ b/parquet/src/arrow/arrow_writer/levels.rs
@@ -1121,7 +1121,7 @@ mod tests {
         // Note: we are using the JSON Arrow reader for brevity
         let json_content = r#"
         {"stocks":{"long": "$AAA", "short": "$BBB"}}
-        {"stocks":{"long": null, "long": "$CCC", "short": null}}
+        {"stocks":{"long": "$CCC", "short": null}}
         {"stocks":{"hedged": "$YYY", "long": null, "short": "$D"}}
         "#;
         let entries_struct_type = DataType::Struct(vec![
@@ -1138,9 +1138,7 @@ mod tests {
             false,
         );
         let schema = Arc::new(Schema::new(vec![stocks_field]));
-        let builder = arrow::json::ReaderBuilder::new()
-            .with_schema(schema)
-            .with_batch_size(64);
+        let builder = 
arrow::json::RawReaderBuilder::new(schema).with_batch_size(64);
         let mut reader = 
builder.build(std::io::Cursor::new(json_content)).unwrap();
 
         let batch = reader.next().unwrap().unwrap();
diff --git a/parquet/src/arrow/arrow_writer/mod.rs 
b/parquet/src/arrow/arrow_writer/mod.rs
index 6260c2ed4..e6693a6cf 100644
--- a/parquet/src/arrow/arrow_writer/mod.rs
+++ b/parquet/src/arrow/arrow_writer/mod.rs
@@ -1026,9 +1026,7 @@ mod tests {
             true,
         );
         let schema = Arc::new(Schema::new(vec![stocks_field]));
-        let builder = arrow::json::ReaderBuilder::new()
-            .with_schema(schema)
-            .with_batch_size(64);
+        let builder = 
arrow::json::RawReaderBuilder::new(schema).with_batch_size(64);
         let mut reader = 
builder.build(std::io::Cursor::new(json_content)).unwrap();
 
         let batch = reader.next().unwrap().unwrap();

Reply via email to