Kentaro Hayashi
hayas****@clear*****
2017年 2月 9日 (木) 16:59:36 JST
今日は肉の日ですね。 Groonga 7.0.0をリリースしました! http://groonga.org/ja/blog/2017/02/09/groonga-7.0.0.html 年に一度のメジャーバージョンアップです!メジャーバージョンアップですが 互換性は壊れていないので安心してアップグレードしてください! 今回のリリースでは、ウィンドウ関数の強化やloadに失敗したレコードの特定 をサポートする機能が含まれています。 # 変更内容 主な変更点は以下の通りです。 * [load] --output_errors yes オプションをサポート 細かな変更点についてはニュースをご確認下さい。 http://groonga.org/ja/docs/news.html#release-7-0-0 以下、主な変更点について紹介します。 #### [load] --output_errors yes オプションをサポート 今回のリリースでは、--output_errors yesを指定すると実際にどのようなエ ラーが発生したことでloadできなかったのかも合わせて知ることができるよう になりました。 --output_errorsは次のようにして使います。 table_create Numbers TABLE_HASH_KEY UInt32 load --table Numbers --command_version 3 --output_ids yes --output_errors yes [ ["_key"], [1], ["String"], [-1] ] { "header": { (省略) }, "body": { "n_loaded_records": 2, "loaded_ids": [ 1, 0, 2 ], "errors": [ { "return_code": 0, "message": null }, { "return_code": -22, "message": "<Numbers>: failed to cast to <UInt32>: <\"String\">" }, { "return_code": 0, "message": null } ] } } 上記はテーブルのキーがUInt32なのにキーが文字列であるデータをロードしよ うとした実行例です。body.errors[1]にエラーコードとエラーとなった理由 (数値が期待されているのに文字列からキャストしようとして失敗した)がレス ポンスに含まれていることがわかります。 使うにあたって、2つ注意点があります。 * 大量のレコードを一気にloadする場合に--output_errorsを指定すると errorsのレスポンスを返すために時間がかかるようになる * --output_errorsを使う場合に、必ずコマンドバージョン3を指定してこの機 能を有効にする必要がある。 ## イベントのおしらせ 今月は、Groonga Meatup 2017 [1]の他にも以下のイベントが予定されています。 * 2/12(日)Groonga Meatup名古屋2017 @ Misoca 申し込みページ: https://misoca.doorkeeper.jp/events/56673 興味があるイベントがあればぜひご参加ください! [1] https://groonga.doorkeeper.jp/events/55616 以下は今回のリリースの変更点です。 ## 改良 * [in_values] 参照型ベクターカラムのシーケンシャルサーチに対応しました。 [GitHub#629] [村上さんがパッチ提供] * [select] 誤った drilldown[LABEL].sort_keys が指定されたとき、無視す るのではなく、エラーを報告するようにしました。 * [select] DBのメタデータを不必要に更新しないようにしました。 select コマンドを使っているだけなのにDBにロックがかかったままになってしまう のを防ぎます。 * [lock_clear] lock_clear でDBのメタデータに対するロックも削除できるよ うにしました。 * [CentOS] GroongaをAmazon LinuxでもインストールできるようにEPELをデフォ ルトで有効にするようにしました。 * [query] default_mode オプションで "@X" スタイルのエイリアスが使える ようになりました。 * [query] 動作モードのリストに関するドキュメントを更新しました。動作モー ドの既定値は MATCH ("@") で全文検索を実行します。 * [rpm][centos] CentOS 7で groonga-token-filter-stem パッケージを提供 するようにしました。 ステミングに対応するための TokenFilterStem トー クンフィルターを提供します。 [GitHub#633] [Tim Bellefleurさんが報告] * [window_record_number] record_number が非推奨になりました。代わりに window_record_number を使ってください。 record_number は互換性のため だけに残っています。 * [window_sum] window_sum ウィンドウ関数を追加しました。PostgreSQLの sum()と同様のウィンドウ関数を提供します。 * TABLE_DAT_KEY テーブルをインメモリで使ったときに静的インデックス構築 をできるようにしました。 [GitHub#623] [村上さんが報告] * バンドルしている鬼雲を6.1.1へと更新しました。 * columns[LABEL].window.group_keys をサポートしました。ウィンドウ関数 をグループごとに提供することができます。 * [load] 誤ったキーが指定されていたときにエラーを報告するようにしまし た。キーの型が異なっている場合でも気付けるようになります。 * [load] --output_errors yes オプションをサポートしました。"yes"を指定 すると、どのレコードのloadに失敗したのかエラーを取得できるようになり ます。この機能を使う場合には、コマンドバージョン3を指定します。 * [load] キーのキャストに失敗したときのエラーメッセージをわかりやすく しました。以前は単に "cast failed" と表示していましたが、テーブルの キーの型とキャスト対象となるキーの型もメッセージに含まれるようになり ました。 * [httpd] バンドルしているnginxのバージョンを1.11.9に更新しました。 ## 修正 * 存在しないソートキーを drilldowns[LABEL] や slices[LABEL] に指定する とJSONパースエラーとなる不具合を修正しました。 [GitHub#627] [村上さ んがパッチ提供] * 存在しないグループのサブレコードにアクセスしようとするとクラッシュす る不具合を修正しました。例えば、 drilldowns[LABEL].sort_keys _sum を calc_types の指定なしに使っていた場合に問題が発生していました。 [GitHub#625] [村上さんがパッチ提供] * tokenizerでエラーが発生するとクラッシュするf不具合を修正しました。 tokenizer と token filterを登録していて、tokenizer にエラーがあると 発生していました。 * [window_record_number] ウィンドウ関数の引数が正しく渡されていない不 具合を修正しました。 [GitHub#634] [村上さんがパッチ提供] ## 感謝 * 村上さん * Tim Bellefleurさん * aomi-nさん -- Kentaro Hayashi <hayas****@clear*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: 無し 型: application/pgp-signature サイズ: 833 バイト 説明: 無しDownload