News

Release 13.01 - 2023-03-29

Improvements

  • [CentOS][AlmaLinux] Added newly support for MariaDB 10.11 [GitHub#606][Patched by Josep Sanz]

  • [Amazon Linux] Added support for MariaDB 10.5.18-1.amzn2.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.32-24.

  • [CentOS][AlmaLinux] Added support for Percona Server 5.7.41-44.

  • [Oracle Linux] Dropped support for Oracle Linux 8 and 9

    We supported Oracle Linux for installing Mroonga to MySQL official Docker image. However, a package that needed to install to MySQL official Docker image is Mroonga for MySQL community server minimal

    Therefore, we cann’t install Mroonga to MySQL official Docker image even if we use Mroonga for Oracle Linux.

  • [Ubuntu] Dropped support for Ubuntu 18.04.

    Because Ubuntu 18.04 reached EOL.

  • [AlmaLinux] Added support for MySQL community server minimal 8.0.

    This is for supporting the mysql:8.0-oracle Docker image.

Release 13.00 - 2023-02-09

This is a major version up! But It keeps backward compatibility. We can upgrade to 13.00 without rebuilding database.

First of all, we introduce the main changes in 13.00. Then, we introduce the hilight and summary of changes from Mroonga 12.00 to 12.12.

New Features and Improvements in 13.00

Note

Currently, we don’t provide packages of Mroonga 13.00 for Percona Server. Because there is a problem with buildong packages of Mroonga 13.00 for Percona Server. If we will resolve this problem, we will provide packages of Mroonga for Percona Server again.

Improvements

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.38, 10.4.28, 10.5.19, 10.6.12, 10.7.8, 10.8.7, 10.9.5, and 10.10.3.

Higlight and Summary of changes from 12.00 to 12.12

Higlight

  • Added support for reference count mode.

    Though this feature can keep fixed memory usage, its performance would be dropped. Thus, memory increments should be first consideration before using this feature.

    The reference count mode is used with table_open_cache of MySQL.

    MySQL can cache specified number of tables with table_open_cache`. Groonga’s object would not be released because the cached tables are still in use.

    The tables with low usage would be closed if number of open tables is larger than number specified with table_open_cache. Groonga objects would be released at the same time with table closing if the reference count mode is enabled.

    These are how the reference count mode keep fixed memory usage.

    For actual use, we need to adjust balance between memory usage and perfomance with value of table_open_cache while checking memory usage and value of status variables Open_tables. Because this feature can keep fixed memory usage, but its performance would be dropped.

    There is how to check Open_tables as follows.

    SHOW GLOBAL STATUS LIKE 'Open_tables';
    -- +---------------+-------+
    -- | Variable_name | Value |
    -- +---------------+-------+
    -- | Open_tables   | 643   |
    -- +---------------+-------+
    

    Normally, all of tables in use are cached by setting table_open_cache larger than Open_tables. However, if there is limited memory, memory usage would be decreased by releasing memory for tables with low usage dropping from the cache. In order to releasing tables with low usage from the cache, table_open_cache should be set smaller than Open_tables. The smaller Open Tables setting , the more tables dropping from the cache. As cache is released, memory usage decrease, yet performance become worse due to reopen tables. The smaller table_open_cache, the more necessary to reopen tables. table_open_cache should set as much value as only to reaching memory tolerance.

    In order to enable reference count mode, we need to specify values in my.cnf as follows;

    loose-mroonga-enable-reference-count = ON
    

    Note

    The reference count mode would not be enabled with variables after booting MySQL. It is necesarry to specify values in my.cnf.

    SET GLOBAL mroonga_enable_reference_count = ON
    
  • Added support for execution timeout parameter.[GitHub #344][Reported by Kazuhiko]

    MySQL/MariaDB can abort queries if the execution timeout parameter is specified and a execution time exceeds a time specified with the parameter. The execution timeout parameter is MAX_EXECUTION_TIME in MySQL and max_statement_time in MariaDB.

    However, Mroonga did not abort executing queries even after MySQL/MariaDB abort the queries and return results. So if the Groonga queries match too many results, it could continue to consume memory and CPU resources even after MySQL/MariaDB abort the queries.

    From this version, Mroonga can abort queries in the specified time and the execution timeout parameter works correctly. So Mroonga don’t continue to consume memory and CPU resources after MySQL/MariaDB abort the queries.

    The following how to use this feature.

    Here is a sample for MySQL.

    CREATE TABLE diaries(
      title TEXT
      FULLTEXT INDEX (title)
    ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
    INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
    SELECT /*+ MAX_EXECUTION_TIME(1) */ title
      FROM diaries
     WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    Here is a sample for MariaDB.

    CREATE TABLE diaries(
      title TEXT
      FULLTEXT INDEX (title)
    ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
    INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
    SET STATEMENT max_statement_time = 0.001 FOR
    SELECT title
      FROM diaries
     WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    This feature can use in mroonga_command() also.

  • Fixed a bug to fail to install or upgrade Mroonga with install.sql.[GitHub #525][Reported by Tomohiro KATO][Patched by Jérome Perrin]

    Broken install.sql caused this bug. This bug had occurred since Mroonga 12.06.

  • Fixed a memory leak on full text search. [Reported by OHTSUKA Soushi and Mitsuo Yoshida]

    This is occurred when order limit optimization is used. However, if we use MariaDB, this occurs even if we don’t use order limit optimization.

    This bug had occurred since Mroonga 11.03.

  • Fixed a bug that Mroonga for Windows does not bundle groonga-normalizer-mysql.

Summary

Improvements

[Release 12.12 - 2023-01-29]

[Release 12.11 - 2023-01-06]

[Release 12.10 - 2022-11-29]

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.37, 10.4.27, 10.5.18, 10.6.11, 10.7.7, 10.8.6, 10.9.4. [GitHub #564][Reported by Josep Sanz][Patched by Tomohiro KATO]

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.30-22.

  • [CentOS] Added support for Percona Server 5.7.40-43.

  • [Windows] Added support for MariaDB 10.7, 10.8, 10.9.

  • [Windows] Dropped support for 32bit versions.

  • [mroonga_highlight_html()] Added new parameters: open_tag and close_tag. [GitHub #537][Reported by ishitaka]

  • Added support for reference count mode.

[Release 12.09 - 2022-10-28]

[Release 12.08 - 2022-10-03]

[Release 12.07 - 2022-08-30]

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.36, 10.4.26, 10.5.17, 10.6.9, 10.7.5 and 10.8.4.

  • [CentOS][AlmaLinux] Added support for Percona Server 5.7.39-42.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.29-21.

[Release 12.06 - 2022-08-04]

  • [CentOS] Added support for MySQL 5.7.39.

  • [CentOS][AlmaLinux] Added support for MySQL 8.0.30.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.28-20.

  • [CentOS][AlmaLinux] Added support for MariaDB 10.8.

  • [CentOS][AlmaLinux] Dropped support for MariaDB 10.2.

  • [Debian GNU/Linux] Dropped support for Debian 10 (buster).

  • Changed to not require to run update.sql for registering Mroonga to MySQL.[GitHub #509][Reported by Jérome Perrin]

[Release 12.04 - 2022-06-01]

[Release 12.03 - 2022-05-06]

  • [CentOS] Added support for Percona Server 5.7.37-40.

  • [CentOS] Added support for MySQL 5.7.38.

  • [CentOS][AlmaLinux] Added support for MySQL 8.0.29.

[Release 12.02 - 2022-03-29]

  • Dropped support wrapper mode with MySQL 8.0 or later.

  • Added support for disabling a back trace by the server variable.

  • Added support for float32 weight vector.

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.34, 10.4.24, 10.5.15, 10.6.7, and 10.7.3.

  • [CentOS] Added support for MariaDB 10.2.43.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.27-18.

  • Added support for MISSING_* and INVALID_* flags

[Release 12.00 - 2022-02-09]

  • [Ubuntu] Added support for the latest version of mysql-server package for Ubuntu.

  • [CentOS] Added support for MariaDB 10.2.42, 10.3.33, 10.4.23, 10.5.14, and 10.6.6.

  • [AlmaLinux] Added support for MariaDB 10.3.33, 10.4.23, 10.5.14, and 10.6.6.

Fixes

[Release 12.11 - 2023-01-06]

  • [mroonga_highlight_html()] Fixed memory leak when we use mroonga_highlight_html() with AS query.

  • Fixed a bug that initialization of MeCab is fail when we use Mroonga on MariaDB 10.9 or later for Windows.

[Release 12.10 - 2022-11-29]

  • Fixed a bug that Mroonga for Windows does not bundle groonga-normalizer-mysql.

[Release 12.09 - 2022-10-28]

  • Fixed a bug that Mroonga for Windows does not bundle groonga-normalizer-mysql.

[Release 12.07 - 2022-08-30]

  • Fixed a bug to fail to install or upgrade Mroonga with install.sql.[GitHub #525][Reported by Tomohiro KATO][Patched by Jérome Perrin]

  • Fixed a bug that mroonga_command() returns results with hex dump for MySQL 8.0 and above.

  • [AlmaLinux] Fixed an installation document for Mroonga on AlmaLinux 8. [Gitter/ja:62fe4ca5b16e8236e3ef225c][Reported by handmound]

[Release 12.04 - 2022-06-01]

  • Fixed a bug that Mroonga may update failed. [groonga-dev,04982, groonga-dev,04987][Reported by Mitsuo Yoshida and OHTSUKA Soushi]

[Release 12.03 - 2022-05-06]

  • Fixed a bug that Mroonga may fail create the index on MariaDB 10.5.14. [GitHub clear-code/redmine_full_text_search#103][Reported by wate]

  • Fixed a memory leak on full text search. [Reported by OHTSUKA Soushi and Mitsuo Yoshida]

Thanks

  • handmound

  • Josep Sanz

  • Tomohiro KATO

  • ishitaka

  • Kazuhiko

  • Jérome Perrin

  • Mitsuo Yoshida

  • OHTSUKA Soushi

  • wate

Release 12.12 - 2023-01-29

Improvements

  • [AlmaLinux] Added newly support for AlmaLinux 9.

  • [CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] Added support for MySQL 8.0.32.

  • [CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] Added support for MySQL 5.7.41

  • Added support for updating normal columns with composite primary key table. [GitHub#592][Reported by handmound]

    We could not update normal columns when we set composite primary keys using Mroonga storage engine as below.

    CREATE TABLE scores (
      name char(30) NOT NULL,
      score int NOT NULL,
      PRIMARY KEY (name, score),
      note char(30),
      FULLTEXT INDEX search_note_idx (note)
    ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO scores (name, score) VALUES ("Taro Yamada", 29);
    
    UPDATE scores SET note = "Note"
      WHERE name = "Taro Yamada" AND score = 29;
    
    ERROR 1265 (01000): data truncated for primary key column: <name>
    

    This error doesn’t occur Mroonga with MariaDB.

Thanks

  • handmound

Release 12.11 - 2023-01-06

Improvements

  • [CentOS][AlmaLinux] Added newly support for MariaDB 10.10.

  • [Amazon Linux] Added support for MariaDB 10.5.10-2.amzn2.0.2.

  • [Server variables] Added a new status variable libgroonga_support_mecab.

    It’s true only when Groonga supports TokenMecab.

  • [Debian GNU/Linux] Added support for MariaDB 10.5.18.

Fixes

  • [mroonga_highlight_html()] Fixed memory leak when we use mroonga_highlight_html() with AS query.

  • Fixed a bug that initialization of MeCab is fail when we use Mroonga on MariaDB 10.9 or later for Windows.

Release 12.10 - 2022-11-29

Improvements

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.37, 10.4.27, 10.5.18, 10.6.11, 10.7.7, 10.8.6, 10.9.4. [GitHub #564][Reported by Josep Sanz][Patched by Tomohiro KATO]

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.30-22.

  • [CentOS] Added support for Percona Server 5.7.40-43.

  • [Windows] Added support for MariaDB 10.7, 10.8, 10.9.

  • [Windows] Dropped support for 32bit versions.

    Because recent MariaDB can’t be built for 32bit Windows, and the official packages for 32bit don’t exist.

  • [mroonga_highlight_html()] Added new parameters: open_tag and close_tag. [GitHub #537][Reported by ishitaka]

    Now we can specify a tag for highlighting with open_tag and close_tag.

    It was inconvinient for us to unable specifying different tags or changing class because the fixed tag <span class="keyword">...</span> was used. Now, this new parameter provides more convenience for us because it allows specifying tags to highlight, such as <mark>...</mark>.

    SELECT mroonga_highlight_html('Mroonga is the Groonga based storage engine.', 'groonga',
                                  '<mark>' AS open_tag, '</mark>' AS close_tag) AS highlighted;
    
    -- +-----------------------------------------------------------+
    -- | highlighted                                               |
    -- +-----------------------------------------------------------+
    -- | Mroonga is the <mark>Groonga</mark> based storage engine. |
    -- +-----------------------------------------------------------+
    

    Please refer to mroonga_highlight_html() for details.

  • Added support for reference count mode.

    Though this feature can keep fixed memory usage, its performance would be dropped. Thus, memory increments should be first consideration before using this feature.

    The reference count mode is used with table_open_cache of MySQL.

    MySQL can cache specified number of tables with table_open_cache`. Groonga’s object would not be released because the cached tables are still in use.

    The tables with low usage would be closed if number of open tables is larger than number specified with table_open_cache. Groonga objects would be released at the same time with table closing if the reference count mode is enabled.

    These are how the reference count mode keep fixed memory usage.

    For actual use, we need to adjust balance between memory usage and perfomance with value of table_open_cache while checking memory usage and value of status variables Open_tables. Because this feature can keep fixed memory usage, but its performance would be dropped.

    There is how to check Open_tables as follows.

    SHOW GLOBAL STATUS LIKE 'Open_tables';
    -- +---------------+-------+
    -- | Variable_name | Value |
    -- +---------------+-------+
    -- | Open_tables   | 643   |
    -- +---------------+-------+
    

    Normally, all of tables in use are cached by setting table_open_cache larger than Open_tables. However, if there is limited memory, memory usage would be decreased by releasing memory for tables with low usage dropping from the cache. In order to releasing tables with low usage from the cache, table_open_cache should be set smaller than Open_tables. The smaller Open Tables setting , the more tables dropping from the cache. As cache is released, memory usage decrease, yet performance become worse due to reopen tables. The smaller table_open_cache, the more necessary to reopen tables. table_open_cache should set as much value as only to reaching memory tolerance.

    In order to enable reference count mode, we need to specify values in my.cnf as follows;

    loose-mroonga-enable-reference-count = ON
    

    Note

    The reference count mode would not be enabled with variables after booting MySQL. It is necesarry to specify values in my.cnf.

    SET GLOBAL mroonga_enable_reference_count = ON
    

Fixes

  • Fixed a bug that Mroonga for Windows does not bundle groonga-normalizer-mysql.

    It was false announcement in 12.09 that groonga-normalizer-mysql is bundled in.

Thanks

  • Josep Sanz

  • Tomohiro KATO

  • ishitaka

Release 12.09 - 2022-10-28

Improvements

  • [CentOS][AlmaLinux] Added support for MariaDB 10.9.3.

  • [CentOS][Ubuntu] Added support for MySQL 5.7.40.

  • [CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] Added support for MySQL 8.0.31.

  • [Ubuntu] Added support for MariaDB 10.6 on Ubuntu 22.04 (Jammy Jellyfish).

  • Added support for execution timeout parameter.[GitHub #344][Reported by Kazuhiko]

    MySQL/MariaDB can abort queries if the execution timeout parameter is specified and a execution time exceeds a time specified with the parameter. The execution timeout parameter is MAX_EXECUTION_TIME in MySQL and max_statement_time in MariaDB.

    However, Mroonga did not abort executing queries even after MySQL/MariaDB abort the queries and return results. So if the Groonga queries match too many results, it could continue to consume memory and CPU resources even after MySQL/MariaDB abort the queries.

    From this version, Mroonga can abort queries in the specified time and the execution timeout parameter works correctly. So Mroonga don’t continue to consume memory and CPU resources after MySQL/MariaDB abort the queries.

    The following how to use this feature.

    Here is a sample for MySQL.

    CREATE TABLE diaries(
      title TEXT
      FULLTEXT INDEX (title)
    ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
    INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
    SELECT /*+ MAX_EXECUTION_TIME(1) */ title
      FROM diaries
     WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    Here is a sample for MariaDB.

    CREATE TABLE diaries(
      title TEXT
      FULLTEXT INDEX (title)
    ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow.");
    INSERT INTO diaries (title) VALUES ("It'll rain tomorrow");
    
    SET STATEMENT max_statement_time = 0.001 FOR
    SELECT title
      FROM diaries
     WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
    

    This feature can use in mroonga_command() also.

Fixes

  • Fixed a bug that Mroonga for Windows does not bundle groonga-normalizer-mysql.

    This bug had existed since Mroonga 12.02. Therefore, We can’t groonga-normalizer-mysql from Mroonga 12.02 for Windows to Mroonga 12.08 for Windows.

Thanks

  • Kazuhiko

Release 12.08 - 2022-10-03

Release 12.07 - 2022-08-30

Improvements

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.36, 10.4.26, 10.5.17, 10.6.9, 10.7.5 and 10.8.4.

  • [CentOS][AlmaLinux] Added support for Percona Server 5.7.39-42.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.29-21.

    Note

    MySQL 8.0.29 used by Percona Server 8.0.29 has a critical issue. So we do not recommend to use this version.

    See MySQL 8.0.29 Release Notes for details about the issue.

Fixes

  • Fixed a bug to fail to install or upgrade Mroonga with install.sql.[GitHub #525][Reported by Tomohiro KATO][Patched by Jérome Perrin]

    Broken install.sql caused this bug. This bug had occurred since Mroonga 12.06.

  • Fixed a bug that mroonga_command() returns results with hex dump for MySQL 8.0 and above.

    mroonga_command() returns results with a correct character code form this version.

  • [AlmaLinux] Fixed an installation document for Mroonga on AlmaLinux 8. [Gitter/ja:62fe4ca5b16e8236e3ef225c][Reported by handmound]

Thanks

  • handmound

  • Jérome Perrin

  • Tomohiro KATO

Release 12.06 - 2022-08-04

Improvements

  • [CentOS] Added support for MySQL 5.7.39.

  • [CentOS][AlmaLinux] Added support for MySQL 8.0.30.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.28-20.

  • [CentOS][AlmaLinux] Added support for MariaDB 10.8.

  • [CentOS][AlmaLinux] Dropped support for MariaDB 10.2.

  • [Debian GNU/Linux] Dropped support for Debian 10 (buster).

  • Changed to not require to run update.sql for registering Mroonga to MySQL.[GitHub #509][Reported by Jérome Perrin]

    Mroonga has required to run both install.sql and update.sql to register to MySQL since Mroonga 12.04.

    % mysql -u root < /usr/share/mroonga/install.sql
    % mysql -u root < /usr/share/mroonga/update.sql
    

    This improvement has changed Mroonga to only require to run install.sql to register to MySQL as before than Mroonga 12.04.

    % mysql -u root < /usr/share/mroonga/install.sql
    

Thanks

  • Jérome Perrin

Release 12.04 - 2022-06-01

Improvements

  • [Server variables] Add a new status variable Mroonga_memory_map_size.

    We can get the total memory map size in bytes of Mroonga as below.

    mysql> SHOW STATUS LIKE 'Mroonga_memory_map_size';
    +-------------------------+----------+
    | Variable_name           | Value    |
    +-------------------------+----------+
    | Mroonga_memory_map_size | 83406848 |
    +-------------------------+----------+
    1 row in set (0.00 sec)
    

    In Windows, If Mroonga uses up physical memory and swap area, Mroonga can’t more mapping memory than that. Therefore, we can control properly memory map size by monitoring this value even if the environment does have not enough memory.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.28-19.

  • [CentOS][AlmaLinux] Added support for Percona Server 5.7.38-41.

  • [CentOS][AlmaLinux] Added support for MariaDB 10.2.44, 10.3.35, 10.4.25, 10.5.16, 10.6.8, and 10.7.4.

Fixes

  • Fixed a bug that Mroonga may update failed. [groonga-dev,04982, groonga-dev,04987][Reported by Mitsuo Yoshida and OHTSUKA Soushi]

    If this bug occurs, Mroonga is disabled after Mroonga update with such as “apt update”. In that case, we install Mroonga manually with the following procedure.

    % mysql -u root < /usr/share/mroonga/install.sql
    

Thanks

  • Mitsuo Yoshida

  • OHTSUKA Soushi

Release 12.03 - 2022-05-06

Improvements

  • [CentOS] Added support for Percona Server 5.7.37-40.

  • [CentOS] Added support for MySQL 5.7.38.

  • [CentOS][AlmaLinux] Added support for MySQL 8.0.29.

Fixes

  • Fixed a bug that Mroonga may fail create the index on MariaDB 10.5.14. [GitHub clear-code/redmine_full_text_search#103][Reported by wate]

  • Fixed a memory leak on full text search. [Reported by OHTSUKA Soushi and Mitsuo Yoshida]

    This is occurred when order limit optimization is used. However, if we use MariaDB, this occurs even if we don’t use order limit optimization.

    This bug had occurred since Mroonga 11.03.

Thanks

  • wate

  • OHTSUKA Soushi

  • Mitsuo Yoshida

Release 12.02 - 2022-03-29

Improvements

  • Dropped support wrapper mode with MySQL 8.0 or later.

  • Added support for disabling a back trace by the server variable.

    We can disable a back trace by “SET GLOBAL mroonga_enable_back_trace = false;”.

  • Added support for float32 weight vector.

    We can store weight as float32. We need to add WEIGHT_FLOAT32 flag when we define a column to use this feature.

  • [CentOS][AlmaLinux] Added support for MariaDB 10.3.34, 10.4.24, 10.5.15, 10.6.7, and 10.7.3.

  • [CentOS] Added support for MariaDB 10.2.43.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.27-18.

  • Added support for MISSING_* and INVALID_* flags

    Please refer to https://groonga.org/docs/news.html#release-12-0-2 about details of these flags.

Release 12.00 - 2022-02-09

This is a major version up! But It keeps backward compatibility. We can upgrade to 12.00 without rebuilding database.

First of all, we introduce the Summary of changes from Mroonga 11.00 to 11.13. Then, we introduce the main changes in 12.00.

Summary of changes from Mroonga 11.0.0 to 11.1.3

New Features and Improvements

  • Renamed package names as below.

    • mariadb-server-10.x-mroonga -> mariadb-10.x-mroonga

    • mysql-server-5.x-mroonga -> mysql-community-5.x-mroonga

    • mysql-server-8.x-mroonga -> mysql-community-8.x-mroonga

    • percona-server-5x-mroonga -> percona-server-5.x-mroonga

    • percona-server-8x-mroonga -> percona-server-8.x-mroonga

    Warning

    The package names are changed. Mroonga may be invalid after upgrade by the influence of this modification. If we upgrade to this version, please always be sure to confirm the below points.

    If Mroonga is invalid after the upgrade, we need to install manually Mroonga again. Please refer to the following URL about the manual installation of Mroonga and how to confirming whether Mroonga is valid or not.

    If we will upgrade mroonga to stride over a Mroonga 11.03.

    If Mroonga is valid after upgrade to this version but, Mroonga’s version is old, we need to restart MySQL, MariaDB, or PerconaServer. We can confirm Mroonga’s version as the below command.

    • SHOW VARIABLES LIKE 'mroonga_version';

  • [mroonga_snippet_html()] Added support for custom normalizer in mroonga_snippet_html()

    • We can use custom normalizer in mroonga_snippet_html() by this feature as below.

      CREATE TABLE terms (
        term VARCHAR(64) NOT NULL PRIMARY KEY
      ) COMMENT='normalizer "NormalizerNFKC130(''unify_kana'', true)"'
        DEFAULT CHARSET=utf8mb4
        COLLATE=utf8mb4_unicode_ci;
      
      SELECT mroonga_snippet_html('これはMroonga(ムルンガ)です。',
                                  'terms' as lexicon_name,
                                  'むるんが') as snippet;
      
      snippet
      <div class="snippet">これはMroonga(<span class="keyword">ムルンガ</span>)です。</div>
      
  • [Server variables] We disabled mroonga_enable_operations_recording by default.

    mroonga_enable_operations_recording to determine whether recording operations for auto recovering are enabled or not.

    This recording of operations is for auto recovering Mroonga when it crashed. Normally, if lock remain in Mroonga, we can’t execute INSERT/DELETE/UPDATE, but if mroonga_enable_operations_recording is enable, we may not execute SELECT at times in addition to INSERT/DELETE/UPDATE. Because auto recovery is sometimes blocked by residual lock when they crashed.

    Therefore, we set OFF to the default value in this version. By we disable operation recording, INSERT/DELETE/UPDATE is blocked as usual because of the residual lock, but “SELECT” may bework.

    An appropriate way to handle to residual lock is as follows.

Fixes

  • Fix a crash bug that may be caused after MySQL/MariaDB upgrade.

    • Mronnga may crash if we execute SELECT ... MATCH AGAINST after MySQL/MariaDB upgrade.

  • Fixed a bug that if we use “WHERE primary_key IN (“”)” in a where clause, Mroonga may return wrong record.

    See release 11.07 for details.

  • [Optimizations] Fixed a bug that Mroonga apply the optimization of row count wrongly.

    See release 11.10 for details.

  • Fixed a bug that Mroonga crashed when we upgrade DB created by MySQL 5.7 to MySQL 8.0.

  • Fixed a bug that latitude and longitude are stored conversely.

    Warning

    backward compatibility is broken by this fix.

    Users that are using GEOMETRY type need to store the current data before upgrading to Mroonga 11.03 and restore the stored data after upgrading to Mroonga 11.03. Users can use the following methods for dumping/restoring data.

    • mysqldump

    • Execute ALTER TABLE ENGINE=InnoDB before upgrading and execute ALTER TABLE ENGINE=Mroonga after upgrading.

    If without this fix, INSERT/UPDATE/SELECT/SELECT works well but data stored in Groonga are wrong (Latitude and longitude are swapped in Groonga). Therefore, mroonga_command('select ...') doesn’t work for spatial data.

  • Fixed a bug that FOREIGN KEY constraint was not registered.

    This bug had only occurred on MySQL 8.0.

    See release 11.01 for details.

  • Fixed a bug that DROP DATABASE had failed if a target database had FOREIGN KEY constraint.

    See release 11.01 for details.

  • Fixed a bug that DROP COLUMN had failed if a target table was referred a other table.

    See release 11.01 for details.

  • Fixed a bug that a update of Mroonga fails on MariaDB.

Newly supported OSes

Dropped OSes

  • [CentOS] Dropped support for CentOS 8.

  • [Ubuntu] Dropped Ubuntu 21.04 (Hirsute Hippo) support.

  • [Ubuntu] Dropped Ubuntu 20.10 (Groovy Gorilla) support.

  • [Ubuntu] Dropped Ubuntu 16.04 LTS (Xenial Xerus) support.

  • [Ubuntu] Dropped support for MariaDB 10.1 on Ubuntu 18.04 LTS.

Thanks

  • shibanao4870

  • Marc Laporte

  • santalex

  • Josep Sanz

  • Tomohiro KATO

  • Katsuhito Watanabe

  • kenichi arimoto

  • Vincent Pelletier

  • Kosuke Yamashita

  • ひじー

The main changes in 12.00 are as follows.

Improvements

  • [Ubuntu] Added support for the latest version of mysql-server package for Ubuntu.

    We supported the following versions.

    • Ubuntu 18.04 LTS (bionic) mysql-server (5.7.37-0ubuntu0.18.04.1)

    • Ubuntu 20.04 LTS (focal) mysql-server (8.0.28-0ubuntu0.20.04.3)

    • Ubuntu 21.10 LTS (impish) mysql-server (8.0.28-0ubuntu0.21.10.3)

  • [CentOS] Added support for MariaDB 10.2.42, 10.3.33, 10.4.23, 10.5.14, and 10.6.6.

  • [AlmaLinux] Added support for MariaDB 10.3.33, 10.4.23, 10.5.14, and 10.6.6.

Release 11.13 - 2022-01-29

Improvements

  • [CentOS] Added support for MySQL 5.7.37.

  • [CentOS][AlmaLinux] Added support for MySQL 8.0.28.

    There are below restrictions in the MySQL 8.0 package.

    • [Wrapper mode] Wrapper mode is not supported yet.

    • [Storage mode] Storage mode does not support the following feature.

      • The feature of relevant to the optimization.

  • [CentOS][AlmaLinux] Added support for Percona Server 8.0.26-17.

  • [Ubuntu] Dropped Ubuntu 21.04 (Hirsute Hippo) support.

    • Because Ubuntu 21.04 reached EOL at January 20, 2022.

Release 11.11 - 2021-12-29

Improvements

  • [CentOS] Dropped support for CentOS 8.

    Because CentOS 8 will reach EOL at 2021-12-31.

Fixes

  • [AlmaLinux] Fixed a bug that we have not provided the package of Mroonga for MariaDB 10.3, 10.4, 10.5, and 10.6. [Gitter][Reported by shibanao4870]

  • [Documentation][Install] Fixed a typo. [GitHub #469,#470][Patched by Marc Laporte]

  • [Documentation][CentOS] Fixed the wrong URL of percona-release-latest.noarch.rpm. [GitHub #471][Patched by santalex]

Thanks

  • shibanao4870

  • Marc Laporte

  • santalex

Release 11.10 - 2021-11-29

Improvements

  • [AlmaLinux] Added support for Mroonga on AlamLinux 8.

  • [AlmaLinux] Added support for MySQL 8.0.27.

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

  • [AlmaLinux] Added support for Percona Server 8.0.26.

  • [AlmaLinux] Added support for MariaDB 10.3.32, 10.4.22, 10.5.13, and 10.6.5.

  • [CentOS] Added support for MariaDB 10.2.41, 10.3.32, 10.4.22, 10.5.13, and 10.6.5.

  • [Ubuntu] Added support for MySQL 8.0 on Ubuntu 21.04 (Hirsute Hippo) and 21.10 (Impish Indri).

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

Fixes

  • [CentOS] Fixed a bug that we have not provided the package of Mroonga for MariaDB 10.6.

  • [Optimizations] Fixed a bug that Mroonga apply the optimization of row count wrongly. [MDEV-16922][Reported by Josep Sanz]

    Normally, Mroonga apply the optimization of row count when the SELECT fetches only COUNT(*) and condition in WHERE can be processed only by index.

    However, Mroonga applied the optimization of row count even if Mroonga couldn’t process condition in WHERE only by index as below case by this bug.

    Consequently, the result of SELECT COUNT(*) WHERE ... is wrong.

    CREATE TABLE roles (
      id INT
    );
    
    INSERT INTO roles VALUES (1), (2), (3), (4), (5);
    
    CREATE TABLE users (
      id INT,
      role_id INT,
      INDEX (role_id)
    );
    
    INSERT INTO users VALUES (10, 1);
    INSERT INTO users VALUES (11, 2);
    INSERT INTO users VALUES (13, 3);
    INSERT INTO users VALUES (14, 4);
    INSERT INTO users VALUES (15, 5);
    INSERT INTO users VALUES (20, 1);
    INSERT INTO users VALUES (21, 2);
    INSERT INTO users VALUES (23, 3);
    INSERT INTO users VALUES (24, 4);
    INSERT INTO users VALUES (25, 5);
    
    SELECT COUNT(*)
      FROM (
        SELECT roles.id
          FROM roles
               LEFT JOIN users ON users.id <= 100 AND
                                  users.role_id = roles.id
      ) roles_users;
    
  • Fixed a bug that Mroonga doesn’t set proper encoding on condition push down for ‘STRING_FIELD =’. [groonga-dev,04913][Reported by Tomohiro ‘Tomo-p’ KATO]

    Mroonga executes condition push down for ‘STRING_FIELD =’ in the following case. However, Mroonga doesn’t set proper encoding in search keywords at this time. Consequently, Mroonga fails to normalize search keywords.

    CREATE TABLE memos (
      id INT PRIMARY KEY,
      title TEXT,
      INDEX (title)
    ) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4;
    
    INSERT INTO memos VALUES (1, 'Groonga');
    INSERT INTO memos VALUES (2, 'Mroonga');
    
    SELECT *
      FROM memos
      WHERE title = 'mroonga'
      ORDER BY id;
    

Thanks

  • Josep Sanz

  • Tomohiro KATO

Release 11.09 - 2021-11-04

Improvements

  • [CentOS] Added support for MySQL 5.7.36, 8.0.27.

  • [CentOS] Added support for Percona Server 8.0.26.

Release 11.08 - 2021-10-06

Fixes

  • Fixed a bug that Mroonga crashed when we upgrade DB created by MySQL 5.7 to MySQL 8.0.

Release 11.07 - 2021-09-29

Warning

Mroonga has had a bug that if we upgrade DB created by MySQL 5.7 to MySQL 8.0, Mroonga crashes.

We fixed this bug on Mroonga 11.08. Therefore, if you were using Mroonga on MySQL 5.7 or previous version, we highly recommended that we use Mroonga 11.08 or later.

Improvements

  • [Ubuntu] Added support for MySQL 8.0 on Ubuntu 20.04 (Focal Fossa).

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

  • [mroonga_snippet_html()] Added support for specifying lexicon name.

    • We can use custom normalizer in mroonga_snippet_html() by this feature as below.

      CREATE TABLE terms (
        term VARCHAR(64) NOT NULL PRIMARY KEY
      ) COMMENT='normalizer "NormalizerNFKC130(''unify_kana'', true)"'
        DEFAULT CHARSET=utf8mb4
        COLLATE=utf8mb4_unicode_ci;
      
      SELECT mroonga_snippet_html('これはMroonga(ムルンガ)です。',
                                  'terms' as lexicon_name,
                                  'むるんが') as snippet;
      
      snippet
      <div class="snippet">これはMroonga(<span class="keyword">ムルンガ</span>)です。</div>
      
  • Added support for outputting vector column values as text not raw binary.

    • We can use mysqldump for dumping vector column values by this feature.

  • Don’t create .mrn files if nonexistent table is dropped. [groonga-dev: 04893][Reported by kenichi arimoto]

  • Added support for W pragma against elements of vector column.

    • We can set the weight to elements of vector column by this feature. However, Mroonga only search the specified section in this case. In a normal multiple column index, Mroonga also searches not specified sections with the default weight.

Fixes

  • Fixed a bug that if we use “WHERE primary_key IN (“”)” in a where clause, Mroonga may return wrong record. [groonga-dev,04855][Reported by Katsuhito Watanabe]

    • For example, Mroonga may return wrong record as below.

      CREATE TABLE ids (
        id varchar(7) PRIMARY KEY,
        parent_id varchar(7)
      )ENGINE=Mroonga DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
      
      INSERT INTO ids VALUES("abcdefg", "");
      INSERT INTO ids VALUES("hijklmn", "");
      INSERT INTO ids VALUES("opqrstu", "hijklmn");
      
      SELECT * FROM ids WHERE id IN (SELECT parent_id FROM ids);
      +---------+-----------+
      | id      | parent_id |
      +---------+-----------+
      | abcdefg |           |
      | hijklmn |           |
      +---------+-----------+
      2 rows in set (0.00 sec)
      

Thanks

  • Katsuhito Watanabe

  • kenichi arimoto

Release 11.06 - 2021-08-29

Improvements

  • [CentOS] Added support for MariaDB 10.2.40, 10.3.31, 10.4.21, and 10.5.12

  • [CentOS] Added support for MariaDB 10.6.4 [GitHub#434][Patched by Tomohiro KATO]

  • [CentOS] Added support for Percona Server 5.7.35.

  • [Debian GNU/Linux] Added support for Debian 11 (bullseye).

Thanks

  • Tomohiro KATO

Release 11.05 - 2021-07-30

Improvements

  • [CentOS] Added support for Percona Server 8.0.25

  • [CentOS] Added support for MySQL 5.7.35, 8.0.26.

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

  • [Ubuntu] Dropped Ubuntu 20.10 (Groovy Gorilla) support.

    • Because Ubuntu 20.10 reached EOL July 22, 2021.

Fixes

  • Fix a crash bug that may be caused after MySQL/MariaDB upgrade. [GitHub#423][Reported by Vincent Pelletier]

    • Mronnga may crash if we execute SELECT ... MATCH AGAINST after MySQL/MariaDB upgrade.

Thanks

  • Vincent Pelletier

Release 11.04 - 2021-06-29

Improvements

  • [Server variables] We disabled mroonga_enable_operations_recording by default.

    mroonga_enable_operations_recording to determine whether recording operations for auto recovering are enabled or not.

    This recording of operations is for auto recovering Mroonga when it crashed. Normally, if lock remain in Mroonga, we can’t execute INSERT/DELETE/UPDATE, but if mroonga_enable_operations_recording is enable, we may not execute SELECT at times in addition to INSERT/DELETE/UPDATE. Because auto recovery is sometimes blocked by residual lock when they crashed.

    Therefore, we set OFF to the default value in this version. By we disable operation recording, INSERT/DELETE/UPDATE is blocked as usual because of the residual lock, but “SELECT” may bework.

    An appropriate way to handle to residual lock is as follows.

  • [Debian GNU/Linux] Added a install procedure for Mroonga for Debian GNU/Linux with Oracle MySQL package.

    We supoort Mroonga for Debian GNU/Linux with Oracle MySQL package in Mroonga 11.03. We wrote install procedure for these package to this documentation. When we will install these packages, please refer to this documentation.

  • [CentOS] Added support for MariaDB 10.2.39, 10.3.30, 10.4.20, and 10.5.11.

Fixes

  • Fix a crash bag when we execute search

    This issue doesn’t occur under normal use.

    The occurrence condition is as below.

    • We directly make tables and columns on Groonga by using mroonga_command.

    • We execute search at the same time as delete the above tables and columns.

    When the above conditions are established, Mroonga might crash.

Release 11.03 - 2021-05-31

Warning

This release has had a critical bug about uninstall and upgrade. If we install this version, we fail upgrade Mroonga and also uninstall it.

Therefore, please don’t use Mroonga of this version.

If we have already installed Mroonga of this version, we can upgrade Mroonga or uninstall it by using the following workaround.

  1. % echo “#!/bin/sh” > /usr/share/mroonga/deb/postrm.sh

  2. % chmod u+x /usr/share/mroonga/deb/postrm.sh

  3. Upgrade Mroonga or uninstall Mroonga.

Warning

The package names are changed from this release. Mroonga may be invalid after upgrade to this version by the influence of this modification. If we upgrade to this version, please always be sure to confirm the below points.

If Mroonga is invalid after the upgrade, we need to install manually Mroonga again. Please refer to the following URL about the manual installation of Mroonga and how to confirming whether Mroonga is valid or not.

Besides, please be careful the above phenomenon will continue from now if we will upgrade mroonga to stride over a Mroonga 11.03.

If Mroonga is valid after upgrade to this version but, Mroonga’s version is old, we need to restart MySQL, MariaDB, or PerconaServer. We can confirm Mroonga’s version as the below command.

  • SHOW VARIABLES LIKE 'mroonga_version';

Warning

There are broken backward compatibility on this version.

Users that are using GEOMETRY type need to store the current data before upgrading to Mroonga 11.03 and restore the stored data after upgrading to Mroonga 11.03.

Please be careful if we upgrade to this version without executing the above procedure, data is broken.

Users can use the following methods for dumping/restoring data.

  • mysqldump

  • Execute ALTER TABLE ENGINE=InnoDB before upgrading and execute ALTER TABLE ENGINE=Mroonga after upgrading.

If without this fix, INSERT/UPDATE/SELECT/SELECT works well but data stored in Groonga are wrong (Latitude and longitude are swapped in Groonga). Therefore, mroonga_command(‘select …’) doesn「t work for spatial data.

Improvements

  • Renamed package names as below.

    • mariadb-server-10.x-mroonga -> mariadb-10.x-mroonga

    • mysql-server-5.x-mroonga -> mysql-community-5.x-mroonga

    • mysql-server-8.x-mroonga -> mysql-community-8.x-mroonga

    • percona-server-5x-mroonga -> percona-server-5.x-mroonga

    • percona-server-8x-mroonga -> percona-server-8.x-mroonga

  • [Debian GNU/Linux] Added support for the Oracle MySQL 5.7 package and the Oracle MySQL 8.0 package.

    • In this release, we newly provided the package of Mroonga for Debian GNU/Linux with the Oracle MySQL 5.7 and the Oracle MySQL 8.0.

      • By this, we make the Docker image of Mroonga with MySQL for Docker official images.

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

  • Added support for the SRID of Spatial Indexes.

    • the index of Mroonga is used in search with MBRContains function on MySQL 8.x since this release.

  • We added condition expressions that are applied condition push down.

    Note

    Condition push down doesn’t evaluate condition expressions in MySQL, but it evaluate condition expressions in Mroonga. Therefore, more queries will become high-performance, but the result of search may different than usual by Mroonga evaluate them. If Mroonga returns unexpected search results, we request that you report from the below URL. And we would like you to invalid for condition push down.

    We can invalid condition push down as below.

    • SET GLOBAL mroonga_condition_push_down_type = "NONE"

  • [CentOS] Added support for Percona Server 8.0.23

Fixes

  • Fixed a bug that latitude and longitude are stored conversely.

    Warning

    backward compatibility is broken by this fix.

    Users that are using GEOMETRY type need to store the current data before upgrading to Mroonga 11.03 and restore the stored data after upgrading to Mroonga 11.03. Users can use the following methods for dumping/restoring data.

    • mysqldump

    • Execute ALTER TABLE ENGINE=InnoDB before upgrading and execute ALTER TABLE ENGINE=Mroonga after upgrading.

    If without this fix, INSERT/UPDATE/SELECT/SELECT works well but data stored in Groonga are wrong (Latitude and longitude are swapped in Groonga). Therefore, mroonga_command('select ...') doesn’t work for spatial data.

Release 11.02 - 2021-05-10

Improvements

  • [CentOS] Added support for MySQL 5.7.34, 8.0.25.

    • There are below restrictions in the MySQL 8.0 package.

      • [Wrapper mode] Wrapper mode is not supported yet.

      • [Storage mode] Storage mode does not support the following feature.

        • The feature of relevant to the optimization.

        • The SRID of Spatial Indexes.

          • For example, the index of Mroonga is not used in search with MBRContains function. (It search by sequential search.)

  • [CentOS] Added support for MariaDB 10.2.38, 10.3.29, 10.4.19, and 10.5.10.

  • [Ubuntu] Dropped Ubuntu 16.04 (Xenial Xerus) support.

    • Because it reached End of Standard Support at April, 2021.

Release 11.01 - 2021-04-02

Improvements

  • [CentOS] Added support for MariaDB 10.2.37, 10.3.28, 10.4.18, and 10.5.9.

  • [CentOS] Added support for Percona Server 5.7.33.

  • Added support for adding value with text in JSON format to reference vector columns as below.

    • It makes easier to add JSON data into reference columns by this feature. Because we can directly add values to columns for reference destination from the source table.

    CREATE TABLE attributes (
      _id int,
      name varchar(255),
      value varchar(255)
    ) DEFAULT CHARSET=utf8mb4;
    
    CREATE TABLE items (
      id int PRIMARY KEY AUTO_INCREMENT,
      attributes text DEFAULT NULL flags='COLUMN_VECTOR' groonga_type='attributes'
    );
    
    INSERT INTO items (attributes)
      VALUES ('[{"name": "color", "value": "white"},
                {"name": "size",  "value": "big"}]');
    INSERT INTO items (attributes)
      VALUES ('[{"name": "color", "value": "black"}]');
    INSERT INTO items (attributes) VALUES ('');
    
    SELECT * FROM attributes;
      _id      name    value
      1        color   white
      2        size    big
      3        color   black
    
    SELECT * FROM items;
    id attributes
    1  [1,2]
    2  [3]
    3  []
    

Fixes

  • Fixed a bug that FOREIGN KEY constraint was not registered. [GitHub#393][Reported by Kosuke Yamashita]

    • This bug had only occurred on MySQL 8.0.

    • For example, the FOREIGN KEY constraint information had not been outputted even if we define it as below.

      CREATE TABLE referred (
        id int PRIMARY KEY AUTO_INCREMENT
      );
      
      CREATE TABLE refer (
        id int PRIMARY KEY AUTO_INCREMENT,
        id_referred int NOT NULL,
        CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id)
      );
      
      SELECT CONSTRAINT_NAME, TABLE_NAME, REFERENCED_TABLE_NAME
             FROM information_schema.REFERENTIAL_CONSTRAINTS;
      Empty set (0.000 sec)
      
  • Fixed a bug that DROP DATABASE had failed if a target database had FOREIGN KEY constraint as below. [GitHub#390][Reported by Kosuke Yamashita]

    CREATE DATABASE another;
    USE another;
    
    CREATE TABLE referred (
      id int PRIMARY KEY AUTO_INCREMENT
    ) ENGINE=mroonga DEFAULT CHARSET utf8mb4;
    
    CREATE TABLE refer (
      id int PRIMARY KEY AUTO_INCREMENT,
      id_referred int NOT NULL,
      CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id)
    ) ENGINE=mroonga DEFAULT CHARSET utf8mb4;
    
    DROP DATABASE another;
    ERROR 1016 (HY000): [table][remove] a column that references the table exists: <refer.id_referred> -> <referred>
    
  • Fixed a bug that DROP COLUMN had failed if a target table was referred a other table as below. [GitHub#389][Reported by Kosuke Yamashita]

    CREATE TABLE referred (
      id int PRIMARY KEY AUTO_INCREMENT,
      name varchar(255),
      text text
    ) ENGINE=mroonga DEFAULT CHARSET utf8mb4;
    
    CREATE TABLE refer (
      id int PRIMARY KEY AUTO_INCREMENT,
      id_referred int NOT NULL,
      CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id)
    ) ENGINE=mroonga DEFAULT CHARSET utf8mb4;
    
    ALTER TABLE referred DROP COLUMN name;
    ERROR 1016 (HY000): [table][remove] a column that references the table exists: <refer.id_referred> -> <#sql2-3bc-25>
    
  • Fixed a build error when we built Mroonga with MariaDB 10.3.28, 10.4.18, or 10.5.9. [GitHub#392][Patched by Tomohiro KATO]

  • Fixed a bug that a update of Mroonga fails on MariaDB. [Reported by ひじー]

Thanks

  • Kosuke Yamashita

  • Tomohiro KATO

  • ひじー

Release 11.00 - 2021-02-09

This is a major version up! But It keeps backward compatibility. You can upgrade to 11.00 without rebuilding database.

In this version, MySQL, MariaDB, or PerconaServer will be automatically restarted. Because Mroonga 11.00 requires Groonga 11.0.0 or later but it will not reloaded until MySQL, MariaDB, or PrerconaServer is restarted.

Improvements

  • [CentOS] Dropped support for MySQL 5.6

    • Because it reached EOL at Feb 1, 2021.

  • [CentOS] Dropped support for Percona Server 5.6

  • Dropped support for MariaDB 10.1 on Ubuntu 18.04 LTS.

    • Because MariaDB 10.1 already has reached EOL in upstream.

  • Updated version of Groonga to 11.0.0 or later that Mroonga requires.

    • Because a high impact bug of index corruption is fixed in Groonga 11.0.0.

Release 10.11 - 2021-01-29

Improvements

  • Added support for lexicon_flags parameter.

    • We can add KEY_LARGE flag to a USING HASH (non full-text search index) index as below by this parameter.

      CREATE TABLE memos (
        id INT UNSIGNED PRIMARY KEY,
        title VARCHAR(64) NOT NULL,
        UNIQUE INDEX (title) USING HASH COMMENT 'lexicon_flags "KEY_LARGE"'
      ) DEFAULT CHARSET=utf8mb4;
      
  • [CentOS] Added support for MySQL 5.6.51, 5.7.33, and 8.0.23.

    • There are below restrictions in the MySQL 8.0 package.

Fixes

  • [Optimizations] Fixed a bug that the fast order limit optimization doen’t work when “WHERE COLUMN IN (SUBQUERY)” exists.

  • Fixed a bug that we can’t use in place ALTER TABLE when we modify the data type of a column that has any indexes.

    • This bug occur when we execute ALTER TABLE in ALGORITHM=INPLACE. Therefore, this bug doesn’t occur when we use ALTER TABLE in ALGORITHM=COPY

Release 10.10 - 2020-12-29

Improvements

  • [Storage mode] Added support for customize table flags. [Gitter][Reported by Shinichi Takayanagi]

    • Until now, we can’t customize table flags in storage mode.

    • We can customize table flags as below since this release.

      CREATE TABLE terms (
        term VARCHAR(64) NOT NULL PRIMARY KEY
      ) COMMENT='flags "TABLE_HASH_KEY|KEY_LARGE"'
        DEFAULT CHARSET=utf8mb4;
      
    • Please refer to the following URL about customizable items.

  • [Ubuntu] Added support for Ubuntu 20.10 (Groovy Gorilla).

  • [CentOS] Added support for Percona Server 8.0.22.

Thanks

  • Shinichi Takayanagi

  • pinpikokun [Provided the patch at GitHub#373]

Release 10.09 - 2020-12-04

Improvements

  • [CentOS] Added support for MariaDB 10.2.36, 10.3.27, 10.4.17, and 10.5.8

  • [CentOS] Added support for Percona Server 5.6.50, 5.7.32, and 8.0.21.

  • [CentOS] Added support for MySQL 5.6.50, 5.7.32, and 8.0.22.

    • There are below restrictions in the MySQL 8.0 package.

  • Dropped support for MariaDB 10.1 except Ubuntu 18.04 LTS.

    • Because MariaDB 10.1 is EOL.

    • However, we have only supported MariaDB 10.1 for Ubintu 18.04 LTS

      • Because MariaDB 10.1 has supported yet on it.

  • Dropped support for CentOS 6.

    • Because CentOS 6 is EOL.

  • [mroonga_snippet_html()] Added support for customizing normalizer.

    • We can use custom normalizer instead of the default normalizer(NromalizerAuto) by using table_name and index_name.

      • We specify target table name to table_name as below.

      • We specify index name that is specified on target table to index_name as below.

      SET NAMES utf8mb4;
      
      CREATE TABLE memos (
      content text,
      fulltext index content_index (content)
      COMMENT 'normalizer "NormalizerNFKC121(\'unify_kana\', true)"'
      ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
      
      SELECT mroonga_snippet_html('This is Mroonga(ムルンガ).',
      'memos' as table_name,
      'content_index' as index_name,
      'むるんが') as snippet;
      
      snippet
      <div class="snippet">This is Mroonga(<span class="keyword">ムルンガ</span>).</div>
      
      • We can also use mixing search by query and search by keywords by this modification.

      • For example as below, we can highlight keywords that we both specify by AS query and AS snippet.

        SET NAMES utf8mb4;
        SELECT mroonga_snippet_html('Mroonga has two running modes.
        
        One is “storage mode”, that is the default mode, and we use Groonga for both storing data and searching. With this mode, you can have full benefits of Groonga described above, like fast data update, lock-free full text search and geolocation search. But it does not support transactions.
        
        Another one is “wrapper mode”, that adds full text search function on other storage engines like MyISAM or InnoDB. With this mode, you can use Groonga’s fast full text search with having the benefits of the storage engine, ex. transaction in InnoDB. But you cannot have benefits from Groonga’s read-lock free characteristic. And you might have the performance bottle neck in the storage engine in updating data.',
        'lock storage' AS query,
        'update' AS snippet;
        
        snippet
        <div class="snippet"><span class="keyword">storage</span> mode”, that is the default mode, and we use Groonga for both storing data and searching. With this mode, you can have full benefits of Groonga described above, like fast data <span class="keyword">update</span>, <span class="keyword">lock</span>-fr</div><div class="snippet">text search function on other <span class="keyword">storage</span> engines like MyISAM or InnoDB. With this mode, you can use Groonga’s fast full text search with having the benefits of the <span class="keyword">storage</span> engine, ex. transaction in In</div><div class="snippet">noDB. But you cannot have benefits from Groonga’s read-<span class="keyword">lock</span> free characteristic. And you might have the performance bottle neck in the <span class="keyword">storage</span> engine in updating data.</div>
        

Release 10.07 - 2020-10-02

Improvements

  • [CentOS] Added support for MariaDB 10.5.5

  • Added new tests that use > 256 byte strings in the column compression tests. [GitHub#350][Patched by KartikSoneji]

Thanks

  • KartikSoneji

Release 10.06 - 2020-09-02

Improvements

Note

We removed the news that “Added support for MariaDB 10.5.5”.

At first, we announced that “Added support for MariaDB 10.5.5”. However, it had been wrong. Mroonga 10.06 can build on MariaDB 10.5. However, there are points that are not working normally yet.

  • [Ubuntu] Dropped Ubuntu 19.10 (Eoan Ermine) support.

  • [CentOS] Added support for Percona Server 8.0.20.

  • [CentOS] Added support for MariaDB 10.1.46, 10.2.33, 10.3.24, and 10.4.14.

  • Modify how to install into Debian GNU/Linux.

    • We modify to use groonga-apt-source instead of groonga-archive-keyring.

    • Because the lintian command recommends using apt-source if a package that it puts files under the /etc/apt/sources.lists.d/.

      • The lintian command is the command which checks for many common packaging errors.

      • Please also refer to the following for the details about installation procedures.

  • [CentOS] Added support for Percona Server 5.7.31.

Release 10.05 - 2020-07-29

Improvements

  • [CentOS] Added support for MySQL 5.6.49, 5.7.31, and 8.0.21.

    • There are below restrictions in the MySQL 8.0 package.

  • [CentOS] Added support for Percona Server 5.6.49.

Release 10.03 - 2020-05-29

Improvements

  • [Ubuntu] Added support for Ubuntu 20.04 (Focal Fossa) support.

  • [Ubuntu] Dropped Ubuntu 19.04 (Disco Dingo) support.

  • [CentOS] Added support for MariaDB 10.1.45, 10.2.32, 10.3.23, and 10.4.13.

  • [CentOS] Added support for Percona Server 5.6.48 and 5.7.30.

  • Dropped support for MariaDB 10.1 in Windows.

    • Because MariaDB 10.1 will be EOL soon.

Fixes

  • [Ubuntu] Fixed a bug that Mroonga for Ubuntu 19.10 (Eoan Ermine) was not provided.

Release 10.02 - 2020-04-29

Improvements

  • Added support for WITH_WEIGHT column flag.

    • This flag require Groonga 10.0.2 or later.

    • We can insert vector with weight as below by this flag.

      CREATE TABLE tags (
        name VARCHAR(64) PRIMARY KEY
      ) DEFAULT CHARSET=utf8mb4;
      
      CREATE TABLE bugs (
        tags TEXT COMMENT 'flags "COLUMN_VECTOR|WITH_WEIGHT", type "tags"',
        FULLTEXT INDEX bugs_tags (tags) COMMENT 'table "tags", flags "WITH_WEIGHT"'
      ) DEFAULT CHARSET=utf8mb4;
      
      INSERT INTO bugs VALUES ('{"package": 100, "priority": 5}');
      
  • Dropped support for MariaDB 5.5 in CentOS7.

  • [CentOS] Added support for MySQL 5.6.48, 5.7.30, 8.0.20

Release 10.01 - 2020-03-30

Improvements

  • [CentOS] Added support for Percona Server 5.7.29.

Fixes

Thanks

  • pinpikokun

Release 9.12 - 2020-01-29

Improvements

  • [CentOS] Added support for MySQL 5.6.47, 5.7.29, 8.0.19

  • [CentOS] Added support for MariaDB 10.1.44, 10.2.31, 10.3.22, 10.4.12.

  • Fixed a build error when we built by using source of MySQL 8.0.19.

  • [CentOS] Added support for Percona Server 5.6.47.

Release 9.11 - 2020-01-08

Improvements

  • [Ubuntu] Dropped Ubuntu 14.04 LTS (Trusty Tahr) support.

  • [Ubuntu] Dropped Ubuntu 18.10 (Cosmic Cuttlefish) support.

  • [CentOS] Added how to install for CentOS 8.

  • [CentOS] Added support for MariaDB 10.2.30, 10.3.21, 10.4.11.

  • Applied a patch for visualizing the shutdown process of InnoDB into MariaDB 10.3 and 10.4.

    • This is a temporary change. We will remove this modify in a future version.

    • This modify Increasing outputted logs when InnoDB shutdown.

Fixes

  • [Ubuntu] Added support for Ubuntu 16.04 (Xenial Xerus) that was missing.

Release 9.10 - 2019-11-29

Improvements

  • [CentOS] Added support for MariaDB 10.1.43, 10.2.29, 10.3.20, 10.4.10

  • [CentOS] Added support for MariaDB 10.3.20, 10.4.10, and MySQL 8.0.18 on CentOS 8.

  • [Ubuntu] Added support for Ubuntu 19.10 (Eoan Ermine)

Fixes

  • Fixed a bug that dpkg --configure will fail when we install the package on Ubuntu 18.04 on WSL. [GitHub#282][Patched by ochaochaocha3]

Thanks

  • ochaochaocha3

Release 9.09 - 2019-10-30

Note

Maybe performance decreases from this version. Therefore, If performance decreases than before, please report us with reproducible steps.

Improvements

  • [CentOS] Added support for MySQL 5.6.46, 5.7.28, and 8.0.18(with restrictions).

Fixes

  • Fixed a build error a package for MySQL 8.0.18.

Release 9.08 - 2019-09-27

Improvements

  • [CentOS] Added support for MariaDB 5.5.64, 10.2.27, 10.3.18, and 10.4.8

  • [CentOS] Dropped 32-bit package support on CentOS 6.

Fixes

  • [Debian GNU/Linux] Fixed that can’t install mariadb-server-10.3-mroonga in Debian 10(buster).

Thanks

  • kajiys

  • bizlevel

Release 9.07 - 2019-08-29

Improvements

  • [Debian GNU/Linux] Added a install document for Debian 10(buster).

  • [CentOS] Added support for MariaDB 10.1.41, 10.2.26, 10.3.17, and 10.4.7.

  • [Server variables] Added a document for mroonga_query_log_file.

  • [Others] Added a document about how to uninstall Mroonga. [GitHub#135][Patched by ryfjwr]

  • [Storage mode] Added a document about how to use regular expression search.

  • Dropped support for MariaDB 10.0

  • [CentOS] Added support for Percona Server 5.6.45 and 5.7.27

  • [CentOS] Dropped support for MariaDB 10.x on CentOS 6

Thanks

  • ryfjwr

Release 9.05 - 2019-07-30

Improvements

  • [CentOS] Added a description about current limitation with MySQL 8.0.

  • [CentOS] Added support for MySQL 5.6.45, 5.7.27 and 8.0.17.

Fixes

  • [CentOS] Fixed a wrong mysql80-comunity-release package name. [groonga-dev,04759][Reported by Kagami Hiroshi]

  • [Storage mode] Fixed an unique index update bug. This bug causes duplicated key error when the following conditions are met.

    • An unique index is created against multiple column index

    • partial unique key column is updated

    Note that if you already created an unique index, you must recreate target tables because unique index may have garbage entries. We recommend to recreate an target table with dump and restore, or execute ALTER TABLE (TABLE_NAME) FORCE.

  • [mysql8.0] Added a support for TIMESTAMP [groonga-dev,04763][Reported by Kagami Hiroshi]

Thanks

  • Kagami Hiroshi

Release 9.04 - 2019-06-29

Improvements

  • [CentOS] Added support for Percona Server 5.7.26.

  • [CentOS] Added support for MariaDB 10.2.25/10.3.16.

  • [CentOS][experimental] Added support for MySQL 8.0.16.

Fixes

  • Fixed a infinite loop bug. This bug is occurred when invalid flag is specified such as FULLTEXT INDEX (...) COMMENT 'index_flags "INVALID|WITH_SECTION"'.

  • [windows] Fixed a inappropriate pdb path with MariaDB 10.2/10.3.

  • [Others] Fixed a typo about missing appropriate account name in plugin install instruction.

  • Fixed a crash bug with ((MATCH OR MATCH) AND (MATCH)) query.

Release 9.03 - 2019-05-29

Improvements

  • [Storage mode] Updated example to use tokenizer "XXX"` in ``COMMENT because default_tokenizer "XXX" is deprecated since 9.01.

  • [Windows] Added support to provide MariaDB 10.1, 10.2 zip package again.

  • [CentOS] Added support for MariaDB 10.3.14 and 10.3.15.

  • [Debian GNU/Linux] Updated install instruction for copy and paste friendly.

  • Added support for INDEX_LARGE flag such as COMMENT 'flags "INDEX_LARGE"' syntax.

  • [CentOS] Added support for MariaDB 10.2.24.

  • [CentOS] Added support for MariaDB 10.1.40.

  • [Ubuntu] Added support for Ubuntu 19.04 (Disco Dingo)

  • [CentOS] Added support for Percona Server 5.6.44.

  • [CentOS] Added support for MySQL 5.6.44 and 5.7.26.

Release 9.01 - 2019-03-29

Improvements

  • [storage] Added support for tokenizer options.

    • For example, you can specify tokenizer options in COMMENT section such as CREATE TABLE foo (...) COMMENT='tokenizer "TokenNgram(''n'', 4)"'.

  • [mariadb] Added support for “tokenizer” table parameter.

    • For example, you can specify “tokenizer” such as CREATE TABLE foo (...) TOKENIZER='TokenNgram("n", 4)'.

  • [storage] Added support for tokenizer parameter in comment.

    • Note that default_tokenizer is deprecated.

  • [mariadb] Added support for “normalizer” table parameter.

    • For example, you can specify “normalizer” such as CREATE TABLE foo (...) NORMALIZER='NormalizerNFKC100("unify_kana", true)'.

  • [mariadb] Added support for “token_filters” table parameter.

    • For example, you can specify “token_filters” such as CREATE TABLE foo (...)  TOKEN_FILTERS='TokenFilterNFKC100("unify_katakana_v_sounds", true)'.

  • Added support for “LEXICON” index parameter.

    • For example, you can specify FULLTEXT INDEX foo (bar) LEXICON='terms' or FULLTEXT INDEX foo (bar) COMMENT 'lexicon "terms"'.

  • [appveyor] Improved support to building Mroonga enabled package [GitHub#230]

  • [CentOS] Added support for Percona Server 5.7.25-28.

  • [CentOS] Added support for MariaDB 10.3.13.

  • [CentOS] Added support for MariaDB 10.2.23.

Release 9.00 - 2019-02-09

This is a major version up! But It keeps backward compatibility. You can upgrade to 9.00 without rebuilding database.

In Groonga 9.0.0, TokenPattern, TokenTable tokenizer and remove_blank for NormalizerNFKC100 is supported. If you upgrade to Groonga 9.0.0, you can use them from Mroonga 9.00!

Improvements

  • [CentOS] Supported Percona Server 5.7.24-27.

  • [CentOS] Supported Percona Server 5.6.43 rel84.3.

  • [rpm][centos] Supported MariaDB 10.3.12.

  • [rpm][centos] Supported MariaDB 10.2.21.

  • [rpm][centos] Supported Percona Server 5.7.24-27.

  • [rpm][centos] Supported Percona Server 5.6.43 rel84.3.

  • [rpm][centos] Supported MySQL 5.7.25.

  • [rpm][centos] Supported MySQL 5.6.43.

Release 8.09 - 2018-11-29

Improvements

  • [Ubuntu] Supported Ubuntu 18.10 (Cosmic Cuttlefish).

  • [Windows] Supported MariaDB 10.3.10.

  • [CentOS] Supported MariaDB 10.2.19

  • [CentOS] Supported MariaDB 10.1.37

  • [CentOS] Supported Percona Server 5.7.23-25.

  • [rpm][centos] Supported MariaDB 10.3.11.

  • [rpm][centos] Supported MySQL 5.6.42.

  • [rpm][centos] Supported MySQL 5.7.24.

Revision:

We deleted information as below.

“Supported MySQL 8”

Sorry, There was wrong release information in Mroonga 8.09. The MySQL 8 is not supported. That is still being handled.

Release 8.07 - 2018-09-29

Improvements

  • Deprecated tokenizer off option. Use tokenizer none option instead.

  • Dropped support for MariaDB 10.2.2 which is shipped at Sep 27, 2016 and older series.

Fixes

  • [CentOS] Supported MariaDB 10.1.36.

Release 8.06 - 2018-08-29

In this version, MySQL will be automatically restarted if you had already installed Mroonga and not installed Groonga 8.0.4 or later. Because Mroonga 8.06 requires Groonga 8.0.4 or later but it will not reloaded until MySQL is restarted.

Improvements

  • Updated required Groonga version to 8.0.4 or later.

  • Updated required groonga-normalizer-mysql version to 1.1.3 or later.

  • Supported utf8mb4_0900 family collation.

  • Supported tokenizer options.

  • Use the Groonga’s default logger.

  • [Windows] Updated bundled MariaDB to 10.3.9 from 10.1.33.

    • NOTICE: Before upgrading to MariaDB 10.3, you need to dump existing MariaDB 10.1 databases. Then restore it after upgrading.

  • [Debian GNU/Linux] Dropped Debian 8 (jessie) support.

  • [Ubuntu] Dropped Ubuntu 17.10 (Artful Aardvark) support.

  • [WIP] Working on supporting MySQL 8.

    • The storage mode is almost done (JSON type doesn’t work yet).

    • The wrapper mode is in progress.

Fixes

  • [storage] Fixed a bug that wrong result may be returned on multi range read. [GitHub#211][Reported by colt27]

Thanks

  • colt27

Release 8.03 - 2018-05-29

Improvements

  • [Docker] Added quick start guide link to Docker Hub.

  • [CentOS] Supported MariaDB 10.3.7.

  • [CentOS] Supported MariaDB 10.2.15 (backported to 8.02).

  • [CentOS] Supported MariaDB 10.1.33 (backported to 8.02).

Fixes

  • [Ubuntu] Fixed install failure on Ubntu 14.04 LTS (Trusty) (backported to 8.02). [GitHub#202,#205][Reported by Masato Hirai]

Thanks

  • Masato Hirai

Release 8.02 - 2018-04-29

Improvements

  • [Ubuntu] Supported Ubuntu 18.04 LTS (Bionic Beaver).

  • [Debian GNU/Linux] Supported i386 for Jessie.

  • Suppress meaningless “duplicated unique id” error log. [GitHub#197]

  • [developer][test] Supported –record option.

  • [CentOS] Use groonga-release-latest instead of groonga-release-X.X.X.

  • [Installation check] Added version check howto.

  • [CentOS][percona] Supported upgrading from “< 5.6.34” and “< 5.7.21”. [groonga-dev,04599][Reported by Takashi Kinoshita][Looked into by Satoshi Mitani]

  • [CentOS] Supported MySQL 5.6.40 and 5.7.22.

  • [CentOS] Supported Percona Server 5.7.21-21.

Fixes

  • Fixed a crash bug when some complex condition in ORDER BY such as ORDER BY 1 + 1, id, content.

  • Fixed a bug that MATCH AGAINST condition is ignored if SQL containing such as AND (x = 1 OR x = 2) when condition push down is enabled. [Gitter/ja:5ae014842b9dfdbc3ac7ce1f][Reported by colt27]

  • Fixed a memory leak for column caches.

Thanks

  • Takashi Kinoshita

  • Satoshi Mitani

  • colt27

Release 8.01 - 2018-03-29

In this version, MySQL will be automatically restarted if you had already installed Mroonga. This is because Mroonga requires newer version of Groonga (8.0.1) to fix bugs, but it will not reloaded until MySQL is restarted.

Improvements

  • [rpm][centos] Supported Percona Server 5.6.39. [Reported by @iiiiyyyy]

  • [rpm][centos] Supported Percona Server 5.7.21.

  • [rpm][centos] Supported MariaDB 10.2.13. [GitHub#198] [Reported by shota suzuki]

  • [rpm][centos] Supported MariaDB 10.2.14.

Fixes

  • Fixed a bug that wrong cache for other database is used. If you create multiple database and use mroonga_command() against one of them, wrong cache is returned unexpectedly. To fix this issue, Groonga 8.0.1 or later is required.

  • Fixed a bug that “NOT IN” query returns empty result. This bug occurs when “NOT IN” is used with multiple arguments such as “NOT IN (xxx, xxx)”

  • Fixed a bug that specified “NOT IN” can’t exclude correctly when condition push down is enabled.

  • Fixed a bug that “ORDER BY RAND()” query returns wrong result. This bug occurs when “ORDER BY RAND()” and “LIMIT” is specified at the same time.

  • Fixed a bug that “fast order limit” optimization is applied unexpectedly to “ORDER BY function()”.

Thanks

  • @iiiiyyyy

  • shota suzuki

Release 8.00 - 2018-02-09

This is a major version up! But It keeps backward compatibility. You can upgrade to 8.0.0 without rebuilding database.

Improvements

  • When create hash index, used tiny hash for reducing used resource.

  • [percona57] Added gap lock detection support. [GitHub#188][Reported by Iwo]

Thanks

  • Iwo

Release 7.11 - 2018-01-29

Improvements

  • [test] Added a test case for sub query and order limit optimization. [GitHub#184] [Reported by Kazuki Hamasaki]

  • [rpm][centos] Supported 10.3.

  • [deb][ubuntu] Supported MariaDB 10.1 for Ubuntu 17.10 (Artful Aadvark)

Fixes

  • [Mroonga_n_pooling_contexts] Fixed a bug that value is reset unexpectedly by FLUSH STATUS.

  • [maradb10.3] Fixed a build error which is caused by renamed constant variable (HA_MUST_USE_TABLE_CONDITION_PUSHDOWN is renamed to HA_CAN_TABLE_CONDITION_PUSHDOWN).

  • [macOS] Removed obsolete install guide and updated link to latest documentation [Reported by Ryuji AMANO]

  • [rpm][centos] Supported MariaDB 10.2.12. [GitHub#186] [Reported by Shota Suzuki]

  • [rpm][centos] Supported Percona Server 5.7.20-19.

  • [Ubuntu] Dropped Ubuntu 17.04 (Zesty Zapus) support. It has reached EOL at Jan 13, 2018.

Thanks

  • Kazuki Hamasaki

  • Ryuji AMANO

  • Shota Suzuki

Release 7.10 - 2017-12-29

Improvements

  • Updated required Groonga version to 7.1.0. You need to restart MySQL after you upgrade to Mroonga 7.10.

  • [mariadb10.3] Supported MariaDB 10.3.

  • [rpm][centos] Supported MariaDB 10.2.11.

  • [rpm][centos] Supported MariaDB 10.1.30.

  • [rpm][centos] Supported Percona Server 5.7.20.

  • [rpm][centos] Supported Percona Server 5.6.38.

  • [Optimizations] Enable count_skip optimization for multi-column index.

  • Supported condition push down and added related new variables.

    • [Mroonga_condition_push_down] Added Mroonga_condition_push_down.

    • [mroonga_condition_push_down_type] Added mroonga_condition_push_down_type. The default value is ONE_FULL_TEXT_SEARCH. It means that condition push down is enabled only when WHERE clause has one MATCH AGAINST condition. If the value ALL is set, condition push down is always used (ALL is experimental for now. We are glad if you use it and tell us if it got faster or not).

  • Supported column cache when to get fixed size column value to improve performance.

  • Renamed a function last_insert_grn_id to mroonga_last_insert_grn_id to add missing mroonga_ prefix. last_insert_grn_id is deprecated. [GitHub#177] [Reported by Ian Gilfillan]

  • [Mroonga_n_pooling_contexts] Added a new status variable to show the number of pooling contexts for mroonga_command().

  • [ FLUSH TABLES ] Added clearing pooling contexts for mroonga_command() support.

Thanks

  • Ian Gilfillan

Release 7.09 - 2017-11-29

Improvements

  • [rpm][centos] Supported MariaDB 10.2.10.

  • [rpm][centos] Supported MariaDB 10.1.29.

  • Fixed not to require sed to run tests. [Patch by Sergei Golubchik]

  • [cmake] Changed to skip Mroonga related configurations on without Mroonga build. [Patch by Vladislav Vaintroub]

Thanks

  • Sergei Golubchik

  • Vladislav Vaintroub

Release 7.08 - 2017-10-29

Improvements

  • Supported table level flags option. You can specify TABLE_HASH_KEY, TABLE_PAT_KEY, TABLE_DAT_KEY, and KEY_LARGE table options. [groonga-dev, 04494] [Reported by Masanori Miyashita]

  • [rpm][centos] Supported MySQL 5.6.38-2 and 5.7.20-1.

  • [Ubuntu] Supported Ubuntu 17.10 (Artful Aardvark).

Thanks

  • Masanori Miyashita

Release 7.07 - 2017-10-12

Improvements

  • [mroonga_query_expand] Added mroonga_query_expand UDF. If you prepare synonyms table in advance, you can get expanded synonym in your query by mroonga_query_expanded. Note that Groonga 7.0.6 or later version is required to use this function.

  • [rpm][centos] Supported Percona Server 5.7.19-17.1. [Reported by tigersun2000]

  • [rpm][centos] Supported MariaDB 5.5.56-2. [Reported by akiko_pusu]

  • [rpm][centos] Supported MariaDB 10.1/10.2 provided by MariaDB.

Fixes

  • Fixed a bug that wrong database may be used on “DROP DATABASE”. This bug may cause a crash because internal “mroonga_operations” table is removed unexpectedly. It may happen when the following two conditions are true:

    1. There are multiple databases that uses Mroonga.

    2. “DROP DATABASE” against no longer Mroonga tables exist.

    As unexpected result, “DROP DATABASE x” may remove “mroonga_operations” table on existing “y” database.

  • Fix a crash bug after CHECK TABLE is used. [GitHub#167] [Reported by GMO Media, Inc.]

  • [deb][mariadb10] Added missing dependency to lsb-release package for preinst and postrm maintainer script. [GitHub#169] [Patch by Tatsuki Sugiura]

Thanks

  • @tigersun2000

  • @akiko_pusu

  • GMO Media, Inc.

  • Tatsuki Sugiura

Release 7.06 - 2017-08-29

Improvements

  • [mroonga_highlight_html()] Added usage about mroonga_highlight_html.

  • Supported generated column. It is useful to full-text search for partially extracted content from JSON column. [GitHub#159,#160,#163] [Patch by Naoya Murakami]

  • Added mroonga_enable_operations_recording. variable. [GitHub#158] [Patch by Naoya Murakami]

  • Supported virtual column for MariaDB 10.2 and MySQL 5.7. It supports VIRTUAL type. [GitHub#161,#162] [Patch by Naoya Murakami]

  • Supported MariaDB 10.1.26.

  • [rpm][centos] Supported Percona Server 5.6.36 rel82.1 and 5.7.18-16. [Gitter/ja:59894500bc46472974622cbd] [Reported by @tigersun2000_twitter]

  • [rpm][centos] Supported MySQL 5.6.37 and 5.7.19 on CentOS 7. [groonga-dev,04441] [Reported by Kagami Hiroshi]

Thanks

  • Naoya Murakami

  • @tigersun2000_twitter

  • Kagami Hiroshi

Release 7.05 - 2017-07-29

Improvements

  • Supported Groonga query log. Use mroonga_query_log_file variable to use this feature. [GitHub#148]

  • Supported MariaDB 10.2.7. [groonga-dev,04397] [Reported by Tomohiro ‘Tomo-p’ KATO]

  • [mroonga_command()] Supported database name that has special name such as db-1 for example. It contains special character -.

  • [mroonga_command()] Supported auto command syntax escape feature. It makes easy to use Groonga functionality from Mroonga.

  • Supported MariaDB 5.5.57.

  • [rpm][centos] Supported MySQL 5.6.37-2 and MySQL 5.7.19-1 on CentOS 6. [groonga-dev,04403] [Reported by Kagami Hiroshi]

  • [Ubuntu] Dropped Ubuntu 16.10 (Yekkety Yak) support. It has reached EOL at July 20, 2017.

  • [mroonga_highlight_html()] Supported a function to highlight target column or text.

Fixes

  • Fixed a crash bug when there is no active index internally. [Gitter:groonga/ja:596714a5c101bc4e3a7db4e5] [Reported by K Torimoto]

Thanks

  • K Torimoto

  • Tomohiro ‘Tomo-p’ KATO

  • Kagami Hiroshi

Release 7.04 - 2017-06-29

Improvements

  • Supported to show error message when failed to create a table for matched records. This kind of error occurs when indexes are broken. This error message helps to identify problem.

  • [Debian GNU/Linux] Supported Debian 9 (stretch).

Fixes

  • Fixed a crash bug that missing NULL check before calling grn_table_setoperation causes. Such a crash bug occurs when indexes are broken.

Release 7.03 - 2017-05-29

Improvements

  • [Limitations] Updated limitations about NULL in column. [Gitter/ja] [Reported by @bignum_twitter]

  • Supported INDEX_MEDIUM and INDEX_SMALL flags. [GitHub#141] [Patch by Naoya Murakami]

  • [CentOS] Supported recent Percona Server 5.6.36 and 5.7.18. [Reported by @pinpikokun]

Thanks

  • @bignum_twitter

  • @pinpikokun

  • Naoya Murakami

Release 7.02 - 2017-04-29

Improvements

  • [CentOS] Dropped Ubuntu 12.04 (Precise Pangolin) support because of EOL.

  • [Ubuntu] Added Zesty Zapus (Ubuntu 17.04) support.

Fixes

  • [CentOS] Fixed build error with MySQL 5.6.36 and MySQL 5.7.18.

  • [cmake] Fixed missing link to libgroonga when mroonga is bundled and libgroonga isn’t bundled. [GitHub#137] [Patch by Naoya Murakami]

Thanks

  • Naoya Murakami

Release 7.01 - 2017-03-29

Improvements

  • [CentOS] Dropped CentOS 5 support because of EOL.

  • [Storage mode] Supported ALTER TABLE ADD/DROP FOREIGN KEY.

  • [Storage mode] Supported fast ORDER LIMIT with ENUM. [groonga-dev,04277] [Reported by murata satoshi]

  • Supported COMPRESS_ZSTD column compression flag. [GitHub#133] [Patch by Naoya Murakami]

  • [Server variables] Added documentation about mroonga_libgroonga_support_zstd variable. [GitHub#133] [Patch by Naoya Murakaimi]

  • [Install] Changed to recommend https://packages.groonga.org for downloading resources.

Fixes

  • [Storage mode] Fixed update error for log-bin and UPDATE with collated PRIMARY KEY. [GitHub#132] [Reported by kitora]

  • Fixed a bug that FOREIGN KEY is dumped unexpectedly even though you didn’t set it. [groonga-dev,04276] [Reported by murata satoshi]

Thanks

  • kitora

  • murata satoshi

  • Naoya Murakami

Release 7.00 - 2017-02-09

Improvements

  • [CentOS] Changed to ensure enabling EPEL to install package.

  • Supported FOREIGN KEY constrain on UPDATE and DELETE parent row. In the previous versions, only FOREIGN KEY constrain on INSERT is supported.

  • [Storage mode] Supported updating row even though its table has primary key with ROW binlog format. In the previous version, it causes update statement error. [GitHub#130] [Reported by kitora]

Thanks

  • kitora

Past releases