お知らせ - 2系 — Mroonga vmrn_version documentation

本文へスキップ
`Ctrl`+`K`

# お知らせ - 2系

## 2.10リリース - 2012/12/29

### Improvements

- システムと異なる文字コードのテーブルでもENABLE KEYS/DISABLE KEYSを使えるようにした。 [@kokoronaviさんが報告]

- キーが重複している場合、エラーメッセージにそのキーの値を表示するように改善した。

- MySQL 5.6.9-rcに対応。 [#1547] [#1548] [wingさんが報告]

- [ストレージモード] `GROUP BY` をインデックスを使っての検索できるようにした。この変更で `GROUP BY` を使った検索速度を改善できます。

- Ubuntu 11.04 (Natty Narwhal)のサポートを終了した。

### Fixes

- [rpm][centos] CentOS6でMySQL 5.1.66-2を使うように修正した。[宮脇さんが報告]

- `MATCH AGAINST` を `INNER JOIN` と一緒に使うとエラーになる不具合を修正した。 [大城さんが報告]

### Thanks

- @kokoronaviさん

- 宮脇さん

- wingさん

- 大城さん

## 2.09リリース - 2012/11/29

注意

今回のリリースには後方互換性のない変更が `TIMESTAMP` 型の値と 主キーにchar(N)を使った場合にあります。

このリリースには `TIMESTAMP` 型の値に関して後方互換性のない変更があります。 `TIMESTAMP` 型ではUTCタイムゾーンを保持するように変更しました。もし `TIMESTAMP` 型のカラムを(UTCタイムゾーンでなく)使っているテーブルがあれば、データベースを再作成 (データベースのダンプおよびリストアを行ってください。

char(N)を主キーとして使用しているテーブルがあるなら、インデックスを再作成してください。

データベースやインデックスを再作成する手順はこちら

mroongaを使っているデータベースをダンプします:

    % mysqldump MY_MROONGA_DATABASE > database-mroonga.dump

修正したダンプファイルを使ってデータベースを復旧します:

    % mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump

インデックスを作り直します:

    mysql> ALTER TABLE table_name DROP PRIMARY KEY;
    mysql> ALTER TABLE table_name ADD PRIMARY KEY(column_name);

### Improvements

- [rpm][centos] CentOS 5にてMySQL 5.5.28に対応。

- [rpm][centos] CentOS 6にてMySQL 5.1.61に対応。

- [ラッパーモード] last_insert_id()関数をサポートした。[#1540] [@soundkitchenさんが報告]

### Fixes

- [mysql51] utf8mb4の存在チェックでクラッシュする不具合を修正。MySQL 5.1にはutf8mb4がないのが原因でした。 [groonga-dev,01069] [Reported by wakisuke]

- [ストレージモード] 検索でマッチしているのに該当データを削除できない問題を修正した。 [#1533] [@HANZUBONさんが報告]

- 主キーのインデックスがchar(N)のとき検索できないことがあるのを修正。この不具合はchar(N)に設定した値がNよりも短いか末尾に空白がある場合に発現します。この修正によりインデックスの再構築が必要になります。

- char(N)に設定した文字列でNULL文字を含んでいた場合、それ以降が無視されてしまう不具合を修正。

- `TIMESTAMP` 型の値をUTCで保持するようにしました。これは後方互換性のない変更です。

### Thanks

- @soundkitchenさん

- wakisukeさん

- @HANZUBONさん

## 2.08リリース - 2012/10/29

注意

このリリースにはマルチカラムインデックスに関する後方互換性のない変更が1つあります。もし、 マルチカラムインデックスをVARCHARやCHAR型に対して使っている場合は `ALTER TABLE DISABLE KEYS` と `ALTER TABLE ENBALE KEYS` を使ってインデックスを作り直してください:

    mysql> ALTER TABLE table_name DISABLE KEYS;
    mysql> ALTER TABLE table_name ENABLE KEYS;

### Improvements

- [ストレージモード] `INFORMATION_SCHEMA.TABLES.DATA_LENGTH` をサポート。 [@9mさんが提案]

- utf8mb4をサポート。 [groonga-dev,01049] [warp kawadaさんが報告]

- Ubuntu 12.10 Quantal Quetzalに対応。

- [rpm][fedora] MySQL 5.5.28に対応。

### Fixes

- [ストレージモード] マルチカラムユニークインデックスをDATE型のカラムで使ったときのユニーク判定不具合を修正。[groonga-dev,01041] [#1495] [jd foncさんが報告]

- `WHERE index < XXX ORDER BY DESC` で降順ソートが正しく行えない不具合を修正。 [@taro252さんが報告]

- [rpm] `DROP FUNCTION mroonga_snippet` が抜けている問題を修正。[@tokuhyさんが報告]

- マルチカラムインデックスに指定したINT型のカラムで範囲検索が正しく行えない問題を修正。

- [doc] ビルド手順でコマンドライン操作の記述誤りを修正。 [groonga-dev,01061] [磯部和広さんが報告]

### Thanks

- @9mさん

- warp kawadaさん

- jd foncさん

- @taro252さん

- @tokuhyさん

- 磯部和広さん

## 2.07リリース - 2012/09/29

### Improvements

- [deb] MeCab向けにAppArmorの設定を有効にした。 [@Qurageさんが報告]

- [ストレージモード][実験的] mroonga_snippet()関数を追加。 [#1442]

### Fixes

- [rpm] `groonga_required_version` を修正。 [groonga-dev,01033] [wingさんが報告]

- datetime型として保持できる値の範囲が狭く、意図しない値が設定される問題を修正。 [groonga-dev,01035] [#1476] [中谷宗嵩さんが報告]

### Thanks

- @Qurageさん

- wingさん

- 中谷宗嵩さん

## 2.06リリース - 2012/08/29

注意

今回のリリースではデータベースの互換性があります。ただし、新たにgroonga 2.0.6で導入された機能を使っているので、groonga 2.0.6と一緒に使わないといけません。

### Improvements

- BOOLEAN MODEにて "-WORD" という構文をサポートしました。

### Fixes

- 全文検索条件の "order by" によって検索結果のレコードが少なくなる不具合を修正した。[groonga-dev,00977] [#1422] [中谷宗嵩さんが報告]

- 不要なビルドフラグを削除した。 [#1453] [@nabebebさんが報告]

- [rpm][centos] BuildRequiresに抜けていたmysql-develの記述を修正した。 [groonga-dev,01009] [wingさんが報告]

### Thanks

- @nabebebさん

- wingさん

- 中谷宗嵩さん

## 2.05リリース - 2012/07/29

注意

このリリースにはSETカラムとENUMに関して後方互換性のない変更があります。もし ストレージモード にてSETカラムもしくは要素数が256より少ないENUMを使用しているなら、データベースを再作成してください。

以下が更新手順です。

mroongaを使っているデータベースをダンプします:

    % mysqldump MY_MROONGA_DATABASE > database-mroonga.dump

既存のデータベースを削除します:

    % mysql -u root -e 'DROP DATABASE MY_MROONGA_DATABASE'

"mroonga"ストレージエンジンにアップグレードします。Debian GNU/LinuxやUbuntuでは `apt-get` を使います。CentOSやFedoraでは `yum` を使います。

apt-get:

    % sudo apt-get install -y mysql-server-mroonga

yum (v2.02以前からのアップグレード):

    % sudo yum remove -y mysql-mroonga
    % sudo yum install -y mysql-mroonga

yum (v2.03以降からのアップグレード):

    % sudo yum install -y mysql-mroonga

注意

v2.02以前のリリースからアップグレードする場合、 `yum install` の前に `yum remove` を実行することを忘れてはいけません。もし、 `yum remove` を実行することを忘れると、MySQLのシステムテーブルを壊してしまうかもしれません。

データベースを作り直します:

    % mysql -u root -e 'CREATE DATABASE MY_MROONGA_DATABASE'

修正したダンプファイルを使ってデータベースを復旧します:

    % mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump

これで2.05を使うことができるようになりました。

### Improvements

- [ストレージモード] SET カラムでインデックスをサポート。

- [rpm] MySQL 5.5.25aに対応。

- Fedora 17に対応。

- Fedora 16対応をやめた。

- [ストレージモード] TINYINT UNSIGNED/SMALLINT UNSIGNED/MEDIUMINT UNSIGNED/INT UNSIGNED/BIGINT UNSIGNED型をサポート。

- [ストレージモード] ENUMを使うのに必要なストレージサイズを減らした。

## 2.04リリース - 2012/06/29

### Improvements

- [ラッパーモード] バルクインサートにてインデックスの有効/無効化をサポート。 [#1311]

### Fixes

- トランザクション内でクエリキャッシュを無効化するように修正。 [#1384]

- パーティションを明示的に無効化した。 [#1391]

- [rpm][deb] インストール前に `mysql.plugin` テーブルからmroongaプラグインを確実に削除するようにした。 [groonga-dev,00948] [磯部和広さんが提案]

- 存在しないパスを `mroonga_log_file` 変数へと設定するとクラッシュする不具合を修正した。 [#1404] [@nabebebさんが報告]

- [実験的] mroonga関連のデータを配置するパスの変更をサポート。 [groonga-dev,00914] [#1392] [磯部和広さんが提案]

### Thanks

- 磯部和広さん

- @nabebebさん

## 2.03リリース - 2012/05/29

注意

このリリースにはマルチカラムインデックスに関する後方互換性のない変更が1つあります。もし、 ストレージモード でマルチカラムインデックスをつかっている場合は `ALTER TABLE DISABLE KEYS` と `ALTER TABLE ENBALE KEYS` を使ってインデックスを作り直してください:

    mysql> ALTER TABLE table_name DISABLE KEYS;
    mysql> ALTER TABLE table_name ENABLE KEYS;

### Improvements

- [ストレージモード] バルクインサートにてインデックスの有効/無効化をサポート。 [#1310]

- [rpm][centos] MySQL 5.5.24に対応。

- [rpm][fedora] MySQL 5.5.23に対応。

- mroonga_match_escalation_threshold システム変数を追加。

- groonga 2.0.3以降を必須にした。

- [yum] groongaのyumリポジトリを提供するRPMパッケージ名をgroonga-repositoryからgroonga-releaseへと変更し、RPMパッケージ命名規則をcentos-releaseやfedora-releaseに合わせた。

- [Mac OS X] Homebrewでインストールできるようになった。詳細はこちら: インストール

### Fixes

- Mac OS Xでビルドに失敗する問題を修正。

- [ラッパーモード] トランザクション内の検索で見つからないというエラーが報告される不具合を修正[#1322][groonga-dev,00746] [石橋卓見さんが報告]

- [rpm] mroongaプラグインがアップグレードのときに登録解除される不具合を修正。[groonga-dev,00810] [石橋卓見さんが報告][岩井さんがパッチ提供]

- MySQL 5.5以前では行ベースのレプリケーションで間違ったデータが転送されてしまう不具合を修正。 [#1379][groonga-dev,00902] [土井健司さんが報告]

### Thanks

- 石橋卓見さん

- 岩井さん

- 土井健司さん

## 2.02リリース - 2012/04/29

注意

今回のリリースよりパッケージへ署名する鍵を変更しました。groongaパッケージを更新する前にパッケージ署名用の新しい鍵をインポートして下さい。

Debian/Ubuntu:

    % sudo apt-get update
    % sudo apt-get -y --allow-unauthenticated install groonga-keyring

CentOS/Fedora:

    % sudo yum update
    % sudo yum install --nogpgcheck -y groonga-repository

注意

このリリースは `ENUM` 型に関して後方互換性がありません。もし、256個以上の値を持つ `ENUM` 型を使っている場合はアップグレード前にデータベースをダンプし、アップグレード後にリストアする必要があります。

注意

このリリースは `SET` 型に関して後方互換性がありません。もし、32個以上の値を持つ `SET` 型を使っている場合はアップグレード前にデータベースをダンプし、アップグレード後にリストアする必要があります。

### Improvements

- GCC 4.7とMySQL 5.5.22の組み合わせでビルドするための一時的な対応を追加した。この組み合わせではgccの `-Wdeprecated` オプションを指定するとビルドに失敗します。 [#1337] [かずひこさんが報告]

- [mariadb] MariaDB 5.5.23をサポート。 [#1339] [かずひこさんが報告] [Ryo Onoderaさんが報告]

- [ストレージモード] `REPLACE` 時に、プライマリーキーを使わなかったという必要のない警告がでないようにした。

- [ストレージモード] インデックスを使った `ENUM` の検索をサポート。 [@104yuki_nさんが提案]

- [非互換] `ENUM` 用のgroongaの型を符合付き2バイト整数型から符号なし2バイト整数型に変更した。 `ENUM` 型のカラムを作りなおす必要があります。

- [非互換] `SET` 用のgroongaの型を符合付き8バイト整数型から符号なし8バイト整数型に変更した。 `SET` 型のカラムを作りなおす必要があります。

- MySQL 5.5.23に対応。

- groonga 2.0.2以降を必須にした。

- [非互換][実験的] `MATCH AGAINST IN NATURAL LANGUAGE MODE` での検索方法をフレーズ検索から類似検索に変更した。

- [apt][yum] パッケージに署名する鍵を変更。

- Ubuntu 12.04 Precise Pangolinに対応。

### Fixes

- [ストレージモード] キーの長さが間違っていた問題を修正。

- 大きな転置索引を更新中に検索するとクラッシュする問題を修正。 [#1321] [groonga-dev,00743] [河野隆志さんが報告] [groonga-dev,00746] [石橋卓見さんが報告]

- `TRUNCATE` したテーブルのトークナイザーとエンコーディングが壊れる問題を修正。 [#1335] [@boss_satoさんが報告]

- Spiderとmroongaを組み合わせたときに最初の `INSERT` が失敗する問題を修正。 [#1319] [groonga-dev,00736] [Takayuki Hondaさんが報告]

### Thanks

- 河野隆志さん

- @boss_satoさん

- Kazuhiko Shiozaki

- Ryo Onoderaさん

- @104yuki_nさん

- Takayuki Hondaさん

- 石橋卓見さん

## 2.01リリース - 2012/03/29

### Improvements

- MySQL 5.5.22に対応。

- MySQL 5.1.62に対応。

- groonga 2.0.1以降を必須にした。

- [rpm] アップグレード時のプラグインアンインストール処理を改良した。

- [rpm] アップグレード時のプラグインアンインストール処理を改良した。

- [ラッパーモード] MyISAMと一緒に使ったときに `INSERT ON DUPLICATE KEY ERROR` を使えるようにした。 [#1300] [@104yuki_nさんが報告]

- [ラッパーモード] ラップしているテーブルの `table_flags()` を使うようにした。 [#1304]

- MySQLがValgrindサポート付きでビルドされているとき用に `--with-valgrind` configureオプションを追加した。

- [mariadb] 小数形式秒指定を使った `DATETIME` 型をサポートした。

- 位置情報サポートなしでのビルドをサポートした。 [#1313] [かずひこさんが報告]

- [ストレージモード] i386環境で最適化オプションを指定したときでもマルチカラムインデックスが動くようにした。 [かずひこさんが報告]

- [ラッパーモード] ラッパーモードでInnoDBを使って、InnoDBのテストが通ることを確認した。

- [solaris] Solaris 11上でのビルドできるようにした。 [かずひこさんが報告]

- [mariadb55] MariaDB 5.5で `mroonga_default_parser` が動くようにした。 [#1314] [かずひこさんが報告]

- [mariadb55] MariaDB 5.5で `ORDER LIMIT` 最適化が動くようにした。 [#1315] [かずひこさんが報告]

- [doc] MeCabについて追記した。

- [ストレージモード] 値が0のレコードをインデックスを使って検索できるようにした。 [@104yuki_nさんが報告]

- [ストレージモード] 最適化ビルドフラグを指定してもUbuntu Hardy上で正しく動くようにした。 [かずひこさんが報告]

- ロゴ を追加した。

- HTMLのデザインを更新した。

### Fixes

- [ストレージモード] メモリリークを修正。

- [ストレージモード] マルチカラムインデックスを使って検索したときに見つかったのに結果が返されない問題を修正した。 [#1300] [@ytaka5さんが報告]

- [ストレージモード] `COUNT (*)` の効果がなかった問題を修正した。 [groonga-dev,00717] [Takayuki Hondaさんが報告]

- `DROP DATABASE` 時に発生していたメモリリークを修正した。

- [ストレージモード] 32bit環境で `last_insert_grn_id()` が壊れた値を返すことがある問題を修正した。 [かずひこさんが報告]

- [ストレージモード] `COUNT (*)` が0を返すことがある問題を修正した。 [groonga-dev,00736] [Takayuki Hondaさんが報告]

### Thanks

- @ytaka5

- @104yuki_nさん

- Takayuki Hondaさん

- Kazuhiko

## 2.00リリース - 2012/02/29

注意

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:

1. データベース名、テーブル名、カラム名に任意の文字を使えるようにした。

2. MySQLの `YEAR` 型にgroongaが提供する時間型を使うようにした。

以下が更新手順です。

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

注意

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

これで2.00を使うことができるようになりました。

### Improvements

- MySQL 5.5.21に対応。

- groonga 2.0.0以降を必須にした。

- MySQL 5.6とMariaDBで使える小数付きのTIMESTAMPに対応した。

- [ストレージモード] 主キーがない場合でも `ORDER LIMIT` を最適化できるようにした。

- [ストレージモード] 全文検索と `COLUMN = INT_VALUE` を一緒に使った場合でも `ORDER LIMIT` を最適化できるようにした。

- [ストレージモード] サブクエリ内での全文検索に対応した。 [@camyuyさんが報告]

- [非互換] groongaからデータを読めるように、MySQLの `YEAR` をgroongaの `Time` に対応させるようにした。

- [ストレージモード] 更新時の必要ない書き込みロックを削除した。 [#1271] [Takahiro Nagaiさんが報告]

- 最適化のオン・オフを切り替える `mroonga_enable_optimization` システム変数を追加した。ベンチマーク時に便利。

- [ラッパーモード] 一時テーブルに対応した。 [#1267]

- [非互換] データベース名に `/` を使えるようにした。 [#1281]

- `INSERT ... ON DUPLICATE KEY UPDATE` のときに不必要なメッセージが表示されないようにした。

- `UNIQUE KEY` を使った `INSERT ... ON DUPLICATE KEY UPDATE` に対応した。 [#1283] [@104yuki_nさんが報告]

- 主キーに `DATETIME`, `DATE`, `TIMESTAMP`, `TIME`, `DECIMAL`, `YEAR` を使えるようになった。

- [非互換] データベース名、テーブル名、カラム名にすべての文字を使えるようになった。 [#1284]

- [ラッパーモード] 255バイト以上のインデックスに対応した。 [#1282]

- [ラッパーモード] 主キーの更新に対応した。 [#1195]

- [ラッパーモード] `ALTER TABLE` でエラーが発生したときの処理を追加した。 [#1195]

- [ラッパーモード] `LineString` のような未サポートの位置情報型を使った場合のエラーメッセージを改良した。 [#1195]

- [ラッパーモード] `INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS` に対応した。 [#1195]

### Fixes

- [rpm] プラグインを再インストールするようにした。

- [doc] ストレージエンジン名が間違っていた問題を修正。 [Tomoatsu Shimadaさんが報告]

### Thanks

- @camyuyさん

- Takahiro Nagai

- Tomoatsu Shimadaさん

- @104yuki_nさん