rroonga 9.0.2 → 10.0.6

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/Rakefile +9 -142
  4. data/doc/text/news.md +73 -1
  5. data/doc/text/tutorial.md +1 -1
  6. data/ext/groonga/extconf.rb +9 -74
  7. data/ext/groonga/rb-grn-context.c +27 -0
  8. data/ext/groonga/rb-grn-expression-builder.c +3 -3
  9. data/ext/groonga/rb-grn-flushable.c +7 -0
  10. data/ext/groonga/rb-grn-index-column.c +28 -0
  11. data/ext/groonga/rb-grn-index-cursor.c +19 -0
  12. data/ext/groonga/rb-grn-logger.c +17 -3
  13. data/ext/groonga/rb-grn-object.c +236 -22
  14. data/ext/groonga/rb-grn-table-key-support.c +26 -7
  15. data/ext/groonga/rb-grn-table.c +119 -87
  16. data/ext/groonga/rb-grn-type.c +5 -1
  17. data/ext/groonga/rb-grn-utils.c +17 -1
  18. data/ext/groonga/rb-grn.h +7 -13
  19. data/ext/groonga/rb-groonga.c +2 -2
  20. data/lib/groonga.rb +3 -7
  21. data/lib/groonga/dumper.rb +3 -0
  22. data/lib/groonga/record.rb +2 -2
  23. data/rroonga.gemspec +4 -5
  24. data/test/groonga-test-utils.rb +34 -5
  25. data/test/run-test.rb +1 -3
  26. data/test/test-accessor.rb +63 -7
  27. data/test/test-column.rb +12 -1
  28. data/test/test-context.rb +25 -0
  29. data/test/test-exception.rb +5 -0
  30. data/test/test-flushable.rb +51 -6
  31. data/test/test-index-column.rb +67 -6
  32. data/test/test-index-cursor.rb +26 -0
  33. data/test/test-logger.rb +56 -11
  34. data/test/test-plugin.rb +1 -0
  35. data/test/test-query-logger.rb +4 -3
  36. data/test/test-record.rb +2 -1
  37. data/test/test-remote.rb +56 -10
  38. data/test/test-schema-dumper.rb +13 -0
  39. data/test/test-schema.rb +9 -1
  40. data/test/test-table-arrow.rb +1 -1
  41. data/test/test-table.rb +21 -1
  42. data/test/test-variable.rb +23 -7
  43. metadata +65 -106
@@ -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-2014 Kouhei Sutou <kou@clear-code.com>
3
+ Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
4
4
  Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
5
5
 
6
6
  This library is free software; you can redistribute it and/or
@@ -481,8 +481,10 @@ typedef struct _SetValueData
481
481
  } SetValueData;
482
482
 
483
483
  static VALUE
484
- set_value (VALUE args, SetValueData *data)
484
+ set_value (RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg))
485
485
  {
486
+ VALUE args = yielded_arg;
487
+ SetValueData *data = (SetValueData *)callback_arg;
486
488
  VALUE rb_name, rb_value, rb_column;
487
489
  RbGrnObject *rb_grn_object;
488
490
 
@@ -911,7 +913,9 @@ rb_grn_table_key_support_get_normalizer (VALUE self)
911
913
  * # Specifies normalizer object.
912
914
  * table.normalizer = Groonga::Context["NormalizerNFKC51"]
913
915
  * # Uses auto normalizer that is a normalizer for backward compatibility.
914
- * table.normalizer = "TNormalizerAuto"
916
+ * table.normalizer = "NormalizerAuto"
917
+ * # Uses a normalizer with options.
918
+ * table.normalizer = "NormalizerNFKC121('unify_kana', true)"
915
919
  *
916
920
  * @overload normalizer=(name)
917
921
  * @param [String] name Set a nomalizer named @name@.
@@ -927,7 +931,6 @@ rb_grn_table_key_support_set_normalizer (VALUE self, VALUE rb_normalizer)
927
931
  {
928
932
  grn_ctx *context;
929
933
  grn_obj *table;
930
- grn_obj *normalizer;
931
934
  grn_rc rc;
932
935
 
933
936
  rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
@@ -935,9 +938,25 @@ rb_grn_table_key_support_set_normalizer (VALUE self, VALUE rb_normalizer)
935
938
  NULL, NULL, NULL,
936
939
  NULL);
937
940
 
938
- normalizer = RVAL2GRNOBJECT(rb_normalizer, &context);
939
- rc = grn_obj_set_info(context, table, GRN_INFO_NORMALIZER, normalizer);
940
- rb_grn_context_check(context, self);
941
+ if (RB_TYPE_P(rb_normalizer, RUBY_T_STRING)) {
942
+ grn_obj normalizer;
943
+ VALUE exception;
944
+ GRN_TEXT_INIT(&normalizer, GRN_OBJ_DO_SHALLOW_COPY);
945
+ GRN_TEXT_SET(context,
946
+ &normalizer,
947
+ RSTRING_PTR(rb_normalizer),
948
+ RSTRING_LEN(rb_normalizer));
949
+ rc = grn_obj_set_info(context, table, GRN_INFO_NORMALIZER, &normalizer);
950
+ exception = rb_grn_context_to_exception(context, self);
951
+ GRN_OBJ_FIN(context, &normalizer);
952
+ if (!NIL_P(exception)) {
953
+ rb_exc_raise(exception);
954
+ }
955
+ } else {
956
+ grn_obj *normalizer = RVAL2GRNOBJECT(rb_normalizer, &context);
957
+ rc = grn_obj_set_info(context, table, GRN_INFO_NORMALIZER, normalizer);
958
+ rb_grn_context_check(context, self);
959
+ }
941
960
  rb_grn_rc_check(rc, self);
942
961
 
943
962
  return Qnil;
@@ -2,6 +2,7 @@
2
2
  /*
3
3
  Copyright (C) 2009-2017 Kouhei Sutou <kou@clear-code.com>
4
4
  Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
5
+ Copyright (C) 2019 Horimoto Yasuhiro <horimoto@clear-code.com>
5
6
 
6
7
  This library is free software; you can redistribute it and/or
7
8
  modify it under the terms of the GNU Lesser General Public
@@ -29,9 +30,9 @@ static ID id_array_set;
29
30
  /*
30
31
  * Document-class: Groonga::Table < Groonga::Object
31
32
  *
32
- * Rroongaが提供するテーブルのベースとなるクラス。このクラス
33
- * から {Groonga::Array} , {Groonga::Hash} , {Groonga::PatriciaTrie}
34
- * が継承されている。
33
+ * This class is base class which represents Rroonga's table.
34
+ * {Groonga::Array} , {Groonga::Hash} , {Groonga::PatriciaTrie}
35
+ * are extended from this class.
35
36
  */
36
37
 
37
38
  grn_obj *
@@ -183,7 +184,8 @@ rb_grn_table_inspect_content (VALUE self, VALUE inspected)
183
184
  }
184
185
 
185
186
  /*
186
- * テーブルの中身を人に見やすい文字列で返す。
187
+ * This function return contents of a table as a string.
188
+ * It's easy to understand for human.
187
189
  *
188
190
  * @overload inspect
189
191
  * @return [String]
@@ -203,31 +205,33 @@ rb_grn_table_inspect (VALUE self)
203
205
  }
204
206
 
205
207
  /*
206
- * テーブルに名前が _name_ で型が _value_type_ のカラムを定義
207
- * し、新しく定義されたカラムを返す。
208
+ * Defines a column that name is `name` and type is `value_type`. It
209
+ * returns the newly defined column.
208
210
  *
209
211
  * @overload define_column(name, value_type, options={})
210
212
  * @param options [::Hash] The name and value
211
213
  * pairs. Omitted names are initialized as the default value.
212
- * @option options :path
213
- * カラムを保存するパス。
214
- * @option options :persistent (永続カラム)
215
- * +true+ を指定すると永続カラムとなる。省略した場合は永
216
- * 続カラムとなる。 +:path+ を省略した場合は自動的にパスが
217
- * 付加される。
214
+ * @option options :path [String, nil] (nil)
215
+ * The path to store the content of the column.
216
+ * If this is omitted, path is generated automatically.
217
+ * @option options :persistent [Boolean] (true)
218
+ * Whether the column is a persistent column or not.
219
+ * If this is `true` and `:path` is omitted, path is generated
220
+ * automatically.
218
221
  * @option options :type (:scalar)
219
- * カラムの値の格納方法について指定する。省略した場合は、
220
- * +:scalar+ になる。
222
+ * This option specifies how to store a value of a column.
223
+ * If this option is omitted, +:scalar+ is used.
221
224
  *
222
- * - +:scalar+ := スカラ値(単独の値)を格納する。
223
- * - +:vector+ := 値の配列を格納する。
225
+ * - +:scalar+ := Store scalar value.
226
+ * - +:vector+ := Store array value.
224
227
  * @option options [Boolean] :with_weight (false)
225
228
  * It specifies whether making the column weight vector column or not.
226
229
  * Weight vector column can store weight for each element.
227
230
  *
228
231
  * You can't use this option for scalar column.
229
232
  * @option options :compress
230
- * 値の圧縮方法を指定する。省略した場合は、圧縮しない。
233
+ * This option specifies how to compress values.
234
+ * If we omit this option, values are not compressed.
231
235
  *
232
236
  * * `:zlib`: Compressed by zlib.
233
237
  * * `:lz4`: Compressed by LZ4.
@@ -345,32 +349,37 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
345
349
  }
346
350
 
347
351
  /*
348
- * テーブルに名前が _name_ で型が _value_type_ のインデックスカ
349
- * ラムを定義し、新しく定義されたカラムを返す。
352
+ * Defines an index column that name is `name` and type is
353
+ * `value_type`. It returns the newly defined index column.
350
354
  *
351
355
  * @overload define_index_column(name, value_type, options={})
352
356
  * @param options [::Hash] The name and value
353
357
  * pairs. Omitted names are initialized as the default value.
354
- * @option options :path
355
- * カラムを保存するパス。
356
- * @option options :persistent (永続カラム)
357
- * +true+ を指定すると永続カラムとなる。省略した場合は永
358
- * 続カラムとなる。 +:path+ を省略した場合は自動的にパスが
359
- * 付加される。
360
- * @option options :with_section
361
- * 転置索引にsection(段落情報)を合わせて格納する。
362
- * @option options :with_weight
363
- * 転置索引にweight情報を合わせて格納する。
364
- * @option options :with_position
365
- * 転置索引に出現位置情報を合わせて格納する。
366
- * @option options :size (nil)
367
- * The size of index column. It must be `nil`, `:small` or
368
- * `:medium`. `nil` means full size. `:small` means small
369
- * size. `:medium` means medium size.
370
- * @option options :source
371
- * インデックス対象となるカラムを指定する。 +:sources+ との併用はできない。
372
- * @option options :sources
373
- * インデックス対象となる複数のカラムを指定する。 +:source+ との併用はできない。
358
+ * @option options :path [String, nil] (nil)
359
+ * The path to store the content of the index column.
360
+ * If this is omitted, path is generated automatically.
361
+ * @option options :persistent [Boolean] (true)
362
+ * Whether the index column is a persistent indent column or not.
363
+ * If this is `true` and `:path` is omitted, path is generated
364
+ * automatically.
365
+ * @option options :with_section [Boolean] (false)
366
+ * Whether section information is stored to the index column or not.
367
+ * @option options :with_weight [Boolean] (false)
368
+ * Whether weight information is stored to the index column or not.
369
+ * @option options :with_position [Boolean] (false)
370
+ * Whether position information is stored to the index column or not.
371
+ * @option options :size [Symbol, nil] (nil)
372
+ * The size of index column. It must be `nil`, `:small`,
373
+ * `:medium` or `:large`. `nil` means the default size.
374
+ * `:small` means small size. `:medium` means medium size. Medium size
375
+ * is smaller than the default size. `:large` means large size.
376
+ * Large size is larger than the default size.
377
+ * @option options :source [Groonga::Column, nil] (nil)
378
+ * Specifies the source column of the index column.
379
+ * This option can't be used with `:sources`.
380
+ * @option options :sources [::Array<Groonga::Column>, nil] (nil)
381
+ * Specifies the source columns of the index column.
382
+ * This option can't be used with `:source`.
374
383
  *
375
384
  * @return [Groonga::IndexColumn]
376
385
  */
@@ -461,9 +470,11 @@ rb_grn_table_define_index_column (int argc, VALUE *argv, VALUE self)
461
470
  flags |= GRN_OBJ_INDEX_SMALL;
462
471
  } else if (rb_grn_equal_option(rb_size, "medium")) {
463
472
  flags |= GRN_OBJ_INDEX_MEDIUM;
473
+ } else if (rb_grn_equal_option(rb_size, "large")) {
474
+ flags |= GRN_OBJ_INDEX_LARGE;
464
475
  } else {
465
476
  rb_raise(rb_eArgError,
466
- ":size must be nil, :small or :medium: <%" PRIsVALUE ">",
477
+ ":size must be nil, :small, :medium or :large: <%" PRIsVALUE ">",
467
478
  rb_size);
468
479
  }
469
480
 
@@ -514,8 +525,8 @@ ruby_object_to_column_name (VALUE rb_name,
514
525
  }
515
526
 
516
527
  /*
517
- * テーブルの _name_ に対応するカラムを返す。カラムが存在しな
518
- * い場合は +nil+ を返す。
528
+ * It returns the column has the specified name.
529
+ * If the specified column does not exist, it returns `nil`.
519
530
  *
520
531
  * @overload column(name)
521
532
  * @return [Groonga::Column, nil]
@@ -595,11 +606,15 @@ rb_grn_table_get_column_surely (VALUE self, VALUE rb_name)
595
606
  }
596
607
 
597
608
  /*
598
- * テーブルの全てのカラムを返す。 _name_ が指定された場合はカ
599
- * ラム名の先頭が _name_ で始まるカラムを返す。
609
+ * @overload columns(prefix=nil)
610
+ * It returns the specified columns in the table.
600
611
  *
601
- * @overload columns(name=nil)
602
- * @return [Groonga::Columnの配列]
612
+ * @param prefix [String, nil]
613
+ * If this is `nil`, it returns the all columns in table.
614
+ *
615
+ * Otherwise it returns columns which have name starts with `prefix`.
616
+ *
617
+ * @return [::Array<Groonga::Column>]
603
618
  */
604
619
  static VALUE
605
620
  rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
@@ -611,9 +626,9 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
611
626
  grn_rc rc;
612
627
  int n;
613
628
  grn_table_cursor *cursor;
614
- VALUE rb_name, rb_columns;
615
- char *name = NULL;
616
- unsigned name_size = 0;
629
+ VALUE rb_prefix, rb_columns;
630
+ char *prefix = NULL;
631
+ unsigned prefix_size = 0;
617
632
  VALUE exception;
618
633
 
619
634
  rb_grn_table_deconstruct(SELF(self), &table, &context,
@@ -621,18 +636,18 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
621
636
  NULL, NULL, NULL,
622
637
  NULL);
623
638
 
624
- rb_scan_args(argc, argv, "01", &rb_name);
639
+ rb_scan_args(argc, argv, "01", &rb_prefix);
625
640
 
626
- if (!NIL_P(rb_name)) {
627
- name = StringValuePtr(rb_name);
628
- name_size = RSTRING_LEN(rb_name);
641
+ if (!NIL_P(rb_prefix)) {
642
+ prefix = StringValuePtr(rb_prefix);
643
+ prefix_size = RSTRING_LEN(rb_prefix);
629
644
  }
630
645
 
631
646
  key_type = grn_ctx_at(context, GRN_DB_SHORT_TEXT);
632
647
  columns = grn_table_create(context, NULL, 0, NULL, GRN_TABLE_HASH_KEY,
633
648
  key_type, 0);
634
649
  rb_grn_context_check(context, self);
635
- n = grn_table_columns(context, table, name, name_size, columns);
650
+ n = grn_table_columns(context, table, prefix, prefix_size, columns);
636
651
  rb_grn_context_check(context, self);
637
652
 
638
653
  rb_columns = rb_ary_new2(n);
@@ -690,9 +705,10 @@ rb_grn_table_get_columns (int argc, VALUE *argv, VALUE self)
690
705
  }
691
706
 
692
707
  /*
693
- * テーブルが _name_ カラムを持っている場合は +true+ を返す。
708
+ * Checks whether the table has a specified column or not.
694
709
  *
695
710
  * @overload have_column?(name)
711
+ * @return [Boolean] `true` if the table has a `name` column, `false` otherwise.
696
712
  */
697
713
  static VALUE
698
714
  rb_grn_table_have_column (VALUE self, VALUE rb_name)
@@ -873,11 +889,10 @@ rb_grn_table_open_cursor (int argc, VALUE *argv, VALUE self)
873
889
  }
874
890
 
875
891
  /*
876
- * テーブルに登録されている全てのレコードが入っている配列を
877
- * 返す。
878
- *
879
892
  * @overload records
880
- * @return [Groonga::Recordの配列]
893
+ * It returns all records in the table.
894
+ *
895
+ * @return [::Array<Groonga::Record>]
881
896
  */
882
897
  static VALUE
883
898
  rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
@@ -898,9 +913,9 @@ rb_grn_table_get_records (int argc, VALUE *argv, VALUE self)
898
913
  }
899
914
 
900
915
  /*
901
- * テーブルに登録されているレコード数を返す。
902
- *
903
916
  * @overload size
917
+ * It returns the number of records in the table.
918
+ *
904
919
  * @return [Integer]
905
920
  */
906
921
  static VALUE
@@ -919,9 +934,10 @@ rb_grn_table_get_size (VALUE self)
919
934
  }
920
935
 
921
936
  /*
922
- * テーブルにレコードが登録されていなければ +true+ を返す。
923
- *
924
937
  * @overload empty?
938
+ *
939
+ * @return [Boolean] `true` if the table has no records,
940
+ * `false` otherwise.
925
941
  */
926
942
  static VALUE
927
943
  rb_grn_table_empty_p (VALUE self)
@@ -939,9 +955,11 @@ rb_grn_table_empty_p (VALUE self)
939
955
  }
940
956
 
941
957
  /*
942
- * テーブルの全レコードを一括して削除する。
958
+ * Deletes all records in the table at once.
943
959
  *
944
960
  * @overload truncate
961
+ *
962
+ * @return [void]
945
963
  */
946
964
  static VALUE
947
965
  rb_grn_table_truncate (VALUE self)
@@ -1112,7 +1130,7 @@ rb_grn_table_delete_by_expression (VALUE self)
1112
1130
  *
1113
1131
  * @param id [Integer] The ID of delete target record.
1114
1132
  *
1115
- * @return void
1133
+ * @return [void]
1116
1134
  *
1117
1135
  * @overload delete
1118
1136
  * Delete records that are matched with the given condition
@@ -1130,7 +1148,7 @@ rb_grn_table_delete_by_expression (VALUE self)
1130
1148
  * @yieldreturn [Groonga::ExpressionBuilder]
1131
1149
  * TODO: See #select.
1132
1150
  *
1133
- * @return void
1151
+ * @return [void]
1134
1152
  */
1135
1153
  static VALUE
1136
1154
  rb_grn_table_delete (int argc, VALUE *argv, VALUE self)
@@ -1613,9 +1631,10 @@ rb_grn_table_each_sub_record (VALUE self, VALUE rb_id)
1613
1631
  }
1614
1632
 
1615
1633
  /*
1616
- * _table_ _id_ に対応する {Groonga::Record} を返す。
1634
+ * It returns the {Groonga::Record} for the `id` in the `table`.
1617
1635
  *
1618
- * 0.9.0から値ではなく {Groonga::Record} を返すようになった。
1636
+ * The return value has been changed to {Groonga::Record} from `id`
1637
+ * itself since 0.9.0.
1619
1638
  *
1620
1639
  * @overload [](id)
1621
1640
  * @return [Groonga::Record]
@@ -1653,16 +1672,16 @@ rb_grn_table_get_value (VALUE self, VALUE rb_id)
1653
1672
  }
1654
1673
 
1655
1674
  /*
1656
- * _table_ _id_ に対応する値を返す。
1675
+ * It returns the value for the `id` in the `table`.
1657
1676
  *
1658
- * @:id => true@ が指定できるのは利便性のため。
1659
- * {Groonga::Array} でも {Groonga::Hash} や {Groonga::PatriciaTrie} と
1660
- * 同じ引数で動くようになる。
1677
+ * You can specify `id: true` for the convenience. `id: true` works
1678
+ * with {Groonga::Array} like for {Groonga::Hash},
1679
+ * {Groonga::PatriciaTrie} and so on.
1661
1680
  *
1662
1681
  * @overload value(id)
1663
- * @return []
1664
- * @overload value(id, :id => true)
1665
- * @return []
1682
+ * @return [value]
1683
+ * @overload value(id, id: true)
1684
+ * @return [value]
1666
1685
  */
1667
1686
  static VALUE
1668
1687
  rb_grn_table_get_value_convenience (int argc, VALUE *argv, VALUE self)
@@ -2482,8 +2501,8 @@ rb_grn_table_support_key_p (VALUE self)
2482
2501
  /*
2483
2502
  * @overload support_value?
2484
2503
  *
2485
- * @return @true@ if the table is created with value type, @false@
2486
- * otherwise.
2504
+ * @return [Boolean] `true` if the table is created with value type,
2505
+ * `false` otherwise.
2487
2506
  */
2488
2507
  static VALUE
2489
2508
  rb_grn_table_support_value_p (VALUE self)
@@ -2498,11 +2517,11 @@ rb_grn_table_support_value_p (VALUE self)
2498
2517
  }
2499
2518
 
2500
2519
  /*
2501
- * グループ化したとき、テーブルにグループに含まれるレコード
2502
- * 数を格納できる場合は +true+ 、格納できない場合は +false+ を返
2503
- * す。
2504
- *
2505
2520
  * @overload support_sub_records?
2521
+ *
2522
+ * @return [Boolean] `true` if the table can store the number of
2523
+ * records for each group when the table is grouped, `false`
2524
+ * otherwise.
2506
2525
  */
2507
2526
  static VALUE
2508
2527
  rb_grn_table_support_sub_records_p (VALUE self)
@@ -2517,6 +2536,19 @@ rb_grn_table_support_sub_records_p (VALUE self)
2517
2536
  return CBOOL2RVAL(grn_table_is_grouped(context, table));
2518
2537
  }
2519
2538
 
2539
+ /*
2540
+ * @overload support_score?
2541
+ *
2542
+ * @return [Boolean] `true` if the table has `_score` column,
2543
+ * `false` otherwise.
2544
+ */
2545
+ static VALUE
2546
+ rb_grn_table_support_score_p (VALUE self)
2547
+ {
2548
+ return CBOOL2RVAL(rb_grn_table_have_column(self,
2549
+ rb_str_new_literal("_score")));
2550
+ }
2551
+
2520
2552
  /*
2521
2553
  * {Groonga::Table#group} returns a table that contains grouped
2522
2554
  * records. If grouped table has a space to store the number of
@@ -2554,13 +2586,11 @@ rb_grn_table_have_n_sub_records_space_p (VALUE self)
2554
2586
  }
2555
2587
 
2556
2588
  /*
2557
- * _table_ に _id_ で指定したIDのレコードが存在する場合は +true+ 、
2558
- * 存在しない場合は +false+ を返す。
2559
- *
2560
- * 注意: 実行には相応のコストがかかるのであまり頻繁に呼ばな
2561
- * いようにして下さい。
2562
- *
2563
2589
  * @overload exist?(id)
2590
+ * @return [Boolean] `true` if the table has a record specified ID
2591
+ * by `id`, `false` otherwise.
2592
+ *
2593
+ * @note This method is heavy. You should not call this as much as possible.
2564
2594
  */
2565
2595
  static VALUE
2566
2596
  rb_grn_table_exist_p (VALUE self, VALUE id)
@@ -2890,6 +2920,8 @@ rb_grn_init_table (VALUE mGrn)
2890
2920
  rb_grn_table_support_value_p, 0);
2891
2921
  rb_define_method(rb_cGrnTable, "support_sub_records?",
2892
2922
  rb_grn_table_support_sub_records_p, 0);
2923
+ rb_define_method(rb_cGrnTable, "support_score?",
2924
+ rb_grn_table_support_score_p, 0);
2893
2925
  rb_define_method(rb_cGrnTable, "have_n_sub_records_space?",
2894
2926
  rb_grn_table_have_n_sub_records_space_p, 0);
2895
2927