#70 InnoDB does not support FULLTEXT keys.

closed-fixed
nobody
None
5
2008-02-11
2008-02-10
Stefan Geisseler
No

InnoDB does not support FULLTEXT keys. As there are more and more MySQL installations configured to use InnoDB as the default database type, I suggest to either use other keys or force to use MyISAM by adding:

"ENGINE=MyISAM;" to the table creation command:

# videodata
CREATE TABLE videodata (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
[...]
FULLTEXT KEY `plot_idx` (`plot`),
FULLTEXT KEY `actors_idx` (`actors`),
FULLTEXT KEY `comment` (`comment`)
) CHARACTER SET UTF8, ENGINE=MyISAM;

With InnoDB as a default, the installation of videoDB 3.0.0b1 stops, leaving 3 previously created tables in MySQL, which have to be deleted manually.

Discussion

  • Andreas Goetz
    Andreas Goetz
    2008-02-11

    Logged In: YES
    user_id=391980
    Originator: NO

    Fixed in CVS on popular demand.

     
  • Andreas Goetz
    Andreas Goetz
    2008-02-11

    • status: open --> closed-fixed
     
  • Logged In: YES
    user_id=2003451
    Originator: YES

    The way this was fixed is a little bit sloppy.

    1) Why force tables to MyISAM where it is not needed?
    2) Updates from version 2.5.0 and below will gain some new tables in MyISAM, where old tables (and therefore also "videodata") will remain unchanged (maybe InnoDB).

    - A mix of InnoDB and MyISAM is neither a problem nor really prevented.
    - Updates from previous versions will still stop working when using InnoDB as a default. They will have a nonproblematic mix of InnoDB and MyISAM tables, but tables which do not need MyISAM will be forced to use MyISAM, and "videodata" which will need MyISAM will still use InnoDB.

    My suggestion is:
    - Add "ENGINE=MyISAM" for videodata only in install.sql, to make minimal changes (maybe sometimes in the future you need InnoDB or FULLTEXT is supported by InnoDB. In addition, the other tables can be run with the user-chosen engine)
    - Urgently add "ALTER TABLE videodata ENGINE=MyISAM" in upgrade.sql

    If you really want to set all tables to MyISAM, you should also alter all the old tables in upgrade.sql.

     
  • Andreas Goetz
    Andreas Goetz
    2008-02-23

    Logged In: YES
    user_id=391980
    Originator: NO

    good hint. next time a patch instead of a complaint would be highly appreciated.
    fixed in cvs.