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.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
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