rroonga 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.yardopts +6 -0
 - data/doc/text/news.textile +26 -0
 - data/ext/groonga/rb-grn-column.c +42 -2
 - data/ext/groonga/rb-grn-index-column.c +57 -159
 - data/ext/groonga/rb-grn-object.c +7 -0
 - data/ext/groonga/rb-grn-table.c +19 -3
 - data/ext/groonga/rb-grn-utils.c +4 -1
 - data/ext/groonga/rb-grn-variable-size-column.c +405 -5
 - data/ext/groonga/rb-grn.h +18 -1
 - data/lib/groonga/dumper.rb +46 -22
 - data/lib/groonga/expression-builder.rb +2 -4
 - data/lib/groonga/schema.rb +16 -234
 - data/rroonga-build.rb +3 -3
 - data/rroonga.gemspec +1 -1
 - data/test/test-array.rb +6 -5
 - data/test/test-column.rb +0 -14
 - data/test/test-database.rb +6 -5
 - data/test/test-double-array-trie.rb +6 -5
 - data/test/test-expression.rb +2 -2
 - data/test/test-hash.rb +6 -5
 - data/test/test-index-column.rb +163 -33
 - data/test/test-patricia-trie.rb +6 -5
 - data/test/test-schema-dumper.rb +39 -7
 - data/test/test-table-dumper.rb +46 -1
 - data/test/test-table-select-weight.rb +12 -0
 - data/test/test-variable-size-column.rb +87 -3
 - metadata +140 -139
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 53910c50882ceba0c8c1fd10471076e0c9adb48e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 97c9676d4436ce853b7d684e3c8a70fabb9bf023
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 05cd87977c479c0c95d4fcab3bb0d6e41b2f9f798dda965f671066d55e3b495bcbf5e41677bccdb539f1041739528ed5f520bb8c738ac6f088973cc56ab900da
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2b359a701d8d188b155e7dbc2a334930221df42d243811468b60f67e3acd89da3c2e7c1bb51d14233c6bab3d60dec58894405863bb53f949954065794717741b
         
     | 
    
        data/.yardopts
    ADDED
    
    
    
        data/doc/text/news.textile
    CHANGED
    
    | 
         @@ -1,5 +1,31 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            h1. NEWS
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            h2(#4-0-1). 4.0.1: 2014-04-04
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            h3. Improvements
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * Supported Groonga 4.0.1. Groonga 4.0.0 or older are not supported.
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Supported no weight match column case.
         
     | 
| 
      
 9 
     | 
    
         
            +
              <pre>
         
     | 
| 
      
 10 
     | 
    
         
            +
              table.select do |record|
         
     | 
| 
      
 11 
     | 
    
         
            +
                match_target = record.match_target do |target|
         
     | 
| 
      
 12 
     | 
    
         
            +
                  target.column
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
                match_target =~ keyword
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
              </pre>
         
     | 
| 
      
 17 
     | 
    
         
            +
            * Supported weight vector.
         
     | 
| 
      
 18 
     | 
    
         
            +
            * grndump: Changed to use @--normalizer@ instead of @KEY_NORMALIZE@.
         
     | 
| 
      
 19 
     | 
    
         
            +
              Old Groonga can't restore dumped database.
         
     | 
| 
      
 20 
     | 
    
         
            +
            * {Groonga::IndexClumn#search}: Added @mode@ option.
         
     | 
| 
      
 21 
     | 
    
         
            +
            * {Groonga::IndexClumn#search}: Added @weight@ option.
         
     | 
| 
      
 22 
     | 
    
         
            +
            * Accepted String as option key.
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            h3. Fixes
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            * Fixed a bug that index dump drops index options in Ruby syntax.
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       3 
29 
     | 
    
         
             
            h2(#4-0-0). 4.0.0: 2014-02-09
         
     | 
| 
       4 
30 
     | 
    
         | 
| 
       5 
31 
     | 
    
         
             
            h3. Improvements
         
     | 
    
        data/ext/groonga/rb-grn-column.c
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /* vim: set sts=4 sw=4 ts=8 noet: */
         
     | 
| 
       3 
3 
     | 
    
         
             
            /*
         
     | 
| 
       4 
     | 
    
         
            -
              Copyright (C) 2009- 
     | 
| 
      
 4 
     | 
    
         
            +
              Copyright (C) 2009-2014  Kouhei Sutou <kou@clear-code.com>
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              This library is free software; you can redistribute it and/or
         
     | 
| 
       7 
7 
     | 
    
         
             
              modify it under the terms of the GNU Lesser General Public
         
     | 
| 
         @@ -71,10 +71,29 @@ rb_grn_column_bind (RbGrnColumn *rb_column, 
     | 
|
| 
       71 
71 
     | 
    
         
             
                                grn_ctx *context, grn_obj *column)
         
     | 
| 
       72 
72 
     | 
    
         
             
            {
         
     | 
| 
       73 
73 
     | 
    
         
             
                RbGrnObject *rb_grn_object;
         
     | 
| 
      
 74 
     | 
    
         
            +
                int column_type;
         
     | 
| 
      
 75 
     | 
    
         
            +
                unsigned char value_type;
         
     | 
| 
       74 
76 
     | 
    
         | 
| 
       75 
77 
     | 
    
         
             
                rb_grn_object = RB_GRN_OBJECT(rb_column);
         
     | 
| 
       76 
78 
     | 
    
         
             
                rb_grn_named_object_bind(RB_GRN_NAMED_OBJECT(rb_column), context, column);
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                column_type = (column->header.flags & GRN_OBJ_COLUMN_TYPE_MASK);
         
     | 
| 
      
 81 
     | 
    
         
            +
                if (column_type == GRN_OBJ_COLUMN_VECTOR) {
         
     | 
| 
      
 82 
     | 
    
         
            +
                    switch (rb_grn_object->range->header.type) {
         
     | 
| 
      
 83 
     | 
    
         
            +
                    case GRN_TABLE_HASH_KEY:
         
     | 
| 
      
 84 
     | 
    
         
            +
                    case GRN_TABLE_PAT_KEY:
         
     | 
| 
      
 85 
     | 
    
         
            +
                    case GRN_TABLE_DAT_KEY:
         
     | 
| 
      
 86 
     | 
    
         
            +
                    case GRN_TABLE_NO_KEY:
         
     | 
| 
      
 87 
     | 
    
         
            +
                        value_type = GRN_UVECTOR;
         
     | 
| 
      
 88 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 89 
     | 
    
         
            +
                    default:
         
     | 
| 
      
 90 
     | 
    
         
            +
                        value_type = GRN_VECTOR;
         
     | 
| 
      
 91 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 92 
     | 
    
         
            +
                    }
         
     | 
| 
      
 93 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 94 
     | 
    
         
            +
                    value_type = GRN_BULK;
         
     | 
| 
      
 95 
     | 
    
         
            +
                }
         
     | 
| 
      
 96 
     | 
    
         
            +
                rb_column->value = grn_obj_open(context, value_type, 0,
         
     | 
| 
       78 
97 
     | 
    
         
             
                                                rb_grn_object->range_id);
         
     | 
| 
       79 
98 
     | 
    
         
             
            }
         
     | 
| 
       80 
99 
     | 
    
         | 
| 
         @@ -674,6 +693,24 @@ rb_grn_column_scalar_p (VALUE self) 
     | 
|
| 
       674 
693 
     | 
    
         
             
                }
         
     | 
| 
       675 
694 
     | 
    
         
             
            }
         
     | 
| 
       676 
695 
     | 
    
         | 
| 
      
 696 
     | 
    
         
            +
            /*
         
     | 
| 
      
 697 
     | 
    
         
            +
             * @overload with_weight?
         
     | 
| 
      
 698 
     | 
    
         
            +
             * @return [Boolean] @true@ if the column is vector and created with
         
     | 
| 
      
 699 
     | 
    
         
            +
             *   @:with_weight => true@ flag, @false@ otherwise.
         
     | 
| 
      
 700 
     | 
    
         
            +
             * @since 4.0.1
         
     | 
| 
      
 701 
     | 
    
         
            +
             */
         
     | 
| 
      
 702 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 703 
     | 
    
         
            +
            rb_grn_column_with_weight_p(VALUE self)
         
     | 
| 
      
 704 
     | 
    
         
            +
            {
         
     | 
| 
      
 705 
     | 
    
         
            +
                grn_obj *column;
         
     | 
| 
      
 706 
     | 
    
         
            +
             
     | 
| 
      
 707 
     | 
    
         
            +
                rb_grn_column_deconstruct(SELF(self), &column, NULL,
         
     | 
| 
      
 708 
     | 
    
         
            +
                                          NULL, NULL,
         
     | 
| 
      
 709 
     | 
    
         
            +
                                          NULL, NULL, NULL);
         
     | 
| 
      
 710 
     | 
    
         
            +
             
     | 
| 
      
 711 
     | 
    
         
            +
                return CBOOL2RVAL(column->header.flags & GRN_OBJ_WITH_WEIGHT);
         
     | 
| 
      
 712 
     | 
    
         
            +
            }
         
     | 
| 
      
 713 
     | 
    
         
            +
             
     | 
| 
       677 
714 
     | 
    
         
             
            /*
         
     | 
| 
       678 
715 
     | 
    
         
             
             * _operator_ を実行できる _column_ のインデックスを返す。
         
     | 
| 
       679 
716 
     | 
    
         
             
             * @since 1.0.9
         
     | 
| 
         @@ -772,6 +809,9 @@ rb_grn_init_column (VALUE mGrn) 
     | 
|
| 
       772 
809 
     | 
    
         
             
                rb_define_method(rb_cGrnColumn, "vector?", rb_grn_column_vector_p, 0);
         
     | 
| 
       773 
810 
     | 
    
         
             
                rb_define_method(rb_cGrnColumn, "scalar?", rb_grn_column_scalar_p, 0);
         
     | 
| 
       774 
811 
     | 
    
         | 
| 
      
 812 
     | 
    
         
            +
                rb_define_method(rb_cGrnColumn, "with_weight?",
         
     | 
| 
      
 813 
     | 
    
         
            +
                                 rb_grn_column_with_weight_p, 0);
         
     | 
| 
      
 814 
     | 
    
         
            +
             
     | 
| 
       775 
815 
     | 
    
         
             
                rb_define_method(rb_cGrnColumn, "indexes", rb_grn_column_get_indexes, -1);
         
     | 
| 
       776 
816 
     | 
    
         | 
| 
       777 
817 
     | 
    
         
             
                rb_define_method(rb_cGrnColumn, "rename", rb_grn_column_rename, 1);
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
     | 
    
         
            -
              Copyright (C) 2009- 
     | 
| 
      
 3 
     | 
    
         
            +
              Copyright (C) 2009-2014  Kouhei Sutou <kou@clear-code.com>
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              This library is free software; you can redistribute it and/or
         
     | 
| 
       6 
6 
     | 
    
         
             
              modify it under the terms of the GNU Lesser General Public
         
     | 
| 
         @@ -44,6 +44,7 @@ rb_grn_index_column_finalizer (grn_ctx *context, grn_obj *object, 
     | 
|
| 
       44 
44 
     | 
    
         
             
                grn_obj_unlink(context, rb_grn_index_column->id_query);
         
     | 
| 
       45 
45 
     | 
    
         
             
                grn_obj_unlink(context, rb_grn_index_column->string_query);
         
     | 
| 
       46 
46 
     | 
    
         
             
                grn_obj_unlink(context, rb_grn_index_column->old_value);
         
     | 
| 
      
 47 
     | 
    
         
            +
                grn_obj_unlink(context, rb_grn_index_column->set_value);
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
       48 
49 
     | 
    
         
             
                rb_grn_column_finalizer(context, object, RB_GRN_COLUMN(rb_grn_index_column));
         
     | 
| 
       49 
50 
     | 
    
         
             
            }
         
     | 
| 
         @@ -59,6 +60,9 @@ rb_grn_index_column_bind (RbGrnIndexColumn *rb_grn_index_column, 
     | 
|
| 
       59 
60 
     | 
    
         | 
| 
       60 
61 
     | 
    
         
             
                rb_grn_index_column->old_value = grn_obj_open(context, GRN_BULK, 0,
         
     | 
| 
       61 
62 
     | 
    
         
             
                                                              rb_grn_object->range_id);
         
     | 
| 
      
 63 
     | 
    
         
            +
                rb_grn_index_column->set_value =
         
     | 
| 
      
 64 
     | 
    
         
            +
                    grn_obj_open(context, GRN_VECTOR, 0,
         
     | 
| 
      
 65 
     | 
    
         
            +
                                 rb_grn_object->range->header.domain);
         
     | 
| 
       62 
66 
     | 
    
         | 
| 
       63 
67 
     | 
    
         
             
                rb_grn_index_column->id_query = grn_obj_open(context, GRN_BULK, 0,
         
     | 
| 
       64 
68 
     | 
    
         
             
                                                             rb_grn_object->domain_id);
         
     | 
| 
         @@ -75,6 +79,7 @@ rb_grn_index_column_deconstruct (RbGrnIndexColumn *rb_grn_index_column, 
     | 
|
| 
       75 
79 
     | 
    
         
             
                                             grn_obj **domain,
         
     | 
| 
       76 
80 
     | 
    
         
             
                                             grn_obj **value,
         
     | 
| 
       77 
81 
     | 
    
         
             
                                             grn_obj **old_value,
         
     | 
| 
      
 82 
     | 
    
         
            +
                                             grn_obj **set_value,
         
     | 
| 
       78 
83 
     | 
    
         
             
                                             grn_id *range_id,
         
     | 
| 
       79 
84 
     | 
    
         
             
                                             grn_obj **range,
         
     | 
| 
       80 
85 
     | 
    
         
             
                                             grn_obj **id_query,
         
     | 
| 
         @@ -89,138 +94,14 @@ rb_grn_index_column_deconstruct (RbGrnIndexColumn *rb_grn_index_column, 
     | 
|
| 
       89 
94 
     | 
    
         | 
| 
       90 
95 
     | 
    
         
             
                if (old_value)
         
     | 
| 
       91 
96 
     | 
    
         
             
                    *old_value = rb_grn_index_column->old_value;
         
     | 
| 
      
 97 
     | 
    
         
            +
                if (set_value)
         
     | 
| 
      
 98 
     | 
    
         
            +
                    *set_value = rb_grn_index_column->set_value;
         
     | 
| 
       92 
99 
     | 
    
         
             
                if (id_query)
         
     | 
| 
       93 
100 
     | 
    
         
             
                    *id_query = rb_grn_index_column->id_query;
         
     | 
| 
       94 
101 
     | 
    
         
             
                if (string_query)
         
     | 
| 
       95 
102 
     | 
    
         
             
                    *string_query = rb_grn_index_column->string_query;
         
     | 
| 
       96 
103 
     | 
    
         
             
            }
         
     | 
| 
       97 
104 
     | 
    
         | 
| 
       98 
     | 
    
         
            -
            /*
         
     | 
| 
       99 
     | 
    
         
            -
             * IDが _id_ であるレコードを高速に全文検索するため転置索引を作
         
     | 
| 
       100 
     | 
    
         
            -
             * 成する。多くの場合、 {Groonga::Table#define_index_column} で
         
     | 
| 
       101 
     | 
    
         
            -
             * +:source+ オプションを指定することにより、自動的に全文検索
         
     | 
| 
       102 
     | 
    
         
            -
             * 用の索引は更新されるので、明示的にこのメソッドを使うこと
         
     | 
| 
       103 
     | 
    
         
            -
             * は少ない。
         
     | 
| 
       104 
     | 
    
         
            -
             *
         
     | 
| 
       105 
     | 
    
         
            -
             * @example 記事の段落毎に索引を作成する。
         
     | 
| 
       106 
     | 
    
         
            -
             *   articles = Groonga::Array.create(:name => "<articles>")
         
     | 
| 
       107 
     | 
    
         
            -
             *   articles.define_column("title", "ShortText")
         
     | 
| 
       108 
     | 
    
         
            -
             *   articles.define_column("content", "Text")
         
     | 
| 
       109 
     | 
    
         
            -
             *
         
     | 
| 
       110 
     | 
    
         
            -
             *   terms = Groonga::Hash.create(:name => "<terms>",
         
     | 
| 
       111 
     | 
    
         
            -
             *                                :default_tokenizer => "TokenBigram")
         
     | 
| 
       112 
     | 
    
         
            -
             *   content_index = terms.define_index_column("content", articles,
         
     | 
| 
       113 
     | 
    
         
            -
             *                                             :with_section => true)
         
     | 
| 
       114 
     | 
    
         
            -
             *
         
     | 
| 
       115 
     | 
    
         
            -
             *   content = <<-EOC
         
     | 
| 
       116 
     | 
    
         
            -
             *   groonga は組み込み型の全文検索エンジンライブラリです。
         
     | 
| 
       117 
     | 
    
         
            -
             *   DBMSやスクリプト言語処理系等に組み込むことによって、その
         
     | 
| 
       118 
     | 
    
         
            -
             *   全文検索機能を強化することができます。また、リレーショナ
         
     | 
| 
       119 
     | 
    
         
            -
             *   ルモデルに基づくデータストア機能を内包しており、groonga
         
     | 
| 
       120 
     | 
    
         
            -
             *   単体でも高速なデータストアサーバとして使用することができ
         
     | 
| 
       121 
     | 
    
         
            -
             *   ます。
         
     | 
| 
       122 
     | 
    
         
            -
             *
         
     | 
| 
       123 
     | 
    
         
            -
             *   ■全文検索方式
         
     | 
| 
       124 
     | 
    
         
            -
             *   転置索引型の全文検索エンジンです。転置索引は圧縮されてファ
         
     | 
| 
       125 
     | 
    
         
            -
             *   イルに格納され、検索時のディスク読み出し量を小さく、かつ
         
     | 
| 
       126 
     | 
    
         
            -
             *   局所的に抑えるように設計されています。用途に応じて以下の
         
     | 
| 
       127 
     | 
    
         
            -
             *   索引タイプを選択できます。
         
     | 
| 
       128 
     | 
    
         
            -
             *   EOC
         
     | 
| 
       129 
     | 
    
         
            -
             *
         
     | 
| 
       130 
     | 
    
         
            -
             *   groonga = articles.add(:title => "groonga", :content => content)
         
     | 
| 
       131 
     | 
    
         
            -
             *
         
     | 
| 
       132 
     | 
    
         
            -
             *   content.split(/\n{2,}/).each_with_index do |sentence, i|
         
     | 
| 
       133 
     | 
    
         
            -
             *     content_index[groonga] = {:value => sentence, :section => i + 1}
         
     | 
| 
       134 
     | 
    
         
            -
             *   end
         
     | 
| 
       135 
     | 
    
         
            -
             *
         
     | 
| 
       136 
     | 
    
         
            -
             *   content_index.search("エンジン").collect do |record|
         
     | 
| 
       137 
     | 
    
         
            -
             *     p record.key["title"] # -> "groonga"
         
     | 
| 
       138 
     | 
    
         
            -
             *   end
         
     | 
| 
       139 
     | 
    
         
            -
             *
         
     | 
| 
       140 
     | 
    
         
            -
             * @overload []=(id, value)
         
     | 
| 
       141 
     | 
    
         
            -
             *   @param [String] value 新しい値
         
     | 
| 
       142 
     | 
    
         
            -
             * @overload []=(id, options)
         
     | 
| 
       143 
     | 
    
         
            -
             *   _options_ を指定することにより、 _value_ を指定したときよりも索引の作
         
     | 
| 
       144 
     | 
    
         
            -
             *   成を制御できる。
         
     | 
| 
       145 
     | 
    
         
            -
             *   @param [::Hash] options The name and value
         
     | 
| 
       146 
     | 
    
         
            -
             *     pairs. Omitted names are initialized as the default value
         
     | 
| 
       147 
     | 
    
         
            -
             *   @option options :section
         
     | 
| 
       148 
     | 
    
         
            -
             *     段落番号を指定する。省略した場合は1を指定したとみなされ
         
     | 
| 
       149 
     | 
    
         
            -
             *     る。
         
     | 
| 
       150 
     | 
    
         
            -
             *     {Groonga::Table#define_index_column} で
         
     | 
| 
       151 
     | 
    
         
            -
             *     @{:with_section => true}@ を指定していなければい
         
     | 
| 
       152 
     | 
    
         
            -
             *     けない。
         
     | 
| 
       153 
     | 
    
         
            -
             *   @option options :old_value
         
     | 
| 
       154 
     | 
    
         
            -
             *     以前の値を指定する。省略した場合は現在の値が用いられる。
         
     | 
| 
       155 
     | 
    
         
            -
             *     通常は指定する必要はない。
         
     | 
| 
       156 
     | 
    
         
            -
             *   @option options :value
         
     | 
| 
       157 
     | 
    
         
            -
             *     新しい値を指定する。 _value_ を指定した場合と _options_ で
         
     | 
| 
       158 
     | 
    
         
            -
             *     @{:value => value}@ を指定した場合は同じ動作とな
         
     | 
| 
       159 
     | 
    
         
            -
             *     る。
         
     | 
| 
       160 
     | 
    
         
            -
             *
         
     | 
| 
       161 
     | 
    
         
            -
             * @deprecated Since 3.0.2. Use {#add}, {#delete} or {#update} instead.
         
     | 
| 
       162 
     | 
    
         
            -
             */
         
     | 
| 
       163 
     | 
    
         
            -
            static VALUE
         
     | 
| 
       164 
     | 
    
         
            -
            rb_grn_index_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
         
     | 
| 
       165 
     | 
    
         
            -
            {
         
     | 
| 
       166 
     | 
    
         
            -
                grn_ctx *context = NULL;
         
     | 
| 
       167 
     | 
    
         
            -
                grn_obj *column, *range;
         
     | 
| 
       168 
     | 
    
         
            -
                grn_rc rc;
         
     | 
| 
       169 
     | 
    
         
            -
                grn_id id;
         
     | 
| 
       170 
     | 
    
         
            -
                unsigned int section;
         
     | 
| 
       171 
     | 
    
         
            -
                grn_obj *old_value, *new_value;
         
     | 
| 
       172 
     | 
    
         
            -
                VALUE original_rb_value, rb_section, rb_old_value, rb_new_value;
         
     | 
| 
       173 
     | 
    
         
            -
             
     | 
| 
       174 
     | 
    
         
            -
                original_rb_value = rb_value;
         
     | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       177 
     | 
    
         
            -
                                                NULL, NULL,
         
     | 
| 
       178 
     | 
    
         
            -
                                                &new_value, &old_value,
         
     | 
| 
       179 
     | 
    
         
            -
                                                NULL, &range,
         
     | 
| 
       180 
     | 
    
         
            -
                                                NULL, NULL);
         
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
                id = RVAL2GRNID(rb_id, context, range, self);
         
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
                if (!RVAL2CBOOL(rb_obj_is_kind_of(rb_value, rb_cHash))) {
         
     | 
| 
       185 
     | 
    
         
            -
                    VALUE hash_value;
         
     | 
| 
       186 
     | 
    
         
            -
                    hash_value = rb_hash_new();
         
     | 
| 
       187 
     | 
    
         
            -
                    rb_hash_aset(hash_value, RB_GRN_INTERN("value"), rb_value);
         
     | 
| 
       188 
     | 
    
         
            -
                    rb_value = hash_value;
         
     | 
| 
       189 
     | 
    
         
            -
                }
         
     | 
| 
       190 
     | 
    
         
            -
             
     | 
| 
       191 
     | 
    
         
            -
                rb_grn_scan_options(rb_value,
         
     | 
| 
       192 
     | 
    
         
            -
                                    "section", &rb_section,
         
     | 
| 
       193 
     | 
    
         
            -
                                    "old_value", &rb_old_value,
         
     | 
| 
       194 
     | 
    
         
            -
                                    "value", &rb_new_value,
         
     | 
| 
       195 
     | 
    
         
            -
                                    NULL);
         
     | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
       197 
     | 
    
         
            -
                if (NIL_P(rb_section))
         
     | 
| 
       198 
     | 
    
         
            -
                    section = 1;
         
     | 
| 
       199 
     | 
    
         
            -
                else
         
     | 
| 
       200 
     | 
    
         
            -
                    section = NUM2UINT(rb_section);
         
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
                if (NIL_P(rb_old_value)) {
         
     | 
| 
       203 
     | 
    
         
            -
                    old_value = NULL;
         
     | 
| 
       204 
     | 
    
         
            -
                } else {
         
     | 
| 
       205 
     | 
    
         
            -
                    GRN_BULK_REWIND(old_value);
         
     | 
| 
       206 
     | 
    
         
            -
                    RVAL2GRNBULK(rb_old_value, context, old_value);
         
     | 
| 
       207 
     | 
    
         
            -
                }
         
     | 
| 
       208 
     | 
    
         
            -
             
     | 
| 
       209 
     | 
    
         
            -
                if (NIL_P(rb_new_value)) {
         
     | 
| 
       210 
     | 
    
         
            -
                    new_value = NULL;
         
     | 
| 
       211 
     | 
    
         
            -
                } else {
         
     | 
| 
       212 
     | 
    
         
            -
                    GRN_BULK_REWIND(new_value);
         
     | 
| 
       213 
     | 
    
         
            -
                    RVAL2GRNBULK(rb_new_value, context, new_value);
         
     | 
| 
       214 
     | 
    
         
            -
                }
         
     | 
| 
       215 
     | 
    
         
            -
             
     | 
| 
       216 
     | 
    
         
            -
                rc = grn_column_index_update(context, column,
         
     | 
| 
       217 
     | 
    
         
            -
                                             id, section, old_value, new_value);
         
     | 
| 
       218 
     | 
    
         
            -
                rb_grn_context_check(context, self);
         
     | 
| 
       219 
     | 
    
         
            -
                rb_grn_rc_check(rc, self);
         
     | 
| 
       220 
     | 
    
         
            -
             
     | 
| 
       221 
     | 
    
         
            -
                return original_rb_value;
         
     | 
| 
       222 
     | 
    
         
            -
            }
         
     | 
| 
       223 
     | 
    
         
            -
             
     | 
| 
       224 
105 
     | 
    
         
             
            /*
         
     | 
| 
       225 
106 
     | 
    
         
             
             * Adds a record that has @value@ content to inverted index for fast
         
     | 
| 
       226 
107 
     | 
    
         
             
             * fulltext serach. Normally, this method is not used
         
     | 
| 
         @@ -304,7 +185,7 @@ rb_grn_index_column_add (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       304 
185 
     | 
    
         | 
| 
       305 
186 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       306 
187 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       307 
     | 
    
         
            -
                                                &new_value, NULL,
         
     | 
| 
      
 188 
     | 
    
         
            +
                                                &new_value, NULL, NULL,
         
     | 
| 
       308 
189 
     | 
    
         
             
                                                NULL, &range,
         
     | 
| 
       309 
190 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       310 
191 
     | 
    
         | 
| 
         @@ -418,7 +299,7 @@ rb_grn_index_column_delete (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       418 
299 
     | 
    
         | 
| 
       419 
300 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       420 
301 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       421 
     | 
    
         
            -
                                                NULL, &old_value,
         
     | 
| 
      
 302 
     | 
    
         
            +
                                                NULL, &old_value, NULL,
         
     | 
| 
       422 
303 
     | 
    
         
             
                                                NULL, &range,
         
     | 
| 
       423 
304 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       424 
305 
     | 
    
         | 
| 
         @@ -526,7 +407,7 @@ rb_grn_index_column_update (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       526 
407 
     | 
    
         | 
| 
       527 
408 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       528 
409 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       529 
     | 
    
         
            -
                                                &new_value, &old_value,
         
     | 
| 
      
 410 
     | 
    
         
            +
                                                &new_value, &old_value, NULL,
         
     | 
| 
       530 
411 
     | 
    
         
             
                                                NULL, &range,
         
     | 
| 
       531 
412 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       532 
413 
     | 
    
         | 
| 
         @@ -583,7 +464,7 @@ rb_grn_index_column_get_sources (VALUE self) 
     | 
|
| 
       583 
464 
     | 
    
         | 
| 
       584 
465 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       585 
466 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       586 
     | 
    
         
            -
                                                NULL, NULL, NULL, NULL,
         
     | 
| 
      
 467 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, NULL,
         
     | 
| 
       587 
468 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       588 
469 
     | 
    
         | 
| 
       589 
470 
     | 
    
         
             
                GRN_OBJ_INIT(&sources, GRN_BULK, 0, GRN_ID_NIL);
         
     | 
| 
         @@ -702,7 +583,7 @@ rb_grn_index_column_set_sources (VALUE self, VALUE rb_sources) 
     | 
|
| 
       702 
583 
     | 
    
         | 
| 
       703 
584 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       704 
585 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       705 
     | 
    
         
            -
                                                NULL, NULL,
         
     | 
| 
      
 586 
     | 
    
         
            +
                                                NULL, NULL, NULL,
         
     | 
| 
       706 
587 
     | 
    
         
             
                                                &range_id, NULL,
         
     | 
| 
       707 
588 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       708 
589 
     | 
    
         | 
| 
         @@ -785,15 +666,16 @@ rb_grn_index_column_search (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       785 
666 
     | 
    
         
             
                grn_obj *query = NULL, *id_query = NULL, *string_query = NULL;
         
     | 
| 
       786 
667 
     | 
    
         
             
                grn_obj *result;
         
     | 
| 
       787 
668 
     | 
    
         
             
                grn_operator operator;
         
     | 
| 
      
 669 
     | 
    
         
            +
                grn_search_optarg options;
         
     | 
| 
       788 
670 
     | 
    
         
             
                grn_rc rc;
         
     | 
| 
       789 
     | 
    
         
            -
                VALUE rb_query,  
     | 
| 
      
 671 
     | 
    
         
            +
                VALUE rb_query, rb_options, rb_result, rb_operator, rb_mode, rb_weight;
         
     | 
| 
       790 
672 
     | 
    
         | 
| 
       791 
673 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       792 
674 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       793 
     | 
    
         
            -
                                                NULL, NULL, NULL, &range,
         
     | 
| 
      
 675 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, &range,
         
     | 
| 
       794 
676 
     | 
    
         
             
                                                &id_query, &string_query);
         
     | 
| 
       795 
677 
     | 
    
         | 
| 
       796 
     | 
    
         
            -
                rb_scan_args(argc, argv, "11", &rb_query, & 
     | 
| 
      
 678 
     | 
    
         
            +
                rb_scan_args(argc, argv, "11", &rb_query, &rb_options);
         
     | 
| 
       797 
679 
     | 
    
         | 
| 
       798 
680 
     | 
    
         
             
                if (CBOOL2RVAL(rb_obj_is_kind_of(rb_query, rb_cInteger))) {
         
     | 
| 
       799 
681 
     | 
    
         
             
                    grn_id id;
         
     | 
| 
         @@ -807,9 +689,11 @@ rb_grn_index_column_search (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       807 
689 
     | 
    
         
             
                    query = string_query;
         
     | 
| 
       808 
690 
     | 
    
         
             
                }
         
     | 
| 
       809 
691 
     | 
    
         | 
| 
       810 
     | 
    
         
            -
                rb_grn_scan_options( 
     | 
| 
      
 692 
     | 
    
         
            +
                rb_grn_scan_options(rb_options,
         
     | 
| 
       811 
693 
     | 
    
         
             
                                    "result", &rb_result,
         
     | 
| 
       812 
694 
     | 
    
         
             
                                    "operator", &rb_operator,
         
     | 
| 
      
 695 
     | 
    
         
            +
                                    "mode", &rb_mode,
         
     | 
| 
      
 696 
     | 
    
         
            +
                                    "weight", &rb_weight,
         
     | 
| 
       813 
697 
     | 
    
         
             
                                    NULL);
         
     | 
| 
       814 
698 
     | 
    
         | 
| 
       815 
699 
     | 
    
         
             
                if (NIL_P(rb_result)) {
         
     | 
| 
         @@ -824,7 +708,23 @@ rb_grn_index_column_search (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       824 
708 
     | 
    
         | 
| 
       825 
709 
     | 
    
         
             
                operator = RVAL2GRNOPERATOR(rb_operator);
         
     | 
| 
       826 
710 
     | 
    
         | 
| 
       827 
     | 
    
         
            -
                 
     | 
| 
      
 711 
     | 
    
         
            +
                if (NIL_P(rb_mode)) {
         
     | 
| 
      
 712 
     | 
    
         
            +
                    options.mode = GRN_OP_EXACT;
         
     | 
| 
      
 713 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 714 
     | 
    
         
            +
                    options.mode = RVAL2GRNOPERATOR(rb_mode);
         
     | 
| 
      
 715 
     | 
    
         
            +
                }
         
     | 
| 
      
 716 
     | 
    
         
            +
                options.similarity_threshold = 0;
         
     | 
| 
      
 717 
     | 
    
         
            +
                options.max_interval = 0;
         
     | 
| 
      
 718 
     | 
    
         
            +
                options.weight_vector = NULL;
         
     | 
| 
      
 719 
     | 
    
         
            +
                if (NIL_P(rb_weight)) {
         
     | 
| 
      
 720 
     | 
    
         
            +
                    options.vector_size = 1;
         
     | 
| 
      
 721 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 722 
     | 
    
         
            +
                    options.vector_size = NUM2UINT(rb_weight);
         
     | 
| 
      
 723 
     | 
    
         
            +
                }
         
     | 
| 
      
 724 
     | 
    
         
            +
                options.proc = NULL;
         
     | 
| 
      
 725 
     | 
    
         
            +
                options.max_size = 0;
         
     | 
| 
      
 726 
     | 
    
         
            +
             
     | 
| 
      
 727 
     | 
    
         
            +
                rc = grn_obj_search(context, column, query, result, operator, &options);
         
     | 
| 
       828 
728 
     | 
    
         
             
                rb_grn_rc_check(rc, self);
         
     | 
| 
       829 
729 
     | 
    
         | 
| 
       830 
730 
     | 
    
         
             
                return rb_result;
         
     | 
| 
         @@ -842,7 +742,7 @@ rb_grn_index_column_with_section_p (VALUE self) 
     | 
|
| 
       842 
742 
     | 
    
         | 
| 
       843 
743 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, NULL,
         
     | 
| 
       844 
744 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       845 
     | 
    
         
            -
                                                NULL, NULL, NULL, NULL,
         
     | 
| 
      
 745 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, NULL,
         
     | 
| 
       846 
746 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       847 
747 
     | 
    
         | 
| 
       848 
748 
     | 
    
         
             
                return CBOOL2RVAL(column->header.flags & GRN_OBJ_WITH_SECTION);
         
     | 
| 
         @@ -860,7 +760,7 @@ rb_grn_index_column_with_weight_p (VALUE self) 
     | 
|
| 
       860 
760 
     | 
    
         | 
| 
       861 
761 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, NULL,
         
     | 
| 
       862 
762 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       863 
     | 
    
         
            -
                                                NULL, NULL, NULL, NULL,
         
     | 
| 
      
 763 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, NULL,
         
     | 
| 
       864 
764 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       865 
765 
     | 
    
         | 
| 
       866 
766 
     | 
    
         
             
                return CBOOL2RVAL(column->header.flags & GRN_OBJ_WITH_WEIGHT);
         
     | 
| 
         @@ -878,7 +778,7 @@ rb_grn_index_column_with_position_p (VALUE self) 
     | 
|
| 
       878 
778 
     | 
    
         | 
| 
       879 
779 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, NULL,
         
     | 
| 
       880 
780 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       881 
     | 
    
         
            -
                                                NULL, NULL, NULL, NULL,
         
     | 
| 
      
 781 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, NULL,
         
     | 
| 
       882 
782 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       883 
783 
     | 
    
         | 
| 
       884 
784 
     | 
    
         
             
                return CBOOL2RVAL(column->header.flags & GRN_OBJ_WITH_POSITION);
         
     | 
| 
         @@ -906,24 +806,24 @@ rb_grn_index_column_with_position_p (VALUE self) 
     | 
|
| 
       906 
806 
     | 
    
         
             
            static VALUE
         
     | 
| 
       907 
807 
     | 
    
         
             
            rb_grn_index_column_open_cursor (int argc, VALUE *argv, VALUE self)
         
     | 
| 
       908 
808 
     | 
    
         
             
            {
         
     | 
| 
       909 
     | 
    
         
            -
                grn_ctx 
     | 
| 
       910 
     | 
    
         
            -
                grn_obj 
     | 
| 
       911 
     | 
    
         
            -
                grn_obj 
     | 
| 
      
 809 
     | 
    
         
            +
                grn_ctx          *context;
         
     | 
| 
      
 810 
     | 
    
         
            +
                grn_obj          *column;
         
     | 
| 
      
 811 
     | 
    
         
            +
                grn_obj          *range_object;
         
     | 
| 
       912 
812 
     | 
    
         
             
                grn_table_cursor *table_cursor;
         
     | 
| 
       913 
     | 
    
         
            -
                grn_id 
     | 
| 
       914 
     | 
    
         
            -
                grn_id 
     | 
| 
       915 
     | 
    
         
            -
                int 
     | 
| 
       916 
     | 
    
         
            -
                grn_obj 
     | 
| 
       917 
     | 
    
         
            -
                VALUE 
     | 
| 
       918 
     | 
    
         
            -
                VALUE 
     | 
| 
       919 
     | 
    
         
            -
                VALUE 
     | 
| 
       920 
     | 
    
         
            -
                VALUE 
     | 
| 
       921 
     | 
    
         
            -
                VALUE 
     | 
| 
       922 
     | 
    
         
            -
                VALUE 
     | 
| 
      
 813 
     | 
    
         
            +
                grn_id            rid_min = GRN_ID_NIL;
         
     | 
| 
      
 814 
     | 
    
         
            +
                grn_id            rid_max = GRN_ID_MAX;
         
     | 
| 
      
 815 
     | 
    
         
            +
                int               flags   = 0;
         
     | 
| 
      
 816 
     | 
    
         
            +
                grn_obj          *index_cursor;
         
     | 
| 
      
 817 
     | 
    
         
            +
                VALUE             rb_table_cursor;
         
     | 
| 
      
 818 
     | 
    
         
            +
                VALUE             options;
         
     | 
| 
      
 819 
     | 
    
         
            +
                VALUE             rb_with_section, rb_with_weight, rb_with_position;
         
     | 
| 
      
 820 
     | 
    
         
            +
                VALUE             rb_table;
         
     | 
| 
      
 821 
     | 
    
         
            +
                VALUE             rb_lexicon;
         
     | 
| 
      
 822 
     | 
    
         
            +
                VALUE             rb_cursor;
         
     | 
| 
       923 
823 
     | 
    
         | 
| 
       924 
824 
     | 
    
         
             
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
       925 
825 
     | 
    
         
             
                                                NULL, NULL,
         
     | 
| 
       926 
     | 
    
         
            -
                                                NULL, NULL,
         
     | 
| 
      
 826 
     | 
    
         
            +
                                                NULL, NULL, NULL,
         
     | 
| 
       927 
827 
     | 
    
         
             
                                                NULL, &range_object,
         
     | 
| 
       928 
828 
     | 
    
         
             
                                                NULL, NULL);
         
     | 
| 
       929 
829 
     | 
    
         | 
| 
         @@ -935,8 +835,8 @@ rb_grn_index_column_open_cursor (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       935 
835 
     | 
    
         
             
                                    NULL);
         
     | 
| 
       936 
836 
     | 
    
         | 
| 
       937 
837 
     | 
    
         
             
                table_cursor = RVAL2GRNTABLECURSOR(rb_table_cursor, NULL);
         
     | 
| 
       938 
     | 
    
         
            -
                rb_table 
     | 
| 
       939 
     | 
    
         
            -
                rb_lexicon 
     | 
| 
      
 838 
     | 
    
         
            +
                rb_table     = GRNOBJECT2RVAL(Qnil, context, range_object, GRN_FALSE);
         
     | 
| 
      
 839 
     | 
    
         
            +
                rb_lexicon   = rb_iv_get(rb_table_cursor, "@table");
         
     | 
| 
       940 
840 
     | 
    
         | 
| 
       941 
841 
     | 
    
         
             
                if (NIL_P(rb_with_section)) {
         
     | 
| 
       942 
842 
     | 
    
         
             
                    flags |= column->header.flags & GRN_OBJ_WITH_SECTION;
         
     | 
| 
         @@ -973,9 +873,6 @@ rb_grn_init_index_column (VALUE mGrn) 
     | 
|
| 
       973 
873 
     | 
    
         
             
                rb_cGrnIndexColumn =
         
     | 
| 
       974 
874 
     | 
    
         
             
                    rb_define_class_under(mGrn, "IndexColumn", rb_cGrnColumn);
         
     | 
| 
       975 
875 
     | 
    
         | 
| 
       976 
     | 
    
         
            -
                rb_define_method(rb_cGrnIndexColumn, "[]=",
         
     | 
| 
       977 
     | 
    
         
            -
                                 rb_grn_index_column_array_set, 2);
         
     | 
| 
       978 
     | 
    
         
            -
             
     | 
| 
       979 
876 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "add",
         
     | 
| 
       980 
877 
     | 
    
         
             
                                 rb_grn_index_column_add, -1);
         
     | 
| 
       981 
878 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "delete",
         
     | 
| 
         @@ -999,6 +896,7 @@ rb_grn_init_index_column (VALUE mGrn) 
     | 
|
| 
       999 
896 
     | 
    
         
             
                                 rb_grn_index_column_with_weight_p, 0);
         
     | 
| 
       1000 
897 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "with_position?",
         
     | 
| 
       1001 
898 
     | 
    
         
             
                                 rb_grn_index_column_with_position_p, 0);
         
     | 
| 
      
 899 
     | 
    
         
            +
             
     | 
| 
       1002 
900 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "open_cursor",
         
     | 
| 
       1003 
901 
     | 
    
         
             
                                 rb_grn_index_column_open_cursor, -1);
         
     | 
| 
       1004 
902 
     | 
    
         
             
            }
         
     |