お知らせ - 14系#

14.10リリース - 2024-11-12#

改良#

index_column_diffサポートを改良#

GH-789

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をサポート#

GH-798

現在のbit実装はぜんぜん動いていませんでした。おそらくだれも使っていなかったのでしょう。。。

このリリースではbit実装を書き直しました。bitがちゃんと動くようになりました。

修正#

year(2)70-99の扱いを修正#

GH-804

70-991970-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 TABLESINSERTの同時実行でクラッシュする問題を修正しました。 [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さん