Details
-
Enhancement
-
Resolution: Unresolved
-
Major
-
2.5.1.Final
-
None
-
False
-
None
-
False
Description
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
debezium-connector-oracle version 2.5.1.Final
What is the connector configuration?
{ "name": "source-test-connector", "config": { "connector.class": "io.debezium.connector.oracle.OracleConnector", "tasks.max": "1", "database.hostname": "oracle", "database.port": "1521", "database.user": "c##dbzuser", "database.password": "dbz", "database.dbname": "orclcdb", "database.pdb.name": "orclpdb1", "database.connection.adapter": "logminer", "topic.prefix": "dbz", "schema.name.adjustment.mode": "avro", "table.include.list": "C##DBZUSER.TEST_TABLE", "include.schema.changes": "false", "schema.history.internal.kafka.bootstrap.servers" : "kafka:9092", "schema.history.internal.kafka.topic": "schema-changes.test", "heartbeat.interval.ms": "60000", "log.mining.strategy": "online_catalog", "log.mining.query.filter.mode": "in", "post.processors": "reselector", "reselector.type": "io.debezium.processors.reselect.ReselectColumnsPostProcessor", "reselector.reselect.columns.include.list": "C##DBZUSER.TEST_TABLE:DATA", "custom.metric.tags": "connector=source-test-connector", "transforms": "unwrap", "transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.enable": "false", "value.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter.schemas.enable": "false" } }
What is the captured database version and mode of deployment?
Oracle Database 19, Docker
What behaviour do you expect?
Oracle connector merges changes for CLOB/BLOB columns without lob.enabled=true.
What behaviour do you see?
Because Oracle Database can generate multiple events for tables with CLOB/BLOB columns within a single insert operation:
3920122 INSERT insert into "C##DBZUSER"."TEST_TABLE"("ID","DATA") values ('1',EMPTY_CLOB()) 3920122 UPDATE update "C##DBZUSER"."TEST_TABLE" set "DATA" = 'data' where "ID" = '1'
Oracle connector also sends multiple messages without merging:
{ "ID": 1, "DATA": "__debezium_unavailable_value" }
{ "ID": 1, "DATA": "data" }
Do you see the same behaviour using the latest relesead Debezium version?
Yes
Feature request or enhancement
<Your answer>
Implementation ideas (optional)
I suggest adding a new option to enable merging changes for CLOB/BLOB columns within a transaction regardless of lob.enabled=true.
Implementing this ticket along with tickets DBZ-7474 and DBZ-7479 will allow for alternative LOB support without lob.enabled=true.