-
Feature Request
-
Resolution: Unresolved
-
Major
-
2.3.0.Final
-
None
-
False
-
None
-
False
What Debezium connector do you use and what version?
"io.debezium.connector.postgresql.PostgresConnector"
What is the connector configuration?
{ "name": "book-db-source-connector", "config": { "connector.class": "io.debezium.connector.postgresql.PostgresConnector", "plugin.name": "pgoutput", "database.hostname": "book-db", "database.port": "5432", "database.user": "postgres", "database.password": "password", "database.dbname": "book", "database.server.name": "book", "topic.prefix": "book", "topic.creation.default.replication.factor": 1, "topic.creation.default.partitions": 6, "table.include.list": "public.outbox", "heartbeat.interval.ms": "5000", "slot.name": "book_debezium", "publication.name": "book_publication", "transforms": "outbox", "transforms.outbox.type": "io.debezium.transforms.outbox.EventRouter", "transforms.outbox.table.field.event.key": "event_key", "transforms.outbox.table.expand.json.payload": false, "transforms.outbox.table.json.payload.null.behavior": "ignore", "transforms.outbox.route.by.field": "aggregate_type", "transforms.outbox.route.topic.replacement": "outbox.event.library" } }
What is the captured database version and mode of depoyment?
debezium/postgres:15
What behaviour do you expect?
1 schema for multiple events when they differ in absence/presence of some nullable field/fields
What behaviour do you see?
Multiple schema for events when they differ in absence/presence of some nullable field/fields
If I use `"transforms.outbox.table.json.payload.null.behavior": "ignore"`, then 2 schemas are created in schema registry for 2 events that in DB differ in the value of nullable field. One schema includes the field, another doesn't
If I use `"transforms.outbox.table.json.payload.null.behavior": "optional_bytes"`, then 2 schemas are created in schema registry for 2 events that in DB differ in the value of nullable field. Both schemas include the field but with different types:
1. { "field": "takenBy", "optional": true, "type": "bytes" } 2. { "field": "takenBy", "optional": true, "type": "int32" }