MCPcopy Create free account
hub / github.com/apache/arrow-rs / encode_rows_multiple_columns

Function encode_rows_multiple_columns

arrow-avro/src/writer/encoder.rs:3645–3687  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3643
3644 #[test]
3645 fn encode_rows_multiple_columns() {
3646 let schema = ArrowSchema::new(vec![
3647 Field::new("a", DataType::Int32, false),
3648 Field::new("b", DataType::Utf8, false),
3649 ]);
3650 let int_arr = Int32Array::from(vec![10, 20]);
3651 let str_arr = StringArray::from(vec!["hello", "world"]);
3652 let batch = RecordBatch::try_new(
3653 Arc::new(schema.clone()),
3654 vec![Arc::new(int_arr), Arc::new(str_arr)],
3655 )
3656 .unwrap();
3657 let encoder = RecordEncoder {
3658 columns: vec![
3659 FieldBinding {
3660 arrow_index: 0,
3661 nullability: None,
3662 plan: FieldPlan::Scalar,
3663 },
3664 FieldBinding {
3665 arrow_index: 1,
3666 nullability: None,
3667 plan: FieldPlan::Scalar,
3668 },
3669 ],
3670 prefix: None,
3671 };
3672 let mut out = BytesMut::new();
3673 let mut offsets: Vec<usize> = vec![0];
3674 encoder
3675 .encode_rows(&batch, 32, &mut out, &mut offsets)
3676 .unwrap();
3677 assert_eq!(offsets.len(), 3);
3678 assert_eq!(*offsets.last().unwrap(), out.len());
3679 let mut expected_row0 = Vec::new();
3680 expected_row0.extend(avro_long_bytes(10));
3681 expected_row0.extend(avro_len_prefixed_bytes(b"hello"));
3682 assert_bytes_eq(row_slice(&out, &offsets, 0), &expected_row0);
3683 let mut expected_row1 = Vec::new();
3684 expected_row1.extend(avro_long_bytes(20));
3685 expected_row1.extend(avro_len_prefixed_bytes(b"world"));
3686 assert_bytes_eq(row_slice(&out, &offsets, 1), &expected_row1);
3687 }
3688
3689 #[test]
3690 fn encode_rows_with_prefix() {

Callers

nothing calls this directly

Calls 8

try_newFunction · 0.85
avro_long_bytesFunction · 0.85
avro_len_prefixed_bytesFunction · 0.85
assert_bytes_eqFunction · 0.85
row_sliceFunction · 0.85
encode_rowsMethod · 0.80
cloneMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected