Skip to content

planner: FTS LIKE fallback reports an error for boolean MATCH AGAINST syntax that native FTS can handle #68489

@lilinghai

Description

@lilinghai

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

This was found while testing the feature/fts branch after the FTS LIKE fallback changes. This does not affect master.

create table t(a int primary key, b varchar(100), fulltext index(b));

set @@tidb_opt_enable_alternative_logical_plans = on;
select * from t where match(b) against ('hello*' in boolean mode);

select * from t where match(b) against ('"hello word"' in boolean mode);

2. What did you expect to see? (Required)

If the LIKE fallback cannot translate a boolean-mode full-text search string such as prefix search (hello*) or phrase search ("hello word"), TiDB should continue to use the native FTS plan when a fulltext index/native FTS path is available.

Enabling alternative logical plans should not turn a native-FTS-supported query into a planning error only because the fallback candidate cannot handle the syntax.

3. What did you see instead (Required)

The query fails during fallback handling:

ERROR 1235 (42000): This version of TiDB doesn't yet support 'MATCH...AGAINST search term 'hello*' is not supported in the LIKE fallback'

For phrase search:

ERROR 1235 (42000): This version of TiDB doesn't yet support 'MATCH...AGAINST search term '"hello' is not supported in the LIKE fallback'

The fallback currently supports only a restricted subset (word, +word, -word) and rejects more complex boolean-mode syntax. The rejected fallback should not mask an otherwise valid native FTS execution path.

4. What is your TiDB version? (Required)

feature/fts branch after PR #68383.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature/developingthe related feature is in developmenttype/bugThe issue is confirmed as a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions