MySQL 5.7 で非ネイティブなパーティションを判別

MySQL 5.7 へのアップグレード時に、パーティションを更新しないと該当テーブル検索時に以下のような警告が出力されるようになります。

非推奨パーティションの警告
The partition engine, used by table 'テーブル名', is deprecated and 
will be removed in a future release. Please use native partitioning instead.

これ自体は以下を実行して InnoDB native なパーティションへ更新すれば解決する話ですが。

native partitioning への更新方法
ALTER TABLE テーブル名 ENGINE = INNODB;

パーティションの native と 非native を見分けるにはどうすればよいのか気になったので information_schema のテーブルを調べてみました。

PARTITIONS テーブル等には特に違いが見られなかったのですが、INNODB_SYS_TABLES テーブルの FILE_FORMATROW_FORMAT の値で違いを確認できました。

INNODB_SYS_TABLES の内容
パーティション FILE_FORMAT ROW_FORMAT
非native の場合 Antelope Compact
native の場合 Barracuda Dynamic

なお、INNODB_SYS_TABLES テーブルでパーティションに関するレコードは、NAME の値が スキーマ名/テーブル名#P#パーティション名[#SP#サブパーティション名] のようになっていました。

ALTER TABLE ・・・パーティションを更新すると、Antelope と Compact から Barracuda と Dynamic へ変化したので、とりあえずはこれで判別できそうです。