vortex_dict/compute/
compare.rsuse vortex_array::array::ConstantArray;
use vortex_array::compute::{compare, CompareFn, Operator};
use vortex_array::{ArrayData, IntoArrayData};
use vortex_error::VortexResult;
use crate::{DictArray, DictEncoding};
impl CompareFn<DictArray> for DictEncoding {
fn compare(
&self,
lhs: &DictArray,
rhs: &ArrayData,
operator: Operator,
) -> VortexResult<Option<ArrayData>> {
if let Some(const_scalar) = rhs.as_constant() {
return compare(
lhs.values(),
ConstantArray::new(const_scalar, lhs.values().len()),
operator,
)
.and_then(|values| DictArray::try_new(lhs.codes(), values))
.map(|a| a.into_array())
.map(Some);
}
Ok(None)
}
}