()
| 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() { |
nothing calls this directly
no test coverage detected