use vortex_error::VortexResult;
use super::arrays_value_equal;
use crate::ExecutionCtx;
use crate::arrays::ListViewArray;
use crate::arrays::listview::ListViewArrayExt;
pub(super) fn check_listview_constant(
l: &ListViewArray,
ctx: &mut ExecutionCtx,
) -> VortexResult<bool> {
if l.len() <= 1 {
return Ok(true);
}
let first_size = l.size_at(0);
let first_elements = l.list_elements_at(0)?;
for i in 1..l.len() {
if l.size_at(i) != first_size {
return Ok(false);
}
if first_size == 0 {
continue;
}
let current_elements = l.list_elements_at(i)?;
if !arrays_value_equal(&first_elements, ¤t_elements, ctx)? {
return Ok(false);
}
}
Ok(true)
}