Skip to content

Commit 6bf0aab

Browse files
authored
Deprecate old JSON reader (#3610) (#3718)
1 parent 61ea9f2 commit 6bf0aab

File tree

7 files changed

+20
-9
lines changed

7 files changed

+20
-9
lines changed

arrow-json/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ pub mod writer;
2828
mod raw;
2929

3030
pub use self::raw::{RawDecoder, RawReader, RawReaderBuilder};
31+
#[allow(deprecated)]
3132
pub use self::reader::{Reader, ReaderBuilder};
3233
pub use self::writer::{ArrayWriter, LineDelimitedWriter, Writer};
3334
use half::f16;

arrow-json/src/raw/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ fn tape_error(d: TapeElement, expected: &str) -> ArrowError {
310310
}
311311

312312
#[cfg(test)]
313+
#[allow(deprecated)]
313314
mod tests {
314315
use super::*;
315316
use crate::reader::infer_json_schema;

arrow-json/src/reader.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ where
584584
/// [`RawDecoder`]: crate::raw::RawDecoder
585585
/// [#3610]: https://github.com/apache/arrow-rs/issues/3610
586586
#[derive(Debug)]
587+
#[deprecated(note = "Use RawDecoder instead")]
587588
pub struct Decoder {
588589
/// Explicit schema for the JSON file
589590
schema: SchemaRef,
@@ -640,6 +641,7 @@ impl DecoderOptions {
640641
}
641642
}
642643

644+
#[allow(deprecated)]
643645
impl Decoder {
644646
/// Create a new JSON decoder from some value that implements an
645647
/// iterator over [`serde_json::Value`]s (aka implements the
@@ -1606,12 +1608,15 @@ fn flatten_json_string_values(values: &[Value]) -> Vec<Option<String>> {
16061608
/// [`RawReader`]: crate::raw::RawReader
16071609
/// [#3610]: https://github.com/apache/arrow-rs/issues/3610
16081610
#[derive(Debug)]
1611+
#[deprecated(note = "Use RawReader instead")]
1612+
#[allow(deprecated)]
16091613
pub struct Reader<R: Read> {
16101614
reader: BufReader<R>,
16111615
/// JSON value decoder
16121616
decoder: Decoder,
16131617
}
16141618

1619+
#[allow(deprecated)]
16151620
impl<R: Read> Reader<R> {
16161621
/// Create a new JSON Reader from any value that implements the `Read` trait.
16171622
///
@@ -1658,6 +1663,7 @@ impl<R: Read> Reader<R> {
16581663
/// [#3610]: https://github.com/apache/arrow-rs/issues/3610
16591664
///
16601665
#[derive(Debug, Default)]
1666+
#[deprecated(note = "Use RawReaderBuilder instead")]
16611667
pub struct ReaderBuilder {
16621668
/// Optional schema for the JSON file
16631669
///
@@ -1672,6 +1678,7 @@ pub struct ReaderBuilder {
16721678
options: DecoderOptions,
16731679
}
16741680

1681+
#[allow(deprecated)]
16751682
impl ReaderBuilder {
16761683
/// Create a new builder for configuring JSON parsing options.
16771684
///
@@ -1752,6 +1759,7 @@ impl ReaderBuilder {
17521759
}
17531760
}
17541761

1762+
#[allow(deprecated)]
17551763
impl<R: Read> Iterator for Reader<R> {
17561764
type Item = Result<RecordBatch, ArrowError>;
17571765

@@ -1761,6 +1769,7 @@ impl<R: Read> Iterator for Reader<R> {
17611769
}
17621770

17631771
#[cfg(test)]
1772+
#[allow(deprecated)]
17641773
mod tests {
17651774
use super::*;
17661775
use arrow_array::cast::{

arrow-json/src/writer.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ mod tests {
12181218
);
12191219
}
12201220

1221+
#[allow(deprecated)]
12211222
fn test_write_for_file(test_file: &str) {
12221223
let builder = ReaderBuilder::new()
12231224
.infer_schema(None)
@@ -1295,6 +1296,7 @@ mod tests {
12951296
}
12961297

12971298
#[test]
1299+
#[allow(deprecated)]
12981300
fn json_list_roundtrip() {
12991301
let json_content = r#"
13001302
{"list": [{"ints": 1}]}
@@ -1406,6 +1408,7 @@ mod tests {
14061408
}
14071409

14081410
#[test]
1411+
#[allow(deprecated)]
14091412
fn test_write_single_batch() {
14101413
let test_file = "test/data/basic.json";
14111414
let builder = ReaderBuilder::new()

arrow/benches/json_reader.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,17 @@ use arrow::util::bench_util::{
2222
create_primitive_array, create_string_array, create_string_array_with_len,
2323
};
2424
use arrow_array::RecordBatch;
25+
use arrow_json::LineDelimitedWriter;
2526
use arrow_json::RawReaderBuilder;
26-
use arrow_json::{LineDelimitedWriter, ReaderBuilder};
2727
use std::io::Cursor;
2828
use std::sync::Arc;
2929

30+
#[allow(deprecated)]
3031
fn do_bench(c: &mut Criterion, name: &str, json: &str, schema: SchemaRef) {
3132
c.bench_function(&format!("{name} (basic)"), |b| {
3233
b.iter(|| {
3334
let cursor = Cursor::new(black_box(json));
34-
let builder = ReaderBuilder::new()
35+
let builder = arrow_json::ReaderBuilder::new()
3536
.with_schema(schema.clone())
3637
.with_batch_size(64);
3738

parquet/src/arrow/arrow_writer/levels.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,7 @@ mod tests {
11211121
// Note: we are using the JSON Arrow reader for brevity
11221122
let json_content = r#"
11231123
{"stocks":{"long": "$AAA", "short": "$BBB"}}
1124-
{"stocks":{"long": null, "long": "$CCC", "short": null}}
1124+
{"stocks":{"long": "$CCC", "short": null}}
11251125
{"stocks":{"hedged": "$YYY", "long": null, "short": "$D"}}
11261126
"#;
11271127
let entries_struct_type = DataType::Struct(vec![
@@ -1138,9 +1138,7 @@ mod tests {
11381138
false,
11391139
);
11401140
let schema = Arc::new(Schema::new(vec![stocks_field]));
1141-
let builder = arrow::json::ReaderBuilder::new()
1142-
.with_schema(schema)
1143-
.with_batch_size(64);
1141+
let builder = arrow::json::RawReaderBuilder::new(schema).with_batch_size(64);
11441142
let mut reader = builder.build(std::io::Cursor::new(json_content)).unwrap();
11451143

11461144
let batch = reader.next().unwrap().unwrap();

parquet/src/arrow/arrow_writer/mod.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,9 +1026,7 @@ mod tests {
10261026
true,
10271027
);
10281028
let schema = Arc::new(Schema::new(vec![stocks_field]));
1029-
let builder = arrow::json::ReaderBuilder::new()
1030-
.with_schema(schema)
1031-
.with_batch_size(64);
1029+
let builder = arrow::json::RawReaderBuilder::new(schema).with_batch_size(64);
10321030
let mut reader = builder.build(std::io::Cursor::new(json_content)).unwrap();
10331031

10341032
let batch = reader.next().unwrap().unwrap();

0 commit comments

Comments
 (0)