Skip to content

Fix coercion of ignored Avro fields#6700

Open
xiasongh wants to merge 1 commit into
feldera:mainfrom
xiasongh:fix-avro-ignored-coercion
Open

Fix coercion of ignored Avro fields#6700
xiasongh wants to merge 1 commit into
feldera:mainfrom
xiasongh:fix-avro-ignored-coercion

Conversation

@xiasongh

Copy link
Copy Markdown
Contributor

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

  • Unit tests added/updated
  • Integration tests added/updated
  • Documentation updated
  • Changelog updated

Breaking Changes?

Mark if you think the answer is yes for any of these components:

Describe Incompatible Changes

@xiasongh
xiasongh marked this pull request as ready for review July 22, 2026 23:30

@mythical-fred mythical-fred left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants