in src/columnar_storage/src/read.rs [262:287]
fn primary_key_eq(
&self,
lhs: &RecordBatch,
lhs_idx: usize,
rhs: &RecordBatch,
rhs_idx: usize,
) -> bool {
for k in 0..self.num_primary_keys {
let lhs_col = lhs.column(k);
let rhs_col = rhs.column(k);
compare_primitive_columns!(
lhs_col, rhs_col, lhs_idx, rhs_idx, // TODO: Add more types here
UInt8Type, Int8Type, UInt32Type, Int32Type, UInt64Type, Int64Type
);
if let Some(lhs_col) = lhs_col.as_bytes_opt::<GenericBinaryType<i32>>() {
let rhs_col = rhs_col.as_bytes::<GenericBinaryType<i32>>();
if !rhs_col.value(rhs_idx).eq(lhs_col.value(lhs_idx)) {
return false;
}
}
}
true
}