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();