Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DBZ-6786 Use custom row deserializers in case of binlog compression #4759

Merged
merged 2 commits into from
Aug 14, 2023

Conversation

rolevinks
Copy link
Contributor

No description provided.

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

Welcome as a new contributor to Debezium, @rolevinks. Reviewers, please add missing author name(s) and alias name(s) to the COPYRIGHT.txt and Aliases.txt respectively.

Copy link
Contributor

@jpechane jpechane left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rolevinks Thanks, the solution LGTM! Unfortunately we need to test it as well.

Would it be possible to

  • Create a test that fails with disable binlog compession
  • Create a special annotation and rule to mark that test so it is executed only under condition
  • Add a new profile to run test for enabled compression with MySQL compression enabled container
  • Add that execution to assembly profile

That way we'd be able to verify the code works and make it part of our regular CI.

@rolevinks
Copy link
Contributor Author

Hi @jpechane
Thanks for the feedback!

There already is a test that uses binlog compression, the TransactionPayloadIT, so I added some checks to that test. I'm not sure how to create a test that fails with the binlog compression disabled, because then the flow just would not go through the TransactionPayloadDeserializer , but it would go through the custom RowDeserializers and succeed.

Please let me know if this is enough as far as testing goes.

@jpechane
Copy link
Contributor

@rolevinks According to the Jira the issue is visible for UUID, so maybe adding a UUID column to the test would revela the problem?

@rolevinks
Copy link
Contributor Author

@jpechane Yes, that's what I did. I added a binary(16) column to the TransactionPayloadIT and checked that the record contains the correct value.

@jpechane
Copy link
Contributor

So, if the test is used on non-fixed branch and run against compression enabled MySQL then wil it fail?

@rolevinks
Copy link
Contributor Author

That is correct.

@jpechane jpechane merged commit 80b1518 into debezium:main Aug 14, 2023
22 of 23 checks passed
@jpechane
Copy link
Contributor

@rolevinks Applied, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants