A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
[/reference/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.
[/install/centos
][/install/almalinux
] Added support for Percona Server
8.0.28-19.
[/install/centos
][/install/almalinux
] Added support for MariaDB 10.2.44,
10.3.35, 10.4.25, 10.5.16, 10.6.8, and 10.7.4.
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
/install/centos
]
Added support for Percona Server 5.7.37-40./install/centos
]
Added support for MySQL 5.7.38./install/centos
][/install/almalinux
] Added support for MySQL
8.0.29.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.
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.
[/install/centos
][/install/almalinux
] Added support for MariaDB 10.3.34,
10.4.24, 10.5.15, 10.6.7, and 10.7.3.
[/install/centos
] Added support for MariaDB
10.2.43.
[/install/centos
][/install/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.
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.
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';
[/reference/udf/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>
[/reference/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.
Fix a crash bug that may be caused after MySQL/MariaDB upgrade.
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 <release-11-07>
for
details.
[/reference/optimizations
] Fixed a bug that Mroonga
apply the optimization of row count wrongly.
See release 11.10 <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 executeALTER 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 <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 <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 <release-11-01>
for
details.
Fixed a bug that a update of Mroonga fails on MariaDB.
/install/debian
]
Added support for Debian 11 (bullseye)./install/almalinux
] Added support for Mroonga on
AlamLinux 8./install/centos
]
Dropped support for CentOS 8./install/ubuntu
]
Dropped Ubuntu 21.04 (Hirsute Hippo) support./install/ubuntu
]
Dropped Ubuntu 20.10 (Groovy Gorilla) support./install/ubuntu
]
Dropped Ubuntu 16.04 LTS (Xenial Xerus) support./install/ubuntu
]
Dropped support for MariaDB 10.1 on Ubuntu 18.04 LTS.The main changes in 12.00 are as follows.
[/install/ubuntu
] Added support for the latest version
of mysql-server package for Ubuntu.
We supported the following versions.
[/install/centos
] Added support for MariaDB 10.2.42,
10.3.33, 10.4.23, 10.5.14, and 10.6.6.
[/install/almalinux
] Added support for MariaDB 10.3.33,
10.4.23, 10.5.14, and 10.6.6.
[/install/centos
] Added support for MySQL
5.7.37.
[/install/centos
][/install/almalinux
] Added support for MySQL
8.0.28.
There are below restrictions in the MySQL 8.0 package.
- [
/tutorial/wrapper
] Wrapper mode is not supported yet.- [
/tutorial/storage
] Storage mode does not support the following feature.
- The feature of relevant to the optimization.
[/install/centos
][/install/almalinux
] Added support for Percona Server
8.0.26-17.
[/install/ubuntu
] Dropped Ubuntu 21.04 (Hirsute Hippo)
support.
[/install/centos
] Dropped support for CentOS 8.
Because CentOS 8 will reach EOL at 2021-12-31.
/install/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]/install
] Fixed a typo. [GitHub #469,#470][Patched by
Marc Laporte]/install/centos
] Fixed the wrong URL of
percona-release-latest.noarch.rpm
. [GitHub #471][Patched by
santalex]/install/almalinux
] Added support for Mroonga on
AlamLinux 8.
[
/install/almalinux
] Added support for MySQL 8.0.27.
- There are below restrictions in the MySQL 8.0 package.
- [
/tutorial/wrapper
] Wrapper mode is not supported yet.- [
/tutorial/storage
] Storage mode does not support the following feature.
- The feature of relevant to the optimization.
- [
/install/almalinux
] Added support for Percona Server 8.0.26.- [
/install/almalinux
] Added support for MariaDB 10.3.32, 10.4.22, 10.5.13, and 10.6.5.
/install/centos
]
Added support for MariaDB 10.2.41, 10.3.32, 10.4.22, 10.5.13, and
10.6.5./install/ubuntu
]
Added support for MySQL 8.0 on Ubuntu 21.04 (Hirsute Hippo) and 21.10
(Impish Indri).
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
Storage mode does not support the following feature.
[/install/centos
] Fixed a bug that we have not provided
the package of Mroonga for MariaDB 10.6.
[/reference/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;
/install/centos
]
Added support for MySQL 5.7.36, 8.0.27./install/centos
]
Added support for Percona Server 8.0.26.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.
/install/ubuntu
]
Added support for MySQL 8.0 on Ubuntu 20.04 (Focal Fossa).
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
Storage mode does not support the following feature.
/reference/udf/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>
mysqldump
for dumping vector column values
by this feature.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)
/install/centos
]
Added support for MariaDB 10.2.40, 10.3.31, 10.4.21, and 10.5.12/install/centos
]
Added support for MariaDB 10.6.4 [GitHub#434][Patched by Tomohiro
KATO]/install/centos
]
Added support for Percona Server 5.7.35./install/debian
]
Added support for Debian 11 (bullseye)./install/centos
]
Added support for Percona Server 8.0.25/install/centos
]
Added support for MySQL 5.7.35, 8.0.26.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
Storage mode does not support the following feature.
/install/ubuntu
]
Dropped Ubuntu 20.10 (Groovy Gorilla) support.
SELECT ... MATCH AGAINST
after MySQL/MariaDB upgrade.[/reference/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.
[/install/debian
] 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.
[/install/centos
] Added support for MariaDB 10.2.39,
10.3.30, 10.4.20, and 10.5.11.
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.
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.
- % echo "#!/bin/sh" > /usr/share/mroonga/deb/postrm.sh
- % chmod u+x /usr/share/mroonga/deb/postrm.sh
- 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.
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
[/install/debian
] Added support for the Oracle MySQL
5.7 package and the Oracle MySQL 8.0 package.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
Storage mode does not support the following feature.
Added support for the SRID of Spatial Indexes.
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"
[/install/centos
] Added support for Percona Server
8.0.23
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 executeALTER 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.
/install/centos
]
Added support for MySQL 5.7.34, 8.0.25.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
Storage mode does not support the following feature.
MBRContains
function. (It search by sequential
search.)/install/centos
]
Added support for MariaDB 10.2.38, 10.3.29, 10.4.19, and 10.5.10./install/ubuntu
]
Dropped Ubuntu 16.04 (Xenial Xerus) support.
[/install/centos
] Added support for MariaDB 10.2.37,
10.3.28, 10.4.18, and 10.5.9.
[/install/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.
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 []
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 ひじー]
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.
/install/centos
]
Dropped support for MySQL 5.6
/install/centos
]
Dropped support for Percona Server 5.6lexicon_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;
/install/centos
]
Added support for MySQL 5.6.51, 5.7.33, and 8.0.23.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
JSON data type is not supported yet./reference/optimizations
] Fixed a bug that the fast
order limit optimization doen't work when "WHERE COLUMN IN (SUBQUERY)"
exists.ALTER TABLE
when
we modify the data type of a column that has any indexes.
ALTER TABLE
in
ALGORITHM=INPLACE
. Therefore, this bug doesn't occur when
we use ALTER TABLE
in ALGORITHM=COPY
/tutorial/storage
]
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.
/install/ubuntu
]
Added support for Ubuntu 20.10 (Groovy Gorilla)./install/centos
]
Added support for Percona Server 8.0.22./install/centos
]
Added support for MariaDB 10.2.36, 10.3.27, 10.4.17, and 10.5.8/install/centos
]
Added support for Percona Server 5.6.50, 5.7.32, and 8.0.21./install/centos
]
Added support for MySQL 5.6.50, 5.7.32, and 8.0.22.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
JSON data type is not supported yet./reference/udf/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
.
table_name
as
below.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>
/install/centos
]
Added support for MariaDB 10.5.5Note
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.
/install/ubuntu
]
Dropped Ubuntu 19.10 (Eoan Ermine) support./install/centos
]
Added support for Percona Server 8.0.20./install/centos
]
Added support for MariaDB 10.1.46, 10.2.33, 10.3.24, and 10.4.14.groonga-apt-source
instead of
groonga-archive-keyring
.lintian
command recommends using apt-source
if a package that it puts files under the
/etc/apt/sources.lists.d/
.
lintian
command is the command which checks for
many common packaging errors./install/debian
]/install/centos
]
Added support for Percona Server 5.7.31./install/centos
]
Added support for MySQL 5.6.49, 5.7.31, and 8.0.21.
/tutorial/wrapper
]
Wrapper mode is not supported yet./tutorial/storage
]
JSON data type is not supported yet./install/centos
]
Added support for Percona Server 5.6.49./install/ubuntu
]
Added support for Ubuntu 20.04 (Focal Fossa) support./install/ubuntu
]
Dropped Ubuntu 19.04 (Disco Dingo) support./install/centos
]
Added support for MariaDB 10.1.45, 10.2.32, 10.3.23, and 10.4.13./install/centos
]
Added support for Percona Server 5.6.48 and 5.7.30./install/ubuntu
]
Fixed a bug that Mroonga for Ubuntu 19.10 (Eoan Ermine) was not
provided.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}');
/install/centos
]
Added support for MySQL 5.6.48, 5.7.30, 8.0.20/install/centos
]
Added support for Percona Server 5.7.29.ORDER_BY_LIMIT
is valid.
ORDER BY LIMIT
./install/centos
]
Added support for MySQL 5.6.47, 5.7.29, 8.0.19/install/centos
]
Added support for MariaDB 10.1.44, 10.2.31, 10.3.22, 10.4.12./install/centos
]
Added support for Percona Server 5.6.47./install/ubuntu
]
Dropped Ubuntu 14.04 LTS (Trusty Tahr) support./install/ubuntu
]
Dropped Ubuntu 18.10 (Cosmic Cuttlefish) support./install/centos
]
Added how to install for CentOS 8./install/centos
]
Added support for MariaDB 10.2.30, 10.3.21, 10.4.11./install/ubuntu
]
Added support for Ubuntu 16.04 (Xenial Xerus) that was missing./install/centos
]
Added support for MariaDB 10.1.43, 10.2.29, 10.3.20, 10.4.10/install/centos
]
Added support for MariaDB 10.3.20, 10.4.10, and MySQL 8.0.18 on CentOS
8./install/ubuntu
]
Added support for Ubuntu 19.10 (Eoan Ermine)dpkg --configure
will fail when we
install the package on Ubuntu 18.04 on WSL. [GitHub#282][Patched by
ochaochaocha3]Note
Maybe performance decreases from this version. Therefore, If performance decreases than before, please report us with reproducible steps.
/install/centos
]
Added support for MySQL 5.6.46, 5.7.28, and 8.0.18(with
restrictions)./install/centos
]
Added support for MariaDB 5.5.64, 10.2.27, 10.3.18, and 10.4.8/install/centos
]
Dropped 32-bit package support on CentOS 6./install/debian
]
Fixed that can't install mariadb-server-10.3-mroonga in Debian
10(buster)./install/debian
]
Added a install document for Debian 10(buster)./install/centos
]
Added support for MariaDB 10.1.41, 10.2.26, 10.3.17, and 10.4.7./reference/server_variables
] Added a document for
mroonga_query_log_file
./install/others
]
Added a document about how to uninstall Mroonga. [GitHub#135][Patched by
ryfjwr]/tutorial/storage
]
Added a document about how to use regular expression search./install/centos
]
Added support for Percona Server 5.6.45 and 5.7.27/install/centos
]
Dropped support for MariaDB 10.x on CentOS 6/install/centos
]
Added a description about current limitation with MySQL 8.0./install/centos
]
Added support for MySQL 5.6.45, 5.7.27 and 8.0.17.[/install/centos
] Fixed a wrong
mysql80-comunity-release
package name.
[groonga-dev,04759][Reported by Kagami Hiroshi]
[/tutorial/storage
] Fixed an unique index update bug.
This bug causes duplicated key error when the following conditions are
met.
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]
/install/centos
]
Added support for Percona Server 5.7.26./install/centos
]
Added support for MariaDB 10.2.25/10.3.16./install/centos
][experimental] Added support for MySQL
8.0.16.FULLTEXT INDEX (...) COMMENT 'index_flags "INVALID|WITH_SECTION"'
./install/others
]
Fixed a typo about missing appropriate account name in plugin install
instruction.((MATCH OR MATCH) AND (MATCH))
query./tutorial/storage
]
Updated example to use
tokenizer "XXX"` in
COMMENTbecause
default_tokenizer
"XXX"`` is deprecated since 9.01./install/windows
]
Added support to provide MariaDB 10.1, 10.2 zip package again./install/centos
]
Added support for MariaDB 10.3.14 and 10.3.15./install/debian
]
Updated install instruction for copy and paste friendly.INDEX_LARGE
flag such as
COMMENT 'flags "INDEX_LARGE"'
syntax./install/centos
]
Added support for MariaDB 10.2.24./install/centos
]
Added support for MariaDB 10.1.40./install/ubuntu
]
Added support for Ubuntu 19.04 (Disco Dingo)/install/centos
]
Added support for Percona Server 5.6.44./install/centos
]
Added support for MySQL 5.6.44 and 5.7.26.CREATE TABLE foo (...) COMMENT='tokenizer "TokenNgram(''n'', 4)"'
.CREATE TABLE foo (...) TOKENIZER='TokenNgram("n", 4)'
.default_tokenizer
is deprecated.CREATE TABLE foo (...) NORMALIZER='NormalizerNFKC100("unify_kana", true)'
.CREATE TABLE foo (...) TOKEN_FILTERS='TokenFilterNFKC100("unify_katakana_v_sounds", true)'
.FULLTEXT INDEX foo (bar) LEXICON='terms'
or
FULLTEXT INDEX foo (bar) COMMENT 'lexicon "terms"'
./install/centos
]
Added support for Percona Server 5.7.25-28./install/centos
]
Added support for MariaDB 10.3.13./install/centos
]
Added support for MariaDB 10.2.23.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!
/install/centos
]
Supported Percona Server 5.7.24-27./install/centos
]
Supported Percona Server 5.6.43 rel84.3./install/ubuntu
]
Supported Ubuntu 18.10 (Cosmic Cuttlefish)./install/windows
]
Supported MariaDB 10.3.10./install/centos
]
Supported MariaDB 10.2.19/install/centos
]
Supported MariaDB 10.1.37/install/centos
]
Supported Percona Server 5.7.23-25.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.
off
option. Use tokenizer
none
option instead./install/centos
]
Supported MariaDB 10.1.36.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.
tokenizer "TokenNgram(\'loose_symbol\', true)"
/install/windows
]
Updated bundled MariaDB to 10.3.9 from 10.1.33.
/install/debian
]
Dropped Debian 8 (jessie) support./install/ubuntu
]
Dropped Ubuntu 17.10 (Artful Aardvark) support./install/docker
]
Added quick start guide link to Docker Hub./install/centos
]
Supported MariaDB 10.3.7./install/centos
]
Supported MariaDB 10.2.15 (backported to 8.02)./install/centos
]
Supported MariaDB 10.1.33 (backported to 8.02)./install/ubuntu
]
Fixed install failure on Ubntu 14.04 LTS (Trusty) (backported to 8.02).
[GitHub#202,#205][Reported by Masato Hirai]/install/ubuntu
]
Supported Ubuntu 18.04 LTS (Bionic Beaver)./install/debian
]
Supported i386 for Jessie./install/centos
]
Use groonga-release-latest instead of
groonga-release-X.X.X./tutorial/installation_check
] Added version check
howto./install/centos
][percona] Supported upgrading from
"< 5.6.34" and "< 5.7.21". [groonga-dev,04599][Reported by Takashi
Kinoshita][Looked into by Satoshi Mitani]/install/centos
]
Supported MySQL 5.6.40 and 5.7.22./install/centos
]
Supported Percona Server 5.7.21-21.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.
This is a major version up! But It keeps backward compatibility. You can upgrade to 8.0.0 without rebuilding database.
status-variable-mroonga-n-pooling-contexts
] Fixed a
bug that value is reset unexpectedly by FLUSH STATUS
.HA_MUST_USE_TABLE_CONDITION_PUSHDOWN
is renamed
to HA_CAN_TABLE_CONDITION_PUSHDOWN
)./install/macos
]
Removed obsolete install guide and updated link to latest documentation
[Reported by Ryuji AMANO]/install/ubuntu
]
Dropped Ubuntu 17.04 (Zesty Zapus) support. It has reached EOL at Jan
13, 2018./reference/optimizations
] Enable count_skip
optimization for multi-column index.status-variable-mroonga-condition-push-down
] Added
Mroonga_condition_push_down
.server-variable-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).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]status-variable-mroonga-n-pooling-contexts
] Added a
new status variable to show the number of pooling contexts for /reference/udf/mroonga_command
.FLUSH TABLES
] Added clearing pooling contexts for
/reference/udf/mroonga_command
support.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]/install/ubuntu
]
Supported Ubuntu 17.10 (Artful Aardvark).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.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:
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]
/reference/udf/mroonga_highlight_html
] Added usage
about mroonga_highlight_html
.server-variable-mroonga-enable-operations-recording
.
variable. [GitHub#158] [Patch by Naoya Murakami]VIRTUAL
type. [GitHub#161,#162] [Patch by Naoya
Murakami]mroonga_query_log_file
variable to use this feature. [GitHub#148]/reference/udf/mroonga_command
] Supported database
name that has special name such as db-1
for example. It
contains special character -
./reference/udf/mroonga_command
] Supported auto command
syntax escape feature. It makes easy to use Groonga functionality from
Mroonga./install/ubuntu
]
Dropped Ubuntu 16.10 (Yekkety Yak) support. It has reached EOL at July
20, 2017./reference/udf/mroonga_highlight_html
] Supported a
function to highlight target column or text./install/debian
]
Supported Debian 9 (stretch).NULL
check before
calling grn_table_setoperation
causes. Such a crash bug
occurs when indexes are broken./reference/limitations
] Updated limitations about NULL
in column. [Gitter/ja] [Reported by @bignum_twitter]INDEX_MEDIUM
and INDEX_SMALL
flags. [GitHub#141] [Patch by Naoya Murakami]/install/centos
]
Supported recent Percona Server 5.6.36 and 5.7.18. [Reported by
@pinpikokun]/install/centos
]
Dropped Ubuntu 12.04 (Precise Pangolin) support because of EOL./install/ubuntu
]
Added Zesty Zapus (Ubuntu 17.04) support./install/centos
]
Fixed build error with MySQL 5.6.36 and MySQL 5.7.18.libgroonga
when mroonga
is bundled and libgroonga
isn't bundled. [GitHub#137]
[Patch by Naoya Murakami]/install/centos
]
Dropped CentOS 5 support because of EOL./tutorial/storage
]
Supported ALTER TABLE ADD/DROP FOREIGN KEY
./tutorial/storage
]
Supported fast ORDER LIMIT
with ENUM
.
[groonga-dev,04277] [Reported by murata satoshi]COMPRESS_ZSTD
column compression flag.
[GitHub#133] [Patch by Naoya Murakami]/reference/server_variables
] Added documentation about
server-variable-mroonga-libgroonga-support-zstd
variable. [GitHub#133] [Patch by Naoya Murakaimi]/install
] Changed
to recommend https://packages.groonga.org
for downloading
resources./tutorial/storage
]
Fixed update error for log-bin and UPDATE
with collated
PRIMARY KEY
. [GitHub#132] [Reported by kitora]FOREIGN KEY
is dumped unexpectedly
even though you didn't set it. [groonga-dev,04276] [Reported by murata
satoshi]/install/centos
]
Changed to ensure enabling EPEL to install package.FOREIGN KEY
constrain on UPDATE
and DELETE
parent row. In the previous versions, only
FOREIGN KEY
constrain on INSERT
is
supported./tutorial/storage
]
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]news/6.x news/5.x news/4.x news/3.x news/2.x news/1.x news/0.x