liquid-cache 0.1.12

10x lower latency for cloud-native DataFusion
Documentation
#[cfg(test)]
pub(crate) fn gen_test_decimal_array<T: arrow::datatypes::DecimalType>(
    data_type: arrow_schema::DataType,
) -> arrow::array::PrimitiveArray<T> {
    use arrow::{
        array::{AsArray, Int64Builder},
        compute::kernels::cast,
    };

    let mut builder = Int64Builder::new();
    for i in 0..4096i64 {
        if i % 97 == 0 {
            builder.append_null();
        } else {
            let value = if i % 5 == 0 {
                i * 1000 + 123
            } else if i % 3 == 0 {
                42
            } else if i % 7 == 0 {
                i * 1_000_000 + 456789
            } else {
                i * 100 + 42
            };
            builder.append_value(value);
        }
    }
    let array = builder.finish();
    cast(&array, &data_type)
        .unwrap()
        .as_primitive::<T>()
        .clone()
}