Skip to content

Conversation

@wjhuang2016
Copy link
Member

@wjhuang2016 wjhuang2016 commented Feb 2, 2026

What problem does this PR solve?

Issue Number: ref #xxx

Problem Summary:

  • Support FULLTEXT INDEX creation system variables: innodb_ft_max_token_size, innodb_ft_min_token_size, ngram_token_size, innodb_ft_enable_stopword, innodb_ft_server_stopword_table, innodb_ft_user_stopword_table.
  • Read stopwords from the configured stopword table and pass them to TiCI at index creation time.

What changed and how does it work?

  • Add the above sysvars with validation and cluster persistence.
  • Capture sysvar values into the FULLTEXT index DDL job, so each new FULLTEXT index creation uses a stable snapshot of the sysvars (existing indexes are not affected).
  • Extend TiDB internal TiCI proto (pkg/tici/tici.proto) to carry CreateIndexRequest.parser_info and ParserInfo.stop_words.
  • During FULLTEXT index creation, TiDB builds parser_info.parser_params from job sysvars and (for standard parser + stopwords enabled + stopword table configured) reads stopwords from the table (single VARCHAR column value) and sends the de-duplicated list via parser_info.stop_words.

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

Side effects

  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Breaking backward compatibility

Documentation

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

Add FULLTEXT INDEX DDL system variables and pass tokenizer/stopword config to TiCI during index creation.

@ti-chi-bot ti-chi-bot bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Feb 2, 2026
@codecov
Copy link

codecov bot commented Feb 2, 2026

Codecov Report

❌ Patch coverage is 51.27610% with 210 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.3861%. Comparing base (2d2bd57) to head (515400e).
⚠️ Report is 48 commits behind head on feature/fts.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           feature/fts     #65967        +/-   ##
===================================================
+ Coverage      72.3094%   72.3861%   +0.0767%     
===================================================
  Files             1895       1919        +24     
  Lines           533272     534938      +1666     
===================================================
+ Hits            385606     387221      +1615     
+ Misses          123717     123515       -202     
- Partials         23949      24202       +253     
Flag Coverage Δ
integration 46.1972% <1.1600%> (-0.0820%) ⬇️
unit 69.9475% <51.2761%> (+0.0635%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
dumpling 52.8700% <ø> (ø)
parser ∅ <ø> (∅)
br 63.2926% <ø> (+0.2539%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ti-chi-bot
Copy link

ti-chi-bot bot commented Feb 2, 2026

[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 benjamin2037, yudongusa 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

@wjhuang2016
Copy link
Member Author

/retest

@ti-chi-bot
Copy link

ti-chi-bot bot commented Feb 3, 2026

@wjhuang2016: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
idc-jenkins-ci-tidb/mysql-test 515400e link true /test mysql-test
pull-integration-tici-test 515400e link false /test pull-integration-tici-test

Full PR test history. Your PR dashboard.

Details

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. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant