The handling of tables without a PK is inconsistent across connectors currently. The MySQL connector shows what should be done:
- Use the PK column(s) as basis for the Kafka message key
- If no PK columns exist, use the first unique key definition of the table
- Otherwise, emit change events with a null key
This should be done similarly for Postgres, Oracle and SQL Server. Subtasks to this JIRA issue should be created in order to deliver the functionality incrementally, if needed. Tests should be added to make sure that events from such tables can be emitted as expected during snapshotting and streaming phases of the connectors.