sink: add Debezium numeric and binary handling modes (#6263) - #6282
Conversation
Signed-off-by: ti-chi-bot <ti-community-prow-bot@tidb.io>
|
@wk989898 This PR has conflicts, I have hold it. |
|
@ti-chi-bot: ## If you want to know how to resolve it, please read the guide in TiDB Dev Guide. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds Debezium decimal, unsigned BIGINT, and binary handling modes. It propagates these modes through API and codec configuration, applies them during JSON encoding and decoding, and adds unit, integration, and Kafka utility coverage. ChangesDebezium handling modes
Priority: ➖ Normal Estimated code review effort: 5 (Critical) | ~90 minutes Change: Feature · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant SinkConfig
participant ConfigApply
participant dbzCodec
participant Kafka
participant DebeziumDecoder
SinkConfig->>ConfigApply: TOML and URI handling modes
ConfigApply->>ConfigApply: Merge and validate mode values
ConfigApply->>dbzCodec: Resolved Debezium configuration
dbzCodec->>Kafka: Encode schemas, defaults, and row values
Kafka->>DebeziumDecoder: Deliver Debezium payload
DebeziumDecoder->>DebeziumDecoder: Decode configured binary representation
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Out of Scope Changes checkExplanation Issue Resolution Remove the unrelated binary-handling production, API, decoder, and binary-only test changes, and remove the unrelated Kafka dump utility and build changes, unless a linked issue adds those requirements. Keep the Full details: Docstring CoverageExplanation Docstring coverage is 9.09% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 33 functions across 19 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit reads each line, Comment |
|
Cherry-pick conflicts appear resolved; removing the |
|
@coderabbitai[bot]: adding LGTM is restricted to approvers and reviewers in OWNERS files. DetailsIn response to this: Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: coderabbitai[bot], ginkgoch, wk989898 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
7f350be
into
pingcap:release-nextgen-202603
This is an automated cherry-pick of #6263
What problem does this PR solve?
Issue Number: close #6253
What is changed and how it works?
Check List
Tests
Unit test
Integration test
The debezium01/02/03 integration tests compare TiCDC's Debezium JSON output with native Debezium, checking both message schemas and payloads under
matching configurations:
All three use
decimal.handling.mode=stringandbigint.unsigned.handling.mode=long, covering binary encoding, string-encoded decimals, and unsigned BIGINT compatibility. All three tests have passed.Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Summary by CodeRabbit