お知らせ - 14系#
14.10リリース - 2024-11-12#
改良#
index_column_diff
サポートを改良#
MroongaもMroongaが使っているGroongaもNULL
をサポートしていません。そもそもNULL
を挿入するときの挙動は未定義です。これは今後も変わりません(MroongaではNULL
を使うべきはありません!)が、このリリースではいくつか挙動を変えました。
Groongaはindex_column_diff
コマンドを提供しています。これを使うと壊れたインデックスを検出できます。
現在のNULL
関連の挙動では、壊れていないインデックスを壊れたインデックスとして検出してしまうことがあります。そのため、このリリースではこの誤検出を避けるようにいくつかNULL
関連の挙動を変更しました。
この変更でいくつかNULL
関連の挙動も変わっていますが、この挙動に依存するべきではありません!(この挙動に依存して欲しくないので、ここではどのように変わったかの詳細は説明しません。)
次の型の挙動が変わりました。
bit
datetime
double
enum
float
int
set
smallint
time
timestamp
tinyint
year
将来的に他の型の挙動も変わる予定です。
bit
をサポート#
現在のbit
実装はぜんぜん動いていませんでした。おそらくだれも使っていなかったのでしょう。。。
このリリースではbit
実装を書き直しました。bit
がちゃんと動くようになりました。
修正#
year(2)
の70
-99
の扱いを修正#
70
-99
は1970
-1999
として扱われないといけませんが、2070
-2099
として扱われていました。このリリースではこの問題を修正しました。
year(2)
を使うべきはないことに注意してください。MariaDBでは非推奨になっていますし、MySQLではサポートが打ち切られています。
14.08リリース - 2024-09-25#
改良#
ビルドにGNU Autotoolsの代わりにCMakeを使うようにしました
configure
は非推奨となります。ソースからのビルドには、cmake
を使うことをおすすめします。cmake
でのビルド方法については、[その他]を参照してください。
修正#
複数の主キーがあり、かつ主キーに
VARBINARY
型またはBLOB
型のカラムがある場合に、SELECT
が誤った結果を返す問題を修正しました。この問題が発生した場合、以下のクエリーは何も取得しません。
CREATE TABLE logs ( id INT, content VARBINARY(256), PRIMARY KEY (id, content) ) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO logs(id, content) VALUES (1, 'aaa'); INSERT INTO logs(id, content) VALUES (2, 'bbb'); SELECT * FROM logs WHERE content = 'aaa';
この問題はMroonga 14.07でのみ発生します。
この問題はインデックスを破壊しません。そのため、この修正後に
REINDEX
を実行する必要はありません。
感謝#
Jérome Perrinさん
14.07リリース - 2024-09-06#
改良#
[AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL Community Server 8.4.2 をサポートしました。
[AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL Community Server 8.0.39 をサポートしました。
[AlmaLinux] Percona Server 8.0.37-29 をサポートしました。
[Ubuntu] MySQL 8.0.39 をサポートしました。
[AlmaLinux] MariaDB 10.5.26、10.6.19、10.11.9、11.4.3 をサポートしました。
[Ubuntu] MariaDB 10.6.18 と 10.11.8 をサポートしました。
降順インデックスのサポートを無効にしました。 [GitHub #764][Josep Sanzさんの報告]
MariaDB >= 10.8 で降順インデックスをサポートしない場合、Mroongaは誤った結果を返します。そのため、降順インデックスのサポートを無効にしましたが、後日サポートするかもしれません。
MySQL >= 8.0で降順インデックスを使った場合は、MySQLがエラーを返します。
修正#
FLUSH TABLES
とINSERT
の同時実行でクラッシュする問題を修正しました。 [GitHub #743][Watsonさんの報告]
感謝#
Josep Sanzさん
Watsonさん
14.04リリース - 2024-06-12#
改良#
[AlmaLinux] MariaDB 10.5.25、10.6.18、10.11.8 をサポートしました。
[Ubuntu] MariaDB 10.11.7 をサポートしました。
[Ubuntu] MariaDB 10.6.18 をサポートしました。
[Debian GNU/Linux] MariaDB 10.11.8 をサポートしました。
[Ubuntu] MySQL 8.0.36 をサポートしました。
[AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL Community Server 8.0.37 をサポートしました。
[AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL Community Server 8.4 をサポートしました。
[AlmaLinux] Percona Server 8.0.36-28 をサポートしました。
[Ubuntu] Ubuntu 24.04 (Noble Numbat) をサポートしました。
MySQL Community Server 5.7のサポートをやめました。
MySQL Community Server 5.7 はEOLになったためです。
Percona Server 5.7のサポートをやめました。
Percona Server for MySQL 5.7はEOLになったためです。
MariaDB 10.4 のサポートをやめました。
MariaDB 10.4 は、2024-06-18でEOLになるためです。
MariaDB 10.7、10.8、10.9 のサポートをやめました。
MariaDB 10.7、10.8、10.9 はEOLになったためです。
MariaDB 10.10 のサポートをやめました。
MariaDB 10.10 はサポート期間が短いためです。
Amazon Linux 2 のサポートをやめました。
Groongaで既にAmazon Linux 2 のサポートをやめているためです。
CentOS 7 のサポートをやめました。
CentOS 7 はEOLになったためです。
[Debian GNU/Linux] Debian GNU/Linux bullseye のサポートをやめました。
Debian GNU/Linux bullseye は、2024-07でEOLになるためです。
Mroongaを初期化していない状態で、MroongaのUDFを使用したときにエラーを出力するようにしました。[MDEV-21166][Ian Gilfillanさんの報告]
この修正が入る前は、Mroongaを初期化していない状態(
INSTALL PLUGIN mroonga
を実行していない状態)でMroongaのUDFを使用するとクラッシュしてしまいました。この修正によって、クラッシュではなく、エラーをログに出力するようになります。
修正#
[ラッパーモード] オンラインDDLに対応していないストレージエンジンをラップしている場合にメモリーリークする問題を修正しました。
通常、
ALTER TABLE
のようなDDL操作は、排他制御を行うため、実行中は対象のテーブルへの操作がブロックされますが、ストレージエンジンによっては、実行中であっても、対象のテーブルを操作することもできます。(もちろん排他的に実行することもできます。)ALTER TABLE
のようなDDL操作中であっても対象のテーブルへの操作を可能にする機能をオンラインDDLと呼びます。今回の問題は、このオンラインDDLに対応していないストレージエンジンをMroongaのラッパーモードでラップしている場合に発生します。ストレージモードやラッパーモード+InnoDBの組み合わせでは発生しません。
[ストレージモード] 圧縮された
VARCHAR
型のカラム、または、TEXT
型のカラムが存在するテーブルにINSERT
するとクラッシュする問題を修正しました。[MDEV-31966][Elena Stepanovaさんの報告]ストレージモードでのみ発生します。ラッパーモードでは発生しません。
感謝#
Ian Gilfillanさん
Elena Stepanovaさん