Skip to content

proto: backport FTS/TiCI query protocols to release-8.5-fts - #429

Open
AilinKid wants to merge 8 commits into
pingcap:feature/release-8.5-ftsfrom
AilinKid:codex/fts-on-release-8.5-fts
Open

AilinKid wants to merge 8 commits into
pingcap:feature/release-8.5-ftsfrom
AilinKid:codex/fts-on-release-8.5-fts

Conversation

@AilinKid

@AilinKid AilinKid commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Backport the existing FTS/TiCI protocol stack to feature/release-8.5-fts for pingcap/tidb#71280.

Cherry-pick the eight previously adapted commits from cp-fts-858-tipb (84229a99a9e2): #357, #360, #362, #364, #366, #374, #389 and #386. Preserve query/tokenizer metadata, TiCI messages, FTS scalar functions and Boolean expressions, phrase matching, and TopN parameters with their existing field numbers and generated Go bindings.

The target starts at 5817d66db9c3; the resulting tree exactly matches the old audited FTS branch. Each commit retains its cherry-pick provenance.

Validation

  • go test -mod=readonly ./... passed.
  • Exact tree equality with the source and git diff --check passed.
  • Rust/C++ generation/builds and live TiCI integration were not run.

Summary by CodeRabbit

  • New Features
    • Added full-text search support for TiFlash, including matching modes, query configuration, ranking, and search performance metrics.
    • Added support for creating, deleting, and monitoring index-building progress through the TiCI indexer service.
    • Added configuration options for index types, parsers, searchable columns, result limits, and sorting.
  • Improvements
    • Updated generated protocol support to provide more consistent integration across TiCI and related components.

breezewish and others added 8 commits September 17, 2026 10:59
Signed-off-by: Wish <breezewish@outlook.com>
(cherry picked from commit 44ad2b3)
Signed-off-by: Wish <breezewish@outlook.com>
(cherry picked from commit 81b8ae1)
* Add tici.proto and update proto.lock files

* Update proto.lock

* Fix tici proto build process with directory structure and compatibility fixes

* Fix relative import in tici.pb.go

* Update go.mod and go.sum for dependencies

* fix the go complie

(cherry picked from commit 7e66865)
Signed-off-by: Wish <breezewish@outlook.com>
(cherry picked from commit c8b1400)
Apply the source proto patch and regenerate executor.pb.go with the release-compatible protoc 3.8.0 and pinned gogo plugin. Keep release protocol and dependency versions.

(cherry picked from commit 56451fd)
(cherry picked from commit 84229a9)
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ec385c95-16e5-4f2e-89ad-9a1a03ca9941

📥 Commits

Reviewing files that changed from the base of the PR and between 5817d66 and b74a3fc.

⛔ Files ignored due to path filters (5)
  • go-tipb/analyze.pb.go is excluded by !**/*.pb.go
  • go-tipb/executor.pb.go is excluded by !**/*.pb.go
  • go-tipb/expression.pb.go is excluded by !**/*.pb.go
  • go-tipb/tici.pb.go is excluded by !**/*.pb.go
  • scripts/proto.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • generate-go.sh
  • proto/executor.proto
  • proto/expression.proto
  • proto/tici/indexer.proto

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The protobuf contracts add TiFlash full-text-search support and define a TiCI indexer gRPC API. The Go generation script places TiCI output in the main tipb package.

Changes

TiFlash full-text search

Layer / File(s) Summary
FTS query and scan contracts
proto/executor.proto, proto/expression.proto
Adds FTS query messages, an IndexScan field, 25 TiFlash scan statistics fields, and five FTS scalar function identifiers.

TiCI indexer API

Layer / File(s) Summary
TiCI indexer protobuf schema
proto/tici/indexer.proto
Defines IndexerService, index and parser enums, index metadata messages, and index-build progress messages.
TiCI Go generation wiring
generate-go.sh
Generates TiCI protobuf code in the main tipb package, moves the generated file, and removes dot imports.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to b74a3

No concrete merge-blocking behavior issue is established in the added protobuf contracts or generation wiring.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the backport of the FTS/TiCI query protocols and names the target release branch.
Description check ✅ Passed The description provides the problem context, scope of changes, target branch, commit provenance, and validation results. It does not use every template heading and omits explicit related-change entri…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Some tools did not complete. Review the errors below.

🔧 Buf (1.72.0)
proto/executor.proto

fatal: unable to access 'https://github.com/pingcap/tipb.git/': Failed to connect to github.com:443 over proxy 127.0.0.1 after 0 ms: Could not connect to server
fatal: could not fetch 2b262009ca900d9de6774e788509aa6d88225192 from promisor remote

proto/expression.proto

fatal: unable to access 'https://github.com/pingcap/tipb.git/': Failed to connect to github.com:443 over proxy 127.0.0.1 after 0 ms: Could not connect to server
fatal: could not fetch 2b262009ca900d9de6774e788509aa6d88225192 from promisor remote

proto/tici/indexer.proto

fatal: unable to access 'https://github.com/pingcap/tipb.git/': Failed to connect to github.com:443 over proxy 127.0.0.1 after 0 ms: Could not connect to server
fatal: could not fetch 2b262009ca900d9de6774e788509aa6d88225192 from promisor remote


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

A rabbit reads the schemas bright
FTS fields hop into the light
TiCI maps its indexes wide
Build progress bounds from side to side
Go files land where packages meet
Protobuf paths are neat and fleet

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants