Fix coercion of ignored Avro fields#6700
Conversation
mythical-fred
left a comment
There was a problem hiding this comment.
LGTM. The fix is small and targeted: deserialize_ignored_any no longer routes through deserialize_any, which was pulling the ignored field through the coercion path (Debezium ZonedTimestamp and friends) even when the destination table doesn't declare that column. visit_unit() is the right terminal for IgnoredAny — the underlying Value iterator advances at the map layer regardless.
Nice test coverage: test_debezium_ignored_coerced_field exercises the exact scenario (NULL in before, populated in after), and the unit test in deserializer.rs pins the low-level behavior with a nullable coerced ZonedTimestamp. Both would have caught the regression.
Confirmed this is the only deserialize_ignored_any impl under format/avro, so nothing else depends on the previous deserialize_any behavior. APPROVE.
The avro deserializer tries to coerce ignored nullable debezium timestamps and fails due to unexpected type when they are null
Describe Manual Test Plan
Checklist
Breaking Changes?
Mark if you think the answer is yes for any of these components:
Describe Incompatible Changes