| Bug #62004 | InnoDB fulltext search not calling into fulltext parser plugins | ||
|---|---|---|---|
| Submitted: | 27 Jul 2011 10:39 | Modified: | 25 Mar 2013 18:23 |
| Reporter: | Hartmut Holzgraefe | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: FULLTEXT search | Severity: | S3 (Non-critical) |
| Version: | 5.6.3-labs-innodb-fts | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
[6 Aug 2011 11:48]
Sveta Smirnova
Thank you for the report. Verified as described.
[4 Sep 2012 14:13]
Sheeri Cabral
Is there an ETA on this feature?
[11 Mar 2013 12:37]
Erlend Dahl
Bug#68622 was marked as a duplicate
[25 Mar 2013 18:23]
Paul DuBois
Noted in 5.6.12, 5.7.2 changelogs. InnoDB does not support full-text parser plugins, but failed to report an error if they were specified. Now an ER_INNODB_NO_FT_USES_PARSER error is returned.

Description: Index definitions that request indexing using a certain fulltext parser plugin like FULLTEXT INDEX (...) WITH PARSER `my_parser` are accepted without warning with ENGINE=innodb, but when data is inserted or queries against the indexed column are performed there are no calls into the specified plugin How to repeat: create a minimal fulltext parser that just logs itself being called to the error log before invoking the default parser: static int my_parser_parse(MYSQL_FTPARSER_PARAM *param) { fprintf(stderr, "my_parser_parse\n"); return param->mysql_parse(param, param->doc, param->length); } then create two identical tables using MyISAM and InnoDB as storage engiens: CREATE TABLE t1 ( id INT AUTO_INCREMENT PRIMARY KEY, doc CHAR(255), FULLTEXT INDEX (doc) WITH PARSER my_parser ) ENGINE=MyISAM; CREATE TABLE t2 ( id INT AUTO_INCREMENT PRIMARY KEY, doc CHAR(255), FULLTEXT INDEX (doc) WITH PARSER my_parser ) ENGINE=innodb; Insert into t1 and check the mysqld error log to see that a call to my_parser_parse() was logged, insert into t2 and see that no additional log line occured in the error log Suggested fix: Either support fulltext parser plugins like MyISAM does (preferred, else InnoDB FTS still can't be considered a full replacement for MyISAM FTS), or at least throw a warning on CREATE TABLE that "WITH PARSER" is not supported with InnoDB FTS