[groonga-dev,00290] INT8/INT16なキーのテーブルにloadできない

アーカイブの一覧に戻る

Kouhei Sutou kou****@clear*****
2009年 11月 13日 (金) 14:34:35 JST


須藤です。

grn_obj_cast()が
GRN_DB_INT8/GRN_DB_INT16/GRN_DB_UINT8/GRN_DB_UINT16に対応し
ていないので、それらがキーのハッシュテーブルにデータをloadす
ることができません。

GRN_DB_INT16の場合は以下のようにテストを実行できます。

  % NO_CUTTER=yes test/unit/run-test.sh -n test_int16_key


たぶん、こんな風になるとよいのだと思いますが、GRN_INT8_SET()
などがないので、もう少しコードが必要そうです。

diff --git a/lib/db.c b/lib/db.c
index 232c17a..4841928 100644
--- a/lib/db.c
+++ b/lib/db.c
@@ -3525,6 +3525,12 @@ grn_obj_cast(grn_ctx *ctx, grn_obj *src, grn_obj *dest, int addp)
   case GRN_DB_TEXT :
   case GRN_DB_LONG_TEXT :
     switch (dest->header.domain) {
+    case GRN_DB_INT8 :
+      TEXT2DEST(int8_t, grn_atoi, GRN_INT8_SET);
+      break;
+    case GRN_DB_INT16 :
+      TEXT2DEST(int16_t, grn_atoi, GRN_INT16_SET);
+      break;
     case GRN_DB_INT32 :
       TEXT2DEST(int32_t, grn_atoi, GRN_INT32_SET);
       break;

-- 
--------------------------------------------------------
各種ブラウザ向けツールバーやプラグインの開発を承ります。
また、ブラウザからICカードやカメラなどのハードウェアへ
アクセスする機能の開発も承ります。
--------------------------------------------------------
  株式会社クリアコード 須藤功平 <kou****@clear*****>
    Tel: 03(6231)7270 URL: http://www.clear-code.com/
--------------------------------------------------------




groonga-dev メーリングリストの案内
アーカイブの一覧に戻る