-
Feature Request
-
Resolution: Unresolved
-
Major
-
2.3.0.Final
-
None
-
False
-
-
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"
}