Conversation
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
|
@claude review |
|
Claude finished @connortsui20's task in 2m 58s —— View job PR Review: Fix Array::validity
SummaryThis PR fixes a correctness bug introduced by the vtable refactor: previously, some The approach is architecturally sound and the change is mechanically consistent across ~150 files. A few minor issues are worth noting: Issues1.
// Current (inconsistent):
assert!(primitive_values.validity().unwrap().mask_eq(&validity, &mut ctx)?);
// Expected:
assert!(primitive_values.validity()?.mask_eq(&validity, &mut ctx)?);2. Several production paths use
The 3. Nice micro-optimization in The change from calling 4. Breaking API change in public-api.lock — looks intentional and correct The removal of:
…and the addition of unconstrained 5. Old The removed code in // Old bytebool with_slots:
array.validity = match &slots[VALIDITY_SLOT] {
Some(arr) => Validity::Array(arr.clone()),
None => Validity::from(array.validity.nullability()),
};This would miss the OverallThe core fix is correct and well-motivated. The |
|
lets yolo it I still think that it is weird that validity returns a result (if something has gone wrong with looking up my validity then I feel like that is on me). See #7282 |
Merging this PR will degrade performance by 29.97%
Performance Changes
Comparing Footnotes
|
The vtables refactor ended up obscuring the validity function in favor of ValidityHelper, which was incorrect in a few places.