Skip to content

ticdc: document ignore-update-only-columns filter - #23523

Open
lidezhu wants to merge 1 commit into
masterfrom
ldz/add-ignore-update-config
Open

ticdc: document ignore-update-only-columns filter#23523
lidezhu wants to merge 1 commit into
masterfrom
ldz/add-ignore-update-config

Conversation

@lidezhu

@lidezhu lidezhu commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

First-time contributors' checklist

What is changed, added or deleted? (Required)

Which TiDB version(s) do your changes apply to? (Required)

Tips for choosing the affected version(s):

By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.

For details, see tips for choosing the affected versions.

  • master (the latest development version)
  • v9.0 (TiDB 9.0 versions)
  • v8.5 (TiDB 8.5 versions)
  • v8.1 (TiDB 8.1 versions)
  • v7.5 (TiDB 7.5 versions)
  • v7.1 (TiDB 7.1 versions)
  • v6.5 (TiDB 6.5 versions)

What is the related PR or file link(s)?

AI agent involvement

  • The changes in this PR were primarily made by an AI agent on behalf of the PR author.

Do your changes match any of the following descriptions?

  • Delete files
  • Change aliases
  • Need modification after applied to another branch
  • Might cause conflicts after applied to another branch

Summary by CodeRabbit

  • New Features

    • Added the ignore-update-only-columns event-filter option for Kafka changefeeds.
    • UPDATE events are filtered when only configured columns change, except when primary or unique keys are modified.
    • Added OpenAPI support for configuring and viewing this option.
  • Documentation

    • Documented case sensitivity, invalid-column warnings, and behavior for non-Kafka downstreams.

@ti-chi-bot

ti-chi-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign csuzhangxc for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ti-chi-bot ti-chi-bot Bot added missing-translation-status This PR does not have translation status info. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Aug 13, 2026
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The documentation adds the Kafka-only ignore-update-only-columns filter, its matching rules, and its exceptions. OpenAPI v2 create, response, and update configuration examples now include the option.

Changes

TiCDC filter documentation

Layer / File(s) Summary
Document filter behavior
ticdc/ticdc-changefeed-config.md, ticdc/ticdc-filter.md, ticdc/ticdc-open-api-v2.md
Documents the filter syntax, Kafka-only behavior, update-column matching, key-column exceptions, case sensitivity, and nonexistent-column handling.
Update OpenAPI configuration schemas
ticdc/ticdc-open-api-v2.md
Adds ignore_update_only_columns to create, response, and update replication-task configuration examples.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Mergeability Score: ⚪ Minimal · up to 999e6

The PR adds documentation for the filter behavior, but one statement should clarify that updates to primary-key or unique-key columns are not filtered. This is a localized documentation correction with no runtime impact.

Suggested reviewers: qiancai

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description selects the affected versions and provides a reference, but it leaves the required change summary section empty. Add a concise summary of what was documented and why, including the affected TiCDC filter behavior.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the TiCDC documentation change for the ignore-update-only-columns filter.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ldz/add-ignore-update-config

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 538b94ba-d150-4158-8ce6-c3717b20b445

📥 Commits

Reviewing files that changed from the base of the PR and between 97bbec4 and 999e668.

📒 Files selected for processing (3)
  • ticdc/ticdc-changefeed-config.md
  • ticdc/ticdc-filter.md
  • ticdc/ticdc-open-api-v2.md

| `ignore_sql` | `STRING ARRAY` type. For example, `["^drop", "add column"]` means to filter out DDL statements that start with `DROP` or contain `ADD COLUMN`. (Optional) |
| `ignore_update_new_value_expr` | `STRING ARRAY` type. For example, `"gender = 'male'"` means to filter out the UPDATE DML statements with the new value `gender = 'male'`. (Optional) |
| `ignore_update_old_value_expr` | `STRING ARRAY` type. For example, `"age < 18"` means to filter out the UPDATE DML statements with the old value `age < 18`. (Optional) |
| `ignore_update_only_columns` | `STRING ARRAY` type. Introduced in v8.5.8 and applicable only to Kafka downstreams. If all columns whose values are changed in an UPDATE event are included in this array, TiCDC filters out the event. For example, `["version", "updated_at"]`. (Optional) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Document the primary/unique-key exception.

Line 298 states that every matching update is filtered. This conflicts with ticdc/ticdc-filter.md: TiCDC does not filter the event when a changed column is a primary key or unique key column.

As per path instructions: “For every actionable issue, provide a GitHub committable suggestion block when the fix can be safely applied to contiguous lines.”

Apply this suggestion
Suggested change
| `ignore_update_only_columns` | `STRING ARRAY` type. Introduced in v8.5.8 and applicable only to Kafka downstreams. If all columns whose values are changed in an UPDATE event are included in this array, TiCDC filters out the event. For example, `["version", "updated_at"]`. (Optional) |
| `ignore_update_only_columns` | `STRING ARRAY` type. Introduced in v8.5.8 and applicable only to Kafka downstreams. If all columns whose values are changed in an `UPDATE` event are included in this array, TiCDC filters out the event, except when the event changes a primary key or unique key column. For example, `["version", "updated_at"]`. (Optional) |

Source: Path instructions

@lilin90 lilin90 added the translation/done This PR has been translated from English into Chinese and updated to pingcap/docs-cn in a PR. label Aug 13, 2026
@ti-chi-bot ti-chi-bot Bot removed the missing-translation-status This PR does not have translation status info. label Aug 13, 2026
@lilin90 lilin90 added translation/from-docs-cn This PR is translated from a PR in pingcap/docs-cn. for-release This PR relates to a TiDB release but does not have a tracked feature. and removed translation/done This PR has been translated from English into Chinese and updated to pingcap/docs-cn in a PR. for-release This PR relates to a TiDB release but does not have a tracked feature. labels Aug 13, 2026
@lilin90 lilin90 self-assigned this Aug 13, 2026
@lilin90 lilin90 added area/ticdc Indicates that the Issue or PR belongs to the area of TiCDC. needs-cherry-pick-release-8.5 Should cherry pick this PR to release-8.5 branch. labels Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ticdc Indicates that the Issue or PR belongs to the area of TiCDC. needs-cherry-pick-release-8.5 Should cherry pick this PR to release-8.5 branch. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. translation/from-docs-cn This PR is translated from a PR in pingcap/docs-cn.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants