Bug #68622 Fulltext parser not used for InnoDB
Description:
The configured fulltext parser plugin seems to be ignored for InnoDB tables.
How to repeat:
Use the simple_parser plugin as explained on:
http://dev.mysql.com/doc/refman/5.6/en/writing-full-text-plugins.html
And then try to use it on a InnoDB table.
mysql [localhost] {msandbox} (test) > show create table t;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t | CREATE TABLE `t` (
`c` varchar(255) DEFAULT NULL,
FULLTEXT KEY `c` (`c`) /*!50100 WITH PARSER `simple_parser` */
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql [localhost] {msandbox} (test) > select * from t;
+-------------------------------------------------+
| c |
+-------------------------------------------------+
| latin1_general_cs is a case-sensitive collation |
| I'd like a case of oranges |
| this is sensitive information |
| another row |
| yet another row |
+-------------------------------------------------+
5 rows in set (0.00 sec)
mysql [localhost] {msandbox} (test) > optimize table t;
+--------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------+----------+----------+----------+
| test.t | optimize | status | OK |
+--------+----------+----------+----------+
1 row in set (0.00 sec)
mysql [localhost] {msandbox} (test) > \! ./my isam_ftdump -c data/test/t 0
2 0.4054651 a
2 0.4054651 another
1 1.3862944 case
1 1.3862944 case-sensitive
1 1.3862944 collation
1 1.3862944 i'd
1 1.3862944 information
2 0.4054651 is
1 1.3862944 latin1_general_cs
1 1.3862944 like
1 1.3862944 of
1 1.3862944 oranges
2 0.4054651 row
1 1.3862944 sensitive
1 1.3862944 this
1 1.3862944 yet
mysql [localhost] {msandbox} (test) > alter table t engine=innodb;
Query OK, 5 rows affected (0.25 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql [localhost] {msandbox} (test) > optimize table t;
+--------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------+----------+----------+----------+
| test.t | optimize | status | OK |
+--------+----------+----------+----------+
1 row in set (0.00 sec)
mysql [localhost] {msandbox} (test) > SET GLOBAL innodb_ft_aux_table='test/t';
Query OK, 0 rows affected (0.00 sec)
mysql [localhost] {msandbox} (test) > select * from information_schema.innodb_ft_index_table;
+-------------------+--------------+-------------+-----------+--------+----------+
| WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION |
+-------------------+--------------+-------------+-----------+--------+----------+
| another | 4 | 5 | 2 | 4 | 0 |
| another | 4 | 5 | 2 | 5 | 4 |
| case | 1 | 2 | 2 | 1 | 23 |
| case | 1 | 2 | 2 | 2 | 11 |
| collation | 1 | 1 | 1 | 1 | 38 |
| information | 3 | 3 | 1 | 3 | 18 |
| latin1_general_cs | 1 | 1 | 1 | 1 | 0 |
| like | 2 | 2 | 1 | 2 | 4 |
| oranges | 2 | 2 | 1 | 2 | 19 |
| row | 4 | 5 | 2 | 4 | 8 |
| row | 4 | 5 | 2 | 5 | 12 |
| sensitive | 1 | 3 | 2 | 1 | 28 |
| sensitive | 1 | 3 | 2 | 3 | 8 |
| yet | 5 | 5 | 1 | 5 | 0 |
+-------------------+--------------+-------------+-----------+--------+----------+
14 rows in set (0.01 sec)
mysql [localhost] {msandbox} (test) > select * from t where match(c) against('of');
Empty set (0.00 sec)
mysql [localhost] {msandbox} (test) > select * from t where match(c) against('i\'d');
Empty set (0.00 sec)
mysql [localhost] {msandbox} (test) > alter table t engine=myisam;
Query OK, 5 rows affected (0.03 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql [localhost] {msandbox} (test) > select * from t where match(c) against('of');
+----------------------------+
| c |
+----------------------------+
| I'd like a case of oranges |
+----------------------------+
1 row in set (0.00 sec)
mysql [localhost] {msandbox} (test) > select * from t where match(c) against('i\'d');
+----------------------------+
| c |
+----------------------------+
| I'd like a case of oranges |
+----------------------------+
1 row in set (0.00 sec)
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.052 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.