Kentaro Hayashi
hayas****@clear*****
2017年 10月 13日 (金) 13:26:47 JST
アナウンスが遅れてましたがGroonga 7.0.7をリリースし(ていま)した! http://groonga.org/ja/blog/2017/09/29/groonga-7.0.7.html 細かな変更点についてはニュースをご確認下さい。 http://groonga.org/ja/docs/news.html#release-7-0-7 それでは、7.0.7のリリースについて紹介します。 # 変更内容 主な変更点は以下の通りです。 * QUERY_NO_SYNTAX_ERROR が効かないケースがあったのを修正しました * command-version 3をデフォルトに設定できるようになりました * 関数を使っていてもselect結果をキャッシュするようになりました ## QUERY_NO_SYNTAX_ERROR が効かないケースがあったのを修正しました Groonga 7.0.6で入ったQUERY_NO_SYNTAX_ERRORを指定しているのにシンタック スエラーとなるケースがあったのを修正しました。以下のように、クエリーに 単独で + を指定した場合に起こっていました。 select Names \ --match_columns "_key" \ --query "+" \ --query_flags ALLOW_PRAGMA|ALLOW_COLUMN|QUERY_NO_SYNTAX_ERROR 今回のリリースでは、上記のクエリーもエラーにならずに実行できるようになりました。 ## command-version 3をデフォルトに設定できるようになりました groongaコマンドの--default-command-versionに 3 を指定できるようになり ました。以前のバージョンでも --command_version 3 は成功していましたが、 --default-command-version 3 はエラーになっていました。 今回のリリースでは、--default-command-version 3を指定して起動できるよ うになっています。 ## 関数を使っていてもselect結果をキャッシュするようになりました selectコマンドで関数を使っていた場合、以前のバージョンではselect結果を キャッシュしていませんでしたが、今回のバージョンから条件付きでキャッシュ するようになりました。 条件は、実行ごとに毎回結果が変わらないことです。変わってしまうのであれ ばキャッシュしません。 したがって、 now() や rand() は結果が変わるので 従来どおり、キャッシュしません。 そのほかの関数は同じクエリであれば結果が変わらないのでキャッシュされる ようになりました。 ## 改良 * QUERY_NO_SYNTAX_ERROR を + のみのクエリーに指定したときにも動作する ようにしました。以前のバージョンではそのようなクエリーはエラーになっ ていました。 * [httpd] バンドルしているnginxのバージョンを1.13.5に更新しました。 * [dump] 引数のデフォルト値を構文のセクションに追加しました。 * [コマンドバージョン] --default-command-version 3 に対応しました。 * 関数呼び出し時に検索結果をキャッシュできるようにしました。ほとんどの 関数の呼び出し結果はキャッシュされます。例外は now() と rand() を使っ た場合です。標準でキャッシュするように振る舞いを変更したので、新たに APIを追加しました。 * grn_proc_set_is_stable() を追加。 * grn_proc_is_stable() を追加。 呼び出しごとに結果が異なる関数を新規に追加する場合、 grn_proc_is_stable(ctx, proc, GRN_FALSE) を呼ばなければなりません。 もし呼ばなかった場合には、検索結果がキャッシュされるので、期待と異な り誤った結果を返します。 ## 修正 * [windows] database_unmap が実行される前のファイルハンドルのエラー処 理を適切に行うようにしました。database_unmap 実行前にリクエストがキャ ンセルされた場合、排他制御部分が未初期化となる場合がありました。その 場合、クラッシュしていました。 * [トークナイザー] トークナイザー名のドキュメントを修正しました。 TokenBigramIgnoreBlankSplitSymbolAlpha や TokenBigramIgnoreBlankSplitSymbolAlphaDigit であるべきでした。 * エラー時に空のファイルが残らないようにしました。 以前のバージョンでは、空のファイルがエラー時に残っていました。 再現するためのシナリオは以下です。: * grn_fileinfo_open によりファイルの作成に成功する * DO_MAP によりファイルマッピングに失敗する そのような場合、Groongaの管理下にないファイルのせいで「すでにファイ ルが存在します。」という別のエラーが発生します。そういったファイルは 後始末の段階で削除すべきでした。 * 短時間に多数の更新を行っている状況で検索した場合にクラッシュすること がある不具合を修正しました。 * [table_create] 大量に削除されたキーがDATテーブルに存在する場合、 table_create の実行に失敗する不具合を修正しました。 -- Kentaro Hayashi <hayas****@clear*****> -------------- next part -------------- $B%F%-%9%H7A<00J30$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... $B%U%!%$%kL>(B: $BL5$7(B $B7?(B: application/pgp-signature $B%5%$%:(B: 833 $B%P%$%H(B $B @ bL@(B: $BL5$7(B URL: https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20171013/7eea93cc/attachment.pgp