in crates/core/src/file_group/log_file/content.rs [218:250]
fn test_decode_parquet_content() -> Result<()> {
// Create sample parquet bytes
let schema = Arc::new(Schema::new(vec![
Field::new("id", DataType::Int64, false),
Field::new("name", DataType::Utf8, false),
]));
let ids = Int64Array::from(vec![1, 2, 3]);
let names = StringArray::from(vec!["a", "b", "c"]);
let batch = RecordBatch::try_new(
schema.clone(),
vec![Arc::new(ids) as ArrayRef, Arc::new(names) as ArrayRef],
)?;
let mut buf = Vec::new();
{
let mut writer = ArrowWriter::try_new(&mut buf, schema, None)?;
writer.write(&batch)?;
writer.close()?;
}
let hudi_configs = HudiConfigs::empty();
let decoder = Decoder::new(Arc::new(hudi_configs));
let bytes = Bytes::from(buf);
let mut reader = BufReader::with_capacity(bytes.len(), Cursor::new(bytes));
let batches = decoder.decode_parquet_record_content(&mut reader)?;
assert_eq!(batches.len(), 1);
assert_eq!(batches[0].num_rows(), 3);
Ok(())
}