In DBZ-6225, it was identified that the schema type associated with TINYINT(1)
and BOOLEAN data types wasn't consistent. This converter implementation will
always emit BOOLEAN data types as INT16, similar to TINYINT(1).
In DBZ-6226, it was identified that the schema type associated with REAL data
types wasn't consistent, emitted as FLOAT64 during snapshot and FLOAT32 in
the streaming phase. This converter implementation will always emit such types
as FLOAT64 for consistency.
In DBZ-6231, during streaming the DDL parser will get the column type as the
literal type supplied by the user's DDL, i.e. NCHAR or NVARCHAR but when the
DDL is sourced from SHOW CREATE TABLE, MySQL returns these columns as types
of CHAR/VARCHAR but with a character set. By passing the character_set in
the schema consistency, we can deduce nationalized vs non-nationalized.
Added Offsets contract in DebeziumEngine and implemented it as SourceRecordOffsets in EmbeddedEngine.
Added additional method buildOffsets in RecordCommitter for retrieving an Offsets object, implemented
in ConvertingEngineBuilder and EmbeddedEngine. Modified markProcessed method to use Offsets contract.
Updated tests and documentation.
Extended the DebeziumEngine interface to include a new method for marking a
record processed with updated source offsets. Implemented the new interface
method in both ConvertingEngineBuilder and EmbeddedEngine. EmbeddedEngine
creates a new SourceRecord with the updated sourceOffsets and passes this
to the original markProcessed method. Added a unit test in EmbeddedEngineTest
that verifies that the file offset storage contains the updated source offset’s
partition. Added a revapi ignore case to prevent failure from a method added
to an interface without a default method. Updated docs for Debezium Engine
that describe the new functionality.