bulk-cdk-toolkit-extract-cdc: fix CustomConverter bug #50967
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
I made a mistake in assuming that the
outputSchema
value could be re-used for multiple columns, but that turns out to not be the case. What debezium really wants is a new instance of aSchemaBuilder
for each column for which we register aCustomConverter
.This bug becomes apparent when applying the same converter logic to two columns of the same type in the same table and with default values. This isn't covered in any test and I'm not sure that this can be tested adequately in the CDK.
How
This requires turning
outputSchema
from a value to a function, at which point I felt it made more sense to turnHandler
into an interface.Review guide
See accompanying PR #50965 which applies these changes to source-mysql.
User Impact
Should unblock the source-mysql rollout.
Can this PR be safely reverted and rolled back?