Release 2.00 - 2012/02/29
Caution
This release breaks backward compatibility. We need to
dump and restore our database for upgrading.
In this release, mroonga has two changes that requires
database recreation:
- Supported all characters for database, table and column
names.
- Groonga's native time data type is used for YEAR type
in MySQL.
Here are upgrade sequence.
We dump a database that uses mroonga:
% mysqldump MY_MROONGA_DATABASE > database-mroonga.dump
We drop the existing database:
% mysql -u root -e 'DROP DATABASE MY_MROONGA_DATABASE'
We upgrade to "mroonga" storage engine. We will use
apt-get on Debian GNU/Linux or Ubuntu and yum on
CentOS or Fedora.
apt-get:
% sudo apt-get install -y mysql-server-mroonga
yum:
% sudo yum remove -y mysql-mroonga
% sudo yum install -y mysql-mroonga
Caution
We don't forget to run yum remove before yum
install. If we forget to run yum remove, we will break
a MySQL's system table.
We recreate a database:
% mysql -u root -e 'CREATE DATABASE MY_MROONGA_DATABASE'
We restore a database by modified dump file:
% mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump
Now, we can use mroonga 2.00.
Improvements
- Supported MySQL 5.5.21.
- Required groonga 1.3.1 or later.
- Supported TIMESTAMP with fractional seconds on MySQL 5.6 and MariaDB.
- [storage mode] Supported ORDER LIMIT optimization on no primary key.
- [storage mode] Supported ORDER LIMIT optimization with
fulltext search and COLUMN = INT_VALUE.
- [storage mode] Supported fulltext search in sub query.
[Reported by @camyuy]
- [incompatible] Mapped YEAR in MySQL to Time in
groonga to improve groonga integration.
- [storage mode] Removed a needless write lock on update.
[#1271] [Reported by Takahiro Nagai]
- Added mroonga_enable_optimization system variable to
on/off optimization. It's useful for benchmark.
- [wrapper mode] Supported temporary table. [#1267]
- [incompatible] Supported / in database name. [#1281]
- Suppressed needless messages on INSERT ... ON DUPLICATE
KEY UPDATE.
- Supported INSERT ... ON DUPLICATE KEY UPDATE with
UNIQUE KEY. [#1283] [Reported by @104yuki_n]
- Supported DATETIME, DATE, TIMESTAMP, TIME,
DECIMAL, YEAR for primary key.
- [incompatible] Supported all characters for database, table and
column names. [#1284]
- [wrapper mode] Supported 255 bytes over index. [#1282]
- [wrapper mode] Supported updating primary key. [#1195]
- [wrapper mode] Supported error handling on ALTER TABLE. [#1195]
- [wrapper mode] Improved error message on unsupported
geometry type like LineString. [#1195]
- [wrapper mode] Supported
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS. [#1195]
Fixes
- [rpm] Changed to ensure re-install plugin.
- [doc] Fixed wrong storage engine name. [Reported by Tomoatsu Shimada]
Thanks
- @camyuy
- Takahiro Nagai
- Tomoatsu Shimada
- @104yuki_n
Release 1.20 - 2012/01/29
Caution
This release breaks backward compatibility. We need to
dump and restore our database for upgrading.
In this release, mroonga has two changes that requires
database recreation:
- Storage engine name is changed to "mroonga" from "groonga".
- Groonga's native time data type is used for DATE, DATETIME
and TIMESTAMP type in MySQL.
We need to modify dumped database to change "ENGINE=groonga"
in "CREATE TABLE" SQL. Here are upgrade sequence.
We dump a database that uses mroonga:
% mysqldump MY_MROONGA_DATABASE > database-groonga.dump
We convert storage engine in dump file:
% sed -e 's/^) ENGINE=groonga/) ENGINE=mroonga/' database-groonga.dump > database-mroonga.dump
We confirm that ENGINE=groonga only in CREATE TABLE
is replaced with ENGINE=mroonga. We need to check @@
... @@ line includes CREATE TABLE. If the line
includes CREATE TABLE, the hunk will be a change for
CREATE TABLE:
% diff -up database-groonga.dump database-mroonga.dump
--- database-groonga.dump 2012-01-29 16:53:20.732624670 +0900
+++ database-mroonga.dump 2012-01-29 16:54:47.608420981 +0900
@@ -29,7 +29,7 @@ CREATE TABLE `diaries` (
PRIMARY KEY (`id`),
FULLTEXT KEY `title_index` (`title`),
FULLTEXT KEY `body_index` (`body`)
-) ENGINE=groonga DEFAULT CHARSET=utf8;
+) ENGINE=mroonga DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
We drop the existing database:
% mysql -u root -e 'DROP DATABASE MY_MROONGA_DATABASE'
We upgrade to "mroonga" storage engine. We will use
apt-get on Debian GNU/Linux or Ubuntu and yum on
CentOS or Fedora.
apt-get:
% sudo apt-get install -y mysql-server-mroonga
yum:
% sudo yum remove -y mysql-mroonga
% sudo yum install -y mysql-mroonga
Caution
We don't forget to run yum remove before yum
install. If we forget to run yum remove, we will break
a MySQL's system table.
We recreate a database:
% mysql -u root -e 'CREATE DATABASE MY_MROONGA_DATABASE'
We restore a database by modified dump file:
% mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump
Now, we can use mroonga 1.20.
Improvements
- Supported MySQL 5.5.20.
- Supported MySQL 5.1.61.
- Required groonga 1.3.0 or later.
- [incompatible] Changed storage engine name to "mroonga" from "groonga".
- Supported UTF8_BIN collate. [#1150]
- Disabled strict-aliasing warnings. [Reported by @issm]
- Supported decimal. [#1249] [Reported by @Kiske]
- [storage mode] Supported HA_KEYREAD_ONLY. It will improve
column value access in index. [#1212]
- [storage mode] Supported float value in multiple column index.
- [storage mode] Supported double value in multiple column index.
- [storage mode] Mapped enum and set types to more suitable
groonga data types.
- [wrapper mode] Supported REPAIR TABLE.
- [storage mode] Supported count(*) on view. [#1255]
[Reported by Takahiro Nagai]
- [incompatible] Groonga's native time value is used for
DATE, DATETIME and TIMESTAMP type values.
Fixes
- [debian] Fixed wrong mysql-server-groonga version in
replaces and breaks. [Reported by @ytaka5]
- [doc] Fixed wrong execution result. [Reported by Hidekazu Tanaka]
- [wrapper mode] Fixed a memory leak. [Reported by montywi]
Thanks
- @ytaka5
- Hidekazu Tanaka
- @issm
- montywi
- @Kiske
Release 1.10 - 2011/11/29
Since this release, this project and product is called
"mroonga" instead of "groonga storage engine".
This release introduces MariaDB support and fixes several bugs.
Improvements
- rename to "mroonga" from "groonga storage engine". #1170
- add groonga_libgroonga_version and groonga_version variables. #1158
- information_schema.plugins.plugin_version returns mroonga's version. #1157
- add groonga_log_file variable. #1178 [Suggested by nobody]
- FLUSH STATUS flushes groonga_* status variables. #1166 [Reported by Kazuhiko]
- support TRUNCATE TABLE #1151. [Suggested by Takahiro Nagai]
- support ALTER TABLE #1168.
- support MariaDB 5.2.9. #1152 [Reported by Kazuhiko]
- support MariaDB 5.3.2-beta. #1152 [Reported by Kazuhiko]
- [rpm] split document package.
- improve memory allocation for string system variables.
- use PLUGIN_LICENSE_GPL. [Suggested by Kazuhiko]
- remove needless MeCab related configurations.
- support FOUND_ROWS() and SQL_CALC_FOUND_ROWS. #1163 [Reported by Horikoshi Yuki]
- support table name that contains '-'. #1165 [Reported by nobody]
- support inplace index change on MySQL 5.1.
- [deb] support i386.
- [rpm] support i386.
Fixes
- [storage mode] fix a bug that REPLACE INTO with TEXT column does not work. #1153 [Reported by Kazuhiko]
- [wrapper mode] fix a bug that INSERT inside LOCK TABLE does not work with InnoDB. #1154 [Reported by Kazuhiko]
- fix a bug that using ORDER and LIMIT returns a wrong result. #1161 [Reported by Horikoshi Yuki]
- fix a crash bug when FORCE INDEX with unknown key is used. #1181 [Reported by Takahiro Nagai]
Thanks
- Kazuhiko
- Horikoshi Yuki
- nobody
- Takahiro Nagai