Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-6621

Different schemas in schema registry for the same structure

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Major Major
    • under-triaging
    • 2.3.0.Final
    • postgresql-connector
    • 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"
                      }
      

            Unassigned Unassigned
            romankudryashov Roman Kudryashov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: