[groonga-dev,04274] [ANN] Groonga 7.0.0

Back to archive index

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 



groonga-dev メーリングリストの案内
Back to archive index