rroonga 9.0.3 → 9.0.7
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/doc/text/news.md +30 -0
 - data/ext/groonga/rb-grn-context.c +27 -0
 - data/ext/groonga/rb-grn-flushable.c +7 -0
 - data/ext/groonga/rb-grn-index-column.c +28 -0
 - data/ext/groonga/rb-grn-index-cursor.c +19 -0
 - data/ext/groonga/rb-grn-logger.c +17 -3
 - data/ext/groonga/rb-grn-object.c +236 -22
 - data/ext/groonga/rb-grn-table.c +68 -42
 - data/ext/groonga/rb-grn.h +1 -1
 - data/lib/groonga/dumper.rb +3 -0
 - data/lib/groonga/record.rb +2 -2
 - data/test/groonga-test-utils.rb +28 -5
 - data/test/run-test.rb +0 -2
 - data/test/test-accessor.rb +63 -7
 - data/test/test-context.rb +25 -0
 - data/test/test-exception.rb +5 -0
 - data/test/test-flushable.rb +51 -6
 - data/test/test-index-column.rb +67 -6
 - data/test/test-index-cursor.rb +26 -0
 - data/test/test-logger.rb +56 -11
 - data/test/test-plugin.rb +1 -0
 - data/test/test-query-logger.rb +4 -3
 - data/test/test-record.rb +2 -1
 - data/test/test-remote.rb +40 -10
 - data/test/test-schema-dumper.rb +13 -0
 - data/test/test-table.rb +21 -1
 - data/test/test-variable.rb +23 -7
 - metadata +59 -59
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b746af2f9292a37577708353f345c6d07f4555be55e75656fe442beadde5ed6b
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 035b93cdea5b21cb27eba8e9d7780287e8efb7684560c0cda8769ed23de7b27d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 984a7bbf57965efeaa6167d8258be509a1bce1d3e688fc7b80b83bacdd9393e75a2d43a852f557c44a18007de92171e86218b0db0a5a19acc47d3b956f1f691c
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9f2071147b1c8bf0b921f00c52e7fbea18193100e71f9b47610e252425db346680dfed472a73ec5614e1a34c693c94bb73e1d117523a20ea31e664ecc2d6e21a
         
     | 
    
        data/doc/text/news.md
    CHANGED
    
    | 
         @@ -1,5 +1,35 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # NEWS
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 9.0.7: 2019-08-29 {#version-9-0-7}
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ### Improvements
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              * {Groonga::Object#lexicon?} Added.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              * {Groonga::IndexColumn} Added support "INDEX_LARGE".
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              * {Groonga::IndexCursor.min_enable?/min_enable=} Added.
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              * {Groonga::Context#match_escalation?/match_escalation=} Added.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              * {Groona::Object#id_accessor?} Added.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              * {Groonga::Logger.flags} Added support for thread id option.
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              * {Groonga::Object#bulk?} Added.
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              * {Groonga::Object#value_accessor?} Added.
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              * {Groonga::Table} Delegate support_score? from Groonga::Record to Groonga::Table.
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              * {Groonga::Flashable} Added support dependent option.
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              * {Groonga::Object#score_accessor?} Added.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              * {Groonga::Object#nsubrecs_accessor? } Added.
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              * Translate a part of explanation of Groonga::Table into English.
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       3 
33 
     | 
    
         
             
            ## 9.0.3: 2019-05-10 {#version-9-0-3}
         
     | 
| 
       4 
34 
     | 
    
         | 
| 
       5 
35 
     | 
    
         
             
            ### Improvements
         
     | 
| 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
3 
     | 
    
         
             
              Copyright (C) 2010-2018  Kouhei Sutou <kou@clear-code.com>
         
     | 
| 
       4 
4 
     | 
    
         
             
              Copyright (C) 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
         
     | 
| 
         @@ -604,6 +605,27 @@ rb_grn_context_get_ruby_encoding (VALUE self) 
     | 
|
| 
       604 
605 
     | 
    
         
             
                return rb_grn_encoding_to_ruby_encoding_object(encoding);
         
     | 
| 
       605 
606 
     | 
    
         
             
            }
         
     | 
| 
       606 
607 
     | 
    
         | 
| 
      
 608 
     | 
    
         
            +
            /*
         
     | 
| 
      
 609 
     | 
    
         
            +
             * @overload force_match_escalation?
         
     | 
| 
      
 610 
     | 
    
         
            +
             *   @return [Bool]
         
     | 
| 
      
 611 
     | 
    
         
            +
             */
         
     | 
| 
      
 612 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 613 
     | 
    
         
            +
            rb_grn_context_force_match_escalation_p (VALUE self)
         
     | 
| 
      
 614 
     | 
    
         
            +
            {
         
     | 
| 
      
 615 
     | 
    
         
            +
                return CBOOL2RVAL(grn_ctx_get_force_match_escalation(SELF(self)));
         
     | 
| 
      
 616 
     | 
    
         
            +
            }
         
     | 
| 
      
 617 
     | 
    
         
            +
             
     | 
| 
      
 618 
     | 
    
         
            +
            /*
         
     | 
| 
      
 619 
     | 
    
         
            +
             * @overload force_match_escalation=(force_match_escalation)
         
     | 
| 
      
 620 
     | 
    
         
            +
             */
         
     | 
| 
      
 621 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 622 
     | 
    
         
            +
            rb_grn_context_set_force_match_escalation (VALUE self, VALUE force_match_escalation)
         
     | 
| 
      
 623 
     | 
    
         
            +
            {
         
     | 
| 
      
 624 
     | 
    
         
            +
                grn_ctx_set_force_match_escalation(SELF(self),
         
     | 
| 
      
 625 
     | 
    
         
            +
                                                   RVAL2CBOOL(force_match_escalation));
         
     | 
| 
      
 626 
     | 
    
         
            +
                return force_match_escalation;
         
     | 
| 
      
 627 
     | 
    
         
            +
            }
         
     | 
| 
      
 628 
     | 
    
         
            +
             
     | 
| 
       607 
629 
     | 
    
         
             
            /*
         
     | 
| 
       608 
630 
     | 
    
         
             
             * このコンテキストを使って検索したときに検索の挙動をエスカレー
         
     | 
| 
       609 
631 
     | 
    
         
             
             * ションする閾値を返します。
         
     | 
| 
         @@ -1039,6 +1061,11 @@ rb_grn_init_context (VALUE mGrn) 
     | 
|
| 
       1039 
1061 
     | 
    
         
             
                rb_define_method(cGrnContext, "encoding=", rb_grn_context_set_encoding, 1);
         
     | 
| 
       1040 
1062 
     | 
    
         
             
                rb_define_method(cGrnContext, "ruby_encoding",
         
     | 
| 
       1041 
1063 
     | 
    
         
             
                                 rb_grn_context_get_ruby_encoding, 0);
         
     | 
| 
      
 1064 
     | 
    
         
            +
             
     | 
| 
      
 1065 
     | 
    
         
            +
                rb_define_method(cGrnContext, "force_match_escalation?",
         
     | 
| 
      
 1066 
     | 
    
         
            +
                                 rb_grn_context_force_match_escalation_p, 0);
         
     | 
| 
      
 1067 
     | 
    
         
            +
                rb_define_method(cGrnContext, "force_match_escalation=",
         
     | 
| 
      
 1068 
     | 
    
         
            +
                                 rb_grn_context_set_force_match_escalation, 1);
         
     | 
| 
       1042 
1069 
     | 
    
         
             
                rb_define_method(cGrnContext, "match_escalation_threshold",
         
     | 
| 
       1043 
1070 
     | 
    
         
             
                                 rb_grn_context_get_match_escalation_threshold, 0);
         
     | 
| 
       1044 
1071 
     | 
    
         
             
                rb_define_method(cGrnContext, "match_escalation_threshold=",
         
     | 
| 
         @@ -43,15 +43,20 @@ rb_grn_flushable_flush (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       43 
43 
     | 
    
         
             
                grn_ctx *context = NULL;
         
     | 
| 
       44 
44 
     | 
    
         
             
                grn_obj *object = NULL;
         
     | 
| 
       45 
45 
     | 
    
         
             
                VALUE rb_recursive_p;
         
     | 
| 
      
 46 
     | 
    
         
            +
                VALUE rb_dependent_p;
         
     | 
| 
       46 
47 
     | 
    
         
             
                VALUE rb_options;
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
       48 
49 
     | 
    
         
             
                rb_scan_args(argc, argv, "01", &rb_options);
         
     | 
| 
       49 
50 
     | 
    
         
             
                rb_grn_scan_options(rb_options,
         
     | 
| 
       50 
51 
     | 
    
         
             
                                    "recursive", &rb_recursive_p,
         
     | 
| 
      
 52 
     | 
    
         
            +
                                    "dependent", &rb_dependent_p,
         
     | 
| 
       51 
53 
     | 
    
         
             
                                    NULL);
         
     | 
| 
       52 
54 
     | 
    
         
             
                if (NIL_P(rb_recursive_p)) {
         
     | 
| 
       53 
55 
     | 
    
         
             
                    rb_recursive_p = Qtrue;
         
     | 
| 
       54 
56 
     | 
    
         
             
                }
         
     | 
| 
      
 57 
     | 
    
         
            +
                if (NIL_P(rb_dependent_p)) {
         
     | 
| 
      
 58 
     | 
    
         
            +
                    rb_dependent_p = Qfalse;
         
     | 
| 
      
 59 
     | 
    
         
            +
                }
         
     | 
| 
       55 
60 
     | 
    
         | 
| 
       56 
61 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       57 
62 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -63,6 +68,8 @@ rb_grn_flushable_flush (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       63 
68 
     | 
    
         | 
| 
       64 
69 
     | 
    
         
             
                if (RVAL2CBOOL(rb_recursive_p)) {
         
     | 
| 
       65 
70 
     | 
    
         
             
                    grn_obj_flush_recursive(context, object);
         
     | 
| 
      
 71 
     | 
    
         
            +
                } else if (RVAL2CBOOL(rb_dependent_p)) {
         
     | 
| 
      
 72 
     | 
    
         
            +
                    grn_obj_flush_recursive_dependent(context, object);
         
     | 
| 
       66 
73 
     | 
    
         
             
                } else {
         
     | 
| 
       67 
74 
     | 
    
         
             
                    grn_obj_flush(context, object);
         
     | 
| 
       68 
75 
     | 
    
         
             
                }
         
     | 
| 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
      
 3 
     | 
    
         
            +
              Copyright (C) 2019  Horimoto Yasuhiro <horimoto@clear-code.com>
         
     | 
| 
       3 
4 
     | 
    
         
             
              Copyright (C) 2009-2017  Kouhei Sutou <kou@clear-code.com>
         
     | 
| 
       4 
5 
     | 
    
         
             
              Copyright (C) 2016  Masafumi Yokoyama <yokoyama@clear-code.com>
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
         @@ -972,6 +973,31 @@ rb_grn_index_column_medium_p (VALUE self) 
     | 
|
| 
       972 
973 
     | 
    
         
             
                return CBOOL2RVAL(flags & GRN_OBJ_INDEX_MEDIUM);
         
     | 
| 
       973 
974 
     | 
    
         
             
            }
         
     | 
| 
       974 
975 
     | 
    
         | 
| 
      
 976 
     | 
    
         
            +
            /*
         
     | 
| 
      
 977 
     | 
    
         
            +
             * Checks whether the index column is large or not.
         
     | 
| 
      
 978 
     | 
    
         
            +
             *
         
     | 
| 
      
 979 
     | 
    
         
            +
             * @overload large?
         
     | 
| 
      
 980 
     | 
    
         
            +
             *   @return [Boolean] `true` if the index column size is large,
         
     | 
| 
      
 981 
     | 
    
         
            +
             *     `false` otherwise.
         
     | 
| 
      
 982 
     | 
    
         
            +
             *
         
     | 
| 
      
 983 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 984 
     | 
    
         
            +
             */
         
     | 
| 
      
 985 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 986 
     | 
    
         
            +
            rb_grn_index_column_large_p (VALUE self)
         
     | 
| 
      
 987 
     | 
    
         
            +
            {
         
     | 
| 
      
 988 
     | 
    
         
            +
                grn_obj *column;
         
     | 
| 
      
 989 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 990 
     | 
    
         
            +
                grn_column_flags flags;
         
     | 
| 
      
 991 
     | 
    
         
            +
             
     | 
| 
      
 992 
     | 
    
         
            +
                rb_grn_index_column_deconstruct(SELF(self), &column, &context,
         
     | 
| 
      
 993 
     | 
    
         
            +
                                                NULL, NULL,
         
     | 
| 
      
 994 
     | 
    
         
            +
                                                NULL, NULL, NULL, NULL, NULL,
         
     | 
| 
      
 995 
     | 
    
         
            +
                                                NULL, NULL);
         
     | 
| 
      
 996 
     | 
    
         
            +
             
     | 
| 
      
 997 
     | 
    
         
            +
                flags = grn_column_get_flags(context, column);
         
     | 
| 
      
 998 
     | 
    
         
            +
                return CBOOL2RVAL(flags & GRN_OBJ_INDEX_LARGE);
         
     | 
| 
      
 999 
     | 
    
         
            +
            }
         
     | 
| 
      
 1000 
     | 
    
         
            +
             
     | 
| 
       975 
1001 
     | 
    
         
             
            static VALUE
         
     | 
| 
       976 
1002 
     | 
    
         
             
            call_close (VALUE object)
         
     | 
| 
       977 
1003 
     | 
    
         
             
            {
         
     | 
| 
         @@ -1442,6 +1468,8 @@ rb_grn_init_index_column (VALUE mGrn) 
     | 
|
| 
       1442 
1468 
     | 
    
         
             
                                 rb_grn_index_column_small_p, 0);
         
     | 
| 
       1443 
1469 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "medium?",
         
     | 
| 
       1444 
1470 
     | 
    
         
             
                                 rb_grn_index_column_medium_p, 0);
         
     | 
| 
      
 1471 
     | 
    
         
            +
                rb_define_method(rb_cGrnIndexColumn, "large?",
         
     | 
| 
      
 1472 
     | 
    
         
            +
                                 rb_grn_index_column_large_p, 0);
         
     | 
| 
       1445 
1473 
     | 
    
         | 
| 
       1446 
1474 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexColumn, "open_cursor",
         
     | 
| 
       1447 
1475 
     | 
    
         
             
                                 rb_grn_index_column_open_cursor, -1);
         
     | 
| 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
3 
     | 
    
         
             
              Copyright (C) 2011  Haruka Yoshihara <yoshihara@clear-code.com>
         
     | 
| 
       4 
4 
     | 
    
         
             
              Copyright (C) 2012  Kouhei Sutou <kou@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
         
     | 
| 
         @@ -56,6 +57,19 @@ rb_grn_index_cursor_deconstruct (RbGrnIndexCursor *rb_grn_index_cursor, 
     | 
|
| 
       56 
57 
     | 
    
         
             
                                          range_id, range);
         
     | 
| 
       57 
58 
     | 
    
         
             
            }
         
     | 
| 
       58 
59 
     | 
    
         | 
| 
      
 60 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 61 
     | 
    
         
            +
            rb_grn_index_cursor_s_set_min_p (VALUE klass)
         
     | 
| 
      
 62 
     | 
    
         
            +
            {
         
     | 
| 
      
 63 
     | 
    
         
            +
                return CBOOL2RVAL(grn_ii_cursor_set_min_enable_get());
         
     | 
| 
      
 64 
     | 
    
         
            +
            }
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 67 
     | 
    
         
            +
            rb_grn_index_cursor_s_set_min_set (VALUE klass, VALUE enable)
         
     | 
| 
      
 68 
     | 
    
         
            +
            {
         
     | 
| 
      
 69 
     | 
    
         
            +
                grn_ii_cursor_set_min_enable_set(RVAL2CBOOL(enable));
         
     | 
| 
      
 70 
     | 
    
         
            +
                return enable;
         
     | 
| 
      
 71 
     | 
    
         
            +
            }
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
       59 
73 
     | 
    
         
             
            static VALUE
         
     | 
| 
       60 
74 
     | 
    
         
             
            next_value (VALUE rb_posting,
         
     | 
| 
       61 
75 
     | 
    
         
             
                        grn_ctx *context, grn_obj *cursor, VALUE rb_table, VALUE rb_lexicon)
         
     | 
| 
         @@ -158,6 +172,11 @@ rb_grn_init_index_cursor (VALUE mGrn) 
     | 
|
| 
       158 
172 
     | 
    
         
             
                rb_define_alloc_func(rb_cGrnIndexCursor, rb_grn_object_alloc);
         
     | 
| 
       159 
173 
     | 
    
         
             
                rb_include_module(rb_cGrnIndexCursor, rb_mEnumerable);
         
     | 
| 
       160 
174 
     | 
    
         | 
| 
      
 175 
     | 
    
         
            +
                rb_define_singleton_method(rb_cGrnIndexCursor, "set_min?",
         
     | 
| 
      
 176 
     | 
    
         
            +
                                           rb_grn_index_cursor_s_set_min_p, 0);
         
     | 
| 
      
 177 
     | 
    
         
            +
                rb_define_singleton_method(rb_cGrnIndexCursor, "set_min=",
         
     | 
| 
      
 178 
     | 
    
         
            +
                                           rb_grn_index_cursor_s_set_min_set, 1);
         
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
       161 
180 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexCursor, "next", rb_grn_index_cursor_next, 0);
         
     | 
| 
       162 
181 
     | 
    
         
             
                rb_define_method(rb_cGrnIndexCursor, "each", rb_grn_index_cursor_each, -1);
         
     | 
| 
       163 
182 
     | 
    
         
             
            }
         
     | 
    
        data/ext/groonga/rb-grn-logger.c
    CHANGED
    
    | 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
3 
     | 
    
         
             
              Copyright (C) 2009-2015  Kouhei Sutou <kou@clear-code.com>
         
     | 
| 
       4 
4 
     | 
    
         
             
              Copyright (C) 2016-2017  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
         
     | 
| 
         @@ -315,15 +316,23 @@ rb_grn_logger_fin (grn_ctx *ctx, void *user_data) 
     | 
|
| 
       315 
316 
     | 
    
         
             
             *     ログの発生元のプロセスIDとgroongaのソースコードのファイ
         
     | 
| 
       316 
317 
     | 
    
         
             
             *     ル名、行番号、関数名をブロックに渡したいなら +true+ を指
         
     | 
| 
       317 
318 
     | 
    
         
             
             *     定する。デフォルトでは渡す。
         
     | 
| 
      
 319 
     | 
    
         
            +
             *   @option options [Bool] :thread_id (true)
         
     | 
| 
      
 320 
     | 
    
         
            +
             *     Specifies whether `location` includes thread ID or not.
         
     | 
| 
       318 
321 
     | 
    
         
             
             */
         
     | 
| 
       319 
322 
     | 
    
         
             
            static VALUE
         
     | 
| 
       320 
323 
     | 
    
         
             
            rb_grn_logger_s_register (int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       321 
324 
     | 
    
         
             
            {
         
     | 
| 
       322 
325 
     | 
    
         
             
                VALUE rb_context = Qnil;
         
     | 
| 
       323 
326 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       324 
     | 
    
         
            -
                VALUE rb_logger 
     | 
| 
       325 
     | 
    
         
            -
                VALUE  
     | 
| 
       326 
     | 
    
         
            -
                VALUE  
     | 
| 
      
 327 
     | 
    
         
            +
                VALUE rb_logger;
         
     | 
| 
      
 328 
     | 
    
         
            +
                VALUE rb_callback;
         
     | 
| 
      
 329 
     | 
    
         
            +
                VALUE rb_options;
         
     | 
| 
      
 330 
     | 
    
         
            +
                VALUE rb_max_level;
         
     | 
| 
      
 331 
     | 
    
         
            +
                VALUE rb_time;
         
     | 
| 
      
 332 
     | 
    
         
            +
                VALUE rb_title;
         
     | 
| 
      
 333 
     | 
    
         
            +
                VALUE rb_message;
         
     | 
| 
      
 334 
     | 
    
         
            +
                VALUE rb_location;
         
     | 
| 
      
 335 
     | 
    
         
            +
                VALUE rb_thread_id;
         
     | 
| 
       327 
336 
     | 
    
         
             
                VALUE rb_flags;
         
     | 
| 
       328 
337 
     | 
    
         
             
                grn_log_level max_level = GRN_LOG_DEFAULT_LEVEL;
         
     | 
| 
       329 
338 
     | 
    
         
             
                int flags = 0;
         
     | 
| 
         @@ -343,6 +352,7 @@ rb_grn_logger_s_register (int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       343 
352 
     | 
    
         
             
                                    "title",     &rb_title,
         
     | 
| 
       344 
353 
     | 
    
         
             
                                    "message",   &rb_message,
         
     | 
| 
       345 
354 
     | 
    
         
             
                                    "location",  &rb_location,
         
     | 
| 
      
 355 
     | 
    
         
            +
                                    "thread_id", &rb_thread_id,
         
     | 
| 
       346 
356 
     | 
    
         
             
                                    "flags",     &rb_flags,
         
     | 
| 
       347 
357 
     | 
    
         
             
                                    NULL);
         
     | 
| 
       348 
358 
     | 
    
         
             
                if (!NIL_P(rb_max_level)) {
         
     | 
| 
         @@ -361,6 +371,9 @@ rb_grn_logger_s_register (int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       361 
371 
     | 
    
         
             
                if (NIL_P(rb_location) || CBOOL2RVAL(rb_location)) {
         
     | 
| 
       362 
372 
     | 
    
         
             
                    flags |= GRN_LOG_LOCATION;
         
     | 
| 
       363 
373 
     | 
    
         
             
                }
         
     | 
| 
      
 374 
     | 
    
         
            +
                if (NIL_P(rb_thread_id) || CBOOL2RVAL(rb_thread_id)) {
         
     | 
| 
      
 375 
     | 
    
         
            +
                    flags |= GRN_LOG_THREAD_ID;
         
     | 
| 
      
 376 
     | 
    
         
            +
                }
         
     | 
| 
       364 
377 
     | 
    
         
             
                if (!NIL_P(rb_flags)) {
         
     | 
| 
       365 
378 
     | 
    
         
             
                    flags = rb_funcall(rb_mGrnLoggerFlags, id_parse, 2,
         
     | 
| 
       366 
379 
     | 
    
         
             
                                       INT2NUM(flags), rb_flags);
         
     | 
| 
         @@ -693,6 +706,7 @@ rb_grn_init_logger (VALUE mGrn) 
     | 
|
| 
       693 
706 
     | 
    
         
             
                DEFINE_FLAG(MESSAGE);
         
     | 
| 
       694 
707 
     | 
    
         
             
                DEFINE_FLAG(LOCATION);
         
     | 
| 
       695 
708 
     | 
    
         
             
                DEFINE_FLAG(PID);
         
     | 
| 
      
 709 
     | 
    
         
            +
                DEFINE_FLAG(THREAD_ID);
         
     | 
| 
       696 
710 
     | 
    
         
             
            #undef DEFINE_FLAG
         
     | 
| 
       697 
711 
     | 
    
         | 
| 
       698 
712 
     | 
    
         
             
                rb_cGrnCallbackLogger =
         
     | 
    
        data/ext/groonga/rb-grn-object.c
    CHANGED
    
    | 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
3 
     | 
    
         
             
              Copyright (C) 2009-2018  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
         
     | 
| 
         @@ -939,6 +940,8 @@ rb_grn_object_inspect_content_flags_with_label (VALUE inspected, 
     | 
|
| 
       939 
940 
     | 
    
         
             
                        rb_ary_push(inspected_flags, rb_str_new_cstr("SMALL"));
         
     | 
| 
       940 
941 
     | 
    
         
             
                    if (column_flags & GRN_OBJ_INDEX_MEDIUM)
         
     | 
| 
       941 
942 
     | 
    
         
             
                        rb_ary_push(inspected_flags, rb_str_new_cstr("MEDIUM"));
         
     | 
| 
      
 943 
     | 
    
         
            +
                    if (column_flags & GRN_OBJ_INDEX_LARGE)
         
     | 
| 
      
 944 
     | 
    
         
            +
                        rb_ary_push(inspected_flags, rb_str_new_cstr("LARGE"));
         
     | 
| 
       942 
945 
     | 
    
         
             
                    break;
         
     | 
| 
       943 
946 
     | 
    
         
             
                default:
         
     | 
| 
       944 
947 
     | 
    
         
             
                    break;
         
     | 
| 
         @@ -1355,7 +1358,7 @@ rb_grn_object_array_reference (VALUE self, VALUE rb_id) 
     | 
|
| 
       1355 
1358 
     | 
    
         
             
                return rb_value;
         
     | 
| 
       1356 
1359 
     | 
    
         
             
            }
         
     | 
| 
       1357 
1360 
     | 
    
         | 
| 
       1358 
     | 
    
         
            -
            static  
     | 
| 
      
 1361 
     | 
    
         
            +
            static bool
         
     | 
| 
       1359 
1362 
     | 
    
         
             
            rb_uvector_value_p (RbGrnObject *rb_grn_object, VALUE rb_value)
         
     | 
| 
       1360 
1363 
     | 
    
         
             
            {
         
     | 
| 
       1361 
1364 
     | 
    
         
             
                VALUE first_element;
         
     | 
| 
         @@ -1363,7 +1366,7 @@ rb_uvector_value_p (RbGrnObject *rb_grn_object, VALUE rb_value) 
     | 
|
| 
       1363 
1366 
     | 
    
         
             
                switch (rb_grn_object->range->header.type) {
         
     | 
| 
       1364 
1367 
     | 
    
         
             
                  case GRN_TYPE:
         
     | 
| 
       1365 
1368 
     | 
    
         
             
                    if (!(rb_grn_object->range->header.flags & GRN_OBJ_KEY_VAR_SIZE)) {
         
     | 
| 
       1366 
     | 
    
         
            -
                        return  
     | 
| 
      
 1369 
     | 
    
         
            +
                        return true;
         
     | 
| 
       1367 
1370 
     | 
    
         
             
                    }
         
     | 
| 
       1368 
1371 
     | 
    
         
             
                    break;
         
     | 
| 
       1369 
1372 
     | 
    
         
             
                  case GRN_TABLE_HASH_KEY:
         
     | 
| 
         @@ -1379,7 +1382,7 @@ rb_uvector_value_p (RbGrnObject *rb_grn_object, VALUE rb_value) 
     | 
|
| 
       1379 
1382 
     | 
    
         
             
                    break;
         
     | 
| 
       1380 
1383 
     | 
    
         
             
                }
         
     | 
| 
       1381 
1384 
     | 
    
         | 
| 
       1382 
     | 
    
         
            -
                return  
     | 
| 
      
 1385 
     | 
    
         
            +
                return false;
         
     | 
| 
       1383 
1386 
     | 
    
         
             
            }
         
     | 
| 
       1384 
1387 
     | 
    
         | 
| 
       1385 
1388 
     | 
    
         
             
            typedef struct {
         
     | 
| 
         @@ -1527,7 +1530,7 @@ rb_grn_object_remove (int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       1527 
1530 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1528 
1531 
     | 
    
         
             
                VALUE rb_options;
         
     | 
| 
       1529 
1532 
     | 
    
         
             
                VALUE rb_dependent_p;
         
     | 
| 
       1530 
     | 
    
         
            -
                 
     | 
| 
      
 1533 
     | 
    
         
            +
                bool dependent_p = false;
         
     | 
| 
       1531 
1534 
     | 
    
         | 
| 
       1532 
1535 
     | 
    
         
             
                rb_grn_object = SELF(self);
         
     | 
| 
       1533 
1536 
     | 
    
         
             
                if (!rb_grn_object->object)
         
     | 
| 
         @@ -1560,7 +1563,7 @@ rb_grn_object_builtin_p (VALUE self) 
     | 
|
| 
       1560 
1563 
     | 
    
         
             
            {
         
     | 
| 
       1561 
1564 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1562 
1565 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1563 
     | 
    
         
            -
                 
     | 
| 
      
 1566 
     | 
    
         
            +
                bool builtin = false;
         
     | 
| 
       1564 
1567 
     | 
    
         | 
| 
       1565 
1568 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1566 
1569 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1585,7 +1588,7 @@ rb_grn_object_table_p (VALUE self) 
     | 
|
| 
       1585 
1588 
     | 
    
         
             
            {
         
     | 
| 
       1586 
1589 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1587 
1590 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1588 
     | 
    
         
            -
                 
     | 
| 
      
 1591 
     | 
    
         
            +
                bool table_p = false;
         
     | 
| 
       1589 
1592 
     | 
    
         | 
| 
       1590 
1593 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1591 
1594 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1610,7 +1613,7 @@ rb_grn_object_column_p (VALUE self) 
     | 
|
| 
       1610 
1613 
     | 
    
         
             
            {
         
     | 
| 
       1611 
1614 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1612 
1615 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1613 
     | 
    
         
            -
                 
     | 
| 
      
 1616 
     | 
    
         
            +
                bool column_p = false;
         
     | 
| 
       1614 
1617 
     | 
    
         | 
| 
       1615 
1618 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1616 
1619 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1636,7 +1639,7 @@ rb_grn_object_reference_column_p (VALUE self) 
     | 
|
| 
       1636 
1639 
     | 
    
         
             
            {
         
     | 
| 
       1637 
1640 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1638 
1641 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1639 
     | 
    
         
            -
                 
     | 
| 
      
 1642 
     | 
    
         
            +
                bool reference_column_p = false;
         
     | 
| 
       1640 
1643 
     | 
    
         | 
| 
       1641 
1644 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1642 
1645 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1662,7 +1665,7 @@ rb_grn_object_index_column_p (VALUE self) 
     | 
|
| 
       1662 
1665 
     | 
    
         
             
            {
         
     | 
| 
       1663 
1666 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1664 
1667 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1665 
     | 
    
         
            -
                 
     | 
| 
      
 1668 
     | 
    
         
            +
                bool index_column_p = false;
         
     | 
| 
       1666 
1669 
     | 
    
         | 
| 
       1667 
1670 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1668 
1671 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1687,7 +1690,7 @@ rb_grn_object_procedure_p (VALUE self) 
     | 
|
| 
       1687 
1690 
     | 
    
         
             
            {
         
     | 
| 
       1688 
1691 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1689 
1692 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1690 
     | 
    
         
            -
                 
     | 
| 
      
 1693 
     | 
    
         
            +
                bool procedure_p = false;
         
     | 
| 
       1691 
1694 
     | 
    
         | 
| 
       1692 
1695 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1693 
1696 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1713,7 +1716,7 @@ rb_grn_object_function_procedure_p (VALUE self) 
     | 
|
| 
       1713 
1716 
     | 
    
         
             
            {
         
     | 
| 
       1714 
1717 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1715 
1718 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1716 
     | 
    
         
            -
                 
     | 
| 
      
 1719 
     | 
    
         
            +
                bool function_procedure_p = false;
         
     | 
| 
       1717 
1720 
     | 
    
         | 
| 
       1718 
1721 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1719 
1722 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1739,7 +1742,7 @@ rb_grn_object_selector_procedure_p (VALUE self) 
     | 
|
| 
       1739 
1742 
     | 
    
         
             
            {
         
     | 
| 
       1740 
1743 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1741 
1744 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1742 
     | 
    
         
            -
                 
     | 
| 
      
 1745 
     | 
    
         
            +
                bool selector_procedure_p = false;
         
     | 
| 
       1743 
1746 
     | 
    
         | 
| 
       1744 
1747 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1745 
1748 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1765,7 +1768,7 @@ rb_grn_object_selector_only_procedure_p (VALUE self) 
     | 
|
| 
       1765 
1768 
     | 
    
         
             
            {
         
     | 
| 
       1766 
1769 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1767 
1770 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1768 
     | 
    
         
            -
                 
     | 
| 
      
 1771 
     | 
    
         
            +
                bool selector_only_procedure_p = false;
         
     | 
| 
       1769 
1772 
     | 
    
         | 
| 
       1770 
1773 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1771 
1774 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1791,7 +1794,7 @@ rb_grn_object_scorer_procedure_p (VALUE self) 
     | 
|
| 
       1791 
1794 
     | 
    
         
             
            {
         
     | 
| 
       1792 
1795 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1793 
1796 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1794 
     | 
    
         
            -
                 
     | 
| 
      
 1797 
     | 
    
         
            +
                bool scorer_procedure_p = false;
         
     | 
| 
       1795 
1798 
     | 
    
         | 
| 
       1796 
1799 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1797 
1800 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1817,7 +1820,7 @@ rb_grn_object_window_function_procedure_p (VALUE self) 
     | 
|
| 
       1817 
1820 
     | 
    
         
             
            {
         
     | 
| 
       1818 
1821 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1819 
1822 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1820 
     | 
    
         
            -
                 
     | 
| 
      
 1823 
     | 
    
         
            +
                bool window_function_procedure_p = false;
         
     | 
| 
       1821 
1824 
     | 
    
         | 
| 
       1822 
1825 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1823 
1826 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1844,7 +1847,7 @@ rb_grn_object_accessor_p (VALUE self) 
     | 
|
| 
       1844 
1847 
     | 
    
         
             
            {
         
     | 
| 
       1845 
1848 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1846 
1849 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1847 
     | 
    
         
            -
                 
     | 
| 
      
 1850 
     | 
    
         
            +
                bool accessor_p = false;
         
     | 
| 
       1848 
1851 
     | 
    
         | 
| 
       1849 
1852 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1850 
1853 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1857,7 +1860,7 @@ rb_grn_object_accessor_p (VALUE self) 
     | 
|
| 
       1857 
1860 
     | 
    
         
             
            }
         
     | 
| 
       1858 
1861 
     | 
    
         | 
| 
       1859 
1862 
     | 
    
         
             
            /*
         
     | 
| 
       1860 
     | 
    
         
            -
             * Checks whether the object is  
     | 
| 
      
 1863 
     | 
    
         
            +
             * Checks whether the object is an accessor for `_key` or not.
         
     | 
| 
       1861 
1864 
     | 
    
         
             
             *
         
     | 
| 
       1862 
1865 
     | 
    
         
             
             * @example `true` case: `column("_key")` is an accessor and it's an accessor for `_key`
         
     | 
| 
       1863 
1866 
     | 
    
         
             
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
         @@ -1880,7 +1883,7 @@ rb_grn_object_key_accessor_p (VALUE self) 
     | 
|
| 
       1880 
1883 
     | 
    
         
             
            {
         
     | 
| 
       1881 
1884 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1882 
1885 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1883 
     | 
    
         
            -
                 
     | 
| 
      
 1886 
     | 
    
         
            +
                bool key_accessor_p = false;
         
     | 
| 
       1884 
1887 
     | 
    
         | 
| 
       1885 
1888 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1886 
1889 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
         @@ -1892,6 +1895,153 @@ rb_grn_object_key_accessor_p (VALUE self) 
     | 
|
| 
       1892 
1895 
     | 
    
         
             
                return CBOOL2RVAL(key_accessor_p);
         
     | 
| 
       1893 
1896 
     | 
    
         
             
            }
         
     | 
| 
       1894 
1897 
     | 
    
         | 
| 
      
 1898 
     | 
    
         
            +
            /*
         
     | 
| 
      
 1899 
     | 
    
         
            +
             * Checks whether the object is an accessor for `_id` or not.
         
     | 
| 
      
 1900 
     | 
    
         
            +
             *
         
     | 
| 
      
 1901 
     | 
    
         
            +
             * @example `true` case: `column("_id")` is an accessor and it's an accessor for `_id`
         
     | 
| 
      
 1902 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 1903 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1904 
     | 
    
         
            +
             *   users.column("_id").id_accessor? # => true
         
     | 
| 
      
 1905 
     | 
    
         
            +
             *
         
     | 
| 
      
 1906 
     | 
    
         
            +
             * @example `false` case: `column("_key")` is an accessor but it's not an accessor for `_id`
         
     | 
| 
      
 1907 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 1908 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1909 
     | 
    
         
            +
             *   users.column("_key").id_accessor? # => false
         
     | 
| 
      
 1910 
     | 
    
         
            +
             *
         
     | 
| 
      
 1911 
     | 
    
         
            +
             * @overload id_accessor?
         
     | 
| 
      
 1912 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is an accessor for `_id`,
         
     | 
| 
      
 1913 
     | 
    
         
            +
             *     `false` otherwise.
         
     | 
| 
      
 1914 
     | 
    
         
            +
             *
         
     | 
| 
      
 1915 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 1916 
     | 
    
         
            +
             */
         
     | 
| 
      
 1917 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 1918 
     | 
    
         
            +
            rb_grn_object_id_accessor_p (VALUE self)
         
     | 
| 
      
 1919 
     | 
    
         
            +
            {
         
     | 
| 
      
 1920 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 1921 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 1922 
     | 
    
         
            +
                bool id_accessor_p = false;
         
     | 
| 
      
 1923 
     | 
    
         
            +
             
     | 
| 
      
 1924 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 1925 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 1926 
     | 
    
         
            +
             
     | 
| 
      
 1927 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 1928 
     | 
    
         
            +
                    id_accessor_p = grn_obj_is_id_accessor(context, object);
         
     | 
| 
      
 1929 
     | 
    
         
            +
                }
         
     | 
| 
      
 1930 
     | 
    
         
            +
             
     | 
| 
      
 1931 
     | 
    
         
            +
                return CBOOL2RVAL(id_accessor_p);
         
     | 
| 
      
 1932 
     | 
    
         
            +
            }
         
     | 
| 
      
 1933 
     | 
    
         
            +
             
     | 
| 
      
 1934 
     | 
    
         
            +
            /*
         
     | 
| 
      
 1935 
     | 
    
         
            +
             * Checks whether the object is an accessor for `_value` or not.
         
     | 
| 
      
 1936 
     | 
    
         
            +
             *
         
     | 
| 
      
 1937 
     | 
    
         
            +
             * @example `true` case: `column("_value")` is an accessor and it's an accessor for `_value`
         
     | 
| 
      
 1938 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users",
         
     | 
| 
      
 1939 
     | 
    
         
            +
             *                                :key_type => :short_text,
         
     | 
| 
      
 1940 
     | 
    
         
            +
             *                                :value_type => "UInt32")
         
     | 
| 
      
 1941 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1942 
     | 
    
         
            +
             *   users.column("_value").value_accessor? # => true
         
     | 
| 
      
 1943 
     | 
    
         
            +
             *
         
     | 
| 
      
 1944 
     | 
    
         
            +
             * @example `false` case: `column("_key")` is an accessor but it's not an accessor for `_value`
         
     | 
| 
      
 1945 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 1946 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1947 
     | 
    
         
            +
             *   users.column("_key").value_accessor? # => false
         
     | 
| 
      
 1948 
     | 
    
         
            +
             *
         
     | 
| 
      
 1949 
     | 
    
         
            +
             * @overload value_accessor?
         
     | 
| 
      
 1950 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is an accessor for `_value`,
         
     | 
| 
      
 1951 
     | 
    
         
            +
             *     `false` otherwise.
         
     | 
| 
      
 1952 
     | 
    
         
            +
             *
         
     | 
| 
      
 1953 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 1954 
     | 
    
         
            +
             */
         
     | 
| 
      
 1955 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 1956 
     | 
    
         
            +
            rb_grn_object_value_accessor_p (VALUE self)
         
     | 
| 
      
 1957 
     | 
    
         
            +
            {
         
     | 
| 
      
 1958 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 1959 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 1960 
     | 
    
         
            +
                bool value_accessor_p = false;
         
     | 
| 
      
 1961 
     | 
    
         
            +
             
     | 
| 
      
 1962 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 1963 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 1964 
     | 
    
         
            +
             
     | 
| 
      
 1965 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 1966 
     | 
    
         
            +
                    value_accessor_p = grn_obj_is_value_accessor(context, object);
         
     | 
| 
      
 1967 
     | 
    
         
            +
                }
         
     | 
| 
      
 1968 
     | 
    
         
            +
             
     | 
| 
      
 1969 
     | 
    
         
            +
                return CBOOL2RVAL(value_accessor_p);
         
     | 
| 
      
 1970 
     | 
    
         
            +
            }
         
     | 
| 
      
 1971 
     | 
    
         
            +
             
     | 
| 
      
 1972 
     | 
    
         
            +
            /*
         
     | 
| 
      
 1973 
     | 
    
         
            +
             * Checks whether the object is an accessor for `_socre` or not.
         
     | 
| 
      
 1974 
     | 
    
         
            +
             *
         
     | 
| 
      
 1975 
     | 
    
         
            +
             * @example `true` case: `column("_score")` is an accessor and it's an accessor for `_score`
         
     | 
| 
      
 1976 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 1977 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1978 
     | 
    
         
            +
             *   users.select.column("_score").socre_accessor? # => true
         
     | 
| 
      
 1979 
     | 
    
         
            +
             *
         
     | 
| 
      
 1980 
     | 
    
         
            +
             * @example `false` case: `column("_key")` is an accessor but it's not an accessor for `_score`
         
     | 
| 
      
 1981 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 1982 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 1983 
     | 
    
         
            +
             *   users.column("_key").score_accessor? # => false
         
     | 
| 
      
 1984 
     | 
    
         
            +
             *
         
     | 
| 
      
 1985 
     | 
    
         
            +
             * @overload score_accessor?
         
     | 
| 
      
 1986 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is an accessor for `_score`,
         
     | 
| 
      
 1987 
     | 
    
         
            +
             *     `false` otherwise.
         
     | 
| 
      
 1988 
     | 
    
         
            +
             *
         
     | 
| 
      
 1989 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 1990 
     | 
    
         
            +
             */
         
     | 
| 
      
 1991 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 1992 
     | 
    
         
            +
            rb_grn_object_score_accessor_p (VALUE self)
         
     | 
| 
      
 1993 
     | 
    
         
            +
            {
         
     | 
| 
      
 1994 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 1995 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 1996 
     | 
    
         
            +
                bool score_accessor_p = false;
         
     | 
| 
      
 1997 
     | 
    
         
            +
             
     | 
| 
      
 1998 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 1999 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 2000 
     | 
    
         
            +
             
     | 
| 
      
 2001 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2002 
     | 
    
         
            +
                    score_accessor_p = grn_obj_is_score_accessor(context, object);
         
     | 
| 
      
 2003 
     | 
    
         
            +
                }
         
     | 
| 
      
 2004 
     | 
    
         
            +
             
     | 
| 
      
 2005 
     | 
    
         
            +
                return CBOOL2RVAL(score_accessor_p);
         
     | 
| 
      
 2006 
     | 
    
         
            +
            }
         
     | 
| 
      
 2007 
     | 
    
         
            +
             
     | 
| 
      
 2008 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2009 
     | 
    
         
            +
             * Checks whether the object is an accessor for `_nsubrecs` or not.
         
     | 
| 
      
 2010 
     | 
    
         
            +
             *
         
     | 
| 
      
 2011 
     | 
    
         
            +
             * @example `true` case: `column("_nsubrecs")` is an accessor and it's an accessor for `_nsubrecs`
         
     | 
| 
      
 2012 
     | 
    
         
            +
             *   users = Groonga::Hash.create(:name => "Users",
         
     | 
| 
      
 2013 
     | 
    
         
            +
             *                                :key_type => "ShortText")
         
     | 
| 
      
 2014 
     | 
    
         
            +
             *   grouped_users = users.group("_key")
         
     | 
| 
      
 2015 
     | 
    
         
            +
             *   grouped_users.column("_nsubrecs").n_sub_records_accessor? # => true
         
     | 
| 
      
 2016 
     | 
    
         
            +
             *
         
     | 
| 
      
 2017 
     | 
    
         
            +
             * @example `false` case: `column("_key")` is an accessor but it's not an accessor for `_nsubrecs`
         
     | 
| 
      
 2018 
     | 
    
         
            +
             *   Groonga::Schema.create_table("Users", :key_type => :short_text)
         
     | 
| 
      
 2019 
     | 
    
         
            +
             *   users = Groonga["Users"]
         
     | 
| 
      
 2020 
     | 
    
         
            +
             *   users.column("_key").n_sub_records_accessor? # => false
         
     | 
| 
      
 2021 
     | 
    
         
            +
             *
         
     | 
| 
      
 2022 
     | 
    
         
            +
             * @overload n_sub_records_accessor?
         
     | 
| 
      
 2023 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is an accessor for `_nsubrecs`,
         
     | 
| 
      
 2024 
     | 
    
         
            +
             *     `false` otherwise.
         
     | 
| 
      
 2025 
     | 
    
         
            +
             *
         
     | 
| 
      
 2026 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 2027 
     | 
    
         
            +
             */
         
     | 
| 
      
 2028 
     | 
    
         
            +
            VALUE
         
     | 
| 
      
 2029 
     | 
    
         
            +
            rb_grn_object_n_sub_records_accessor_p (VALUE self)
         
     | 
| 
      
 2030 
     | 
    
         
            +
            {
         
     | 
| 
      
 2031 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 2032 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 2033 
     | 
    
         
            +
                bool n_sub_records_accessor_p = false;
         
     | 
| 
      
 2034 
     | 
    
         
            +
             
     | 
| 
      
 2035 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 2036 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 2037 
     | 
    
         
            +
             
     | 
| 
      
 2038 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2039 
     | 
    
         
            +
                    n_sub_records_accessor_p = grn_obj_is_nsubrecs_accessor(context, object);
         
     | 
| 
      
 2040 
     | 
    
         
            +
                }
         
     | 
| 
      
 2041 
     | 
    
         
            +
             
     | 
| 
      
 2042 
     | 
    
         
            +
                return CBOOL2RVAL(n_sub_records_accessor_p);
         
     | 
| 
      
 2043 
     | 
    
         
            +
            }
         
     | 
| 
      
 2044 
     | 
    
         
            +
             
     | 
| 
       1895 
2045 
     | 
    
         
             
            /*
         
     | 
| 
       1896 
2046 
     | 
    
         
             
             * Update the last modified time of the `object`. It's meaningful only
         
     | 
| 
       1897 
2047 
     | 
    
         
             
             * for persistent database, table and column.
         
     | 
| 
         @@ -1962,11 +2112,15 @@ rb_grn_object_dirty_p (VALUE self) 
     | 
|
| 
       1962 
2112 
     | 
    
         
             
            {
         
     | 
| 
       1963 
2113 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1964 
2114 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1965 
     | 
    
         
            -
                 
     | 
| 
      
 2115 
     | 
    
         
            +
                bool is_dirty = false;
         
     | 
| 
       1966 
2116 
     | 
    
         | 
| 
       1967 
2117 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1968 
2118 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
       1969 
     | 
    
         
            -
             
     | 
| 
      
 2119 
     | 
    
         
            +
             
     | 
| 
      
 2120 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2121 
     | 
    
         
            +
                    is_dirty = grn_obj_is_dirty(context, object);
         
     | 
| 
      
 2122 
     | 
    
         
            +
                }
         
     | 
| 
      
 2123 
     | 
    
         
            +
             
     | 
| 
       1970 
2124 
     | 
    
         
             
                return CBOOL2RVAL(is_dirty);
         
     | 
| 
       1971 
2125 
     | 
    
         
             
            }
         
     | 
| 
       1972 
2126 
     | 
    
         | 
| 
         @@ -1981,14 +2135,62 @@ rb_grn_object_corrupt_p (VALUE self) 
     | 
|
| 
       1981 
2135 
     | 
    
         
             
            {
         
     | 
| 
       1982 
2136 
     | 
    
         
             
                grn_ctx *context;
         
     | 
| 
       1983 
2137 
     | 
    
         
             
                grn_obj *object;
         
     | 
| 
       1984 
     | 
    
         
            -
                 
     | 
| 
      
 2138 
     | 
    
         
            +
                bool is_corrupt = false;
         
     | 
| 
       1985 
2139 
     | 
    
         | 
| 
       1986 
2140 
     | 
    
         
             
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
       1987 
2141 
     | 
    
         
             
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
       1988 
     | 
    
         
            -
             
     | 
| 
      
 2142 
     | 
    
         
            +
             
     | 
| 
      
 2143 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2144 
     | 
    
         
            +
                    is_corrupt = grn_obj_is_corrupt(context, object);
         
     | 
| 
      
 2145 
     | 
    
         
            +
                }
         
     | 
| 
      
 2146 
     | 
    
         
            +
             
     | 
| 
       1989 
2147 
     | 
    
         
             
                return CBOOL2RVAL(is_corrupt);
         
     | 
| 
       1990 
2148 
     | 
    
         
             
            }
         
     | 
| 
       1991 
2149 
     | 
    
         | 
| 
      
 2150 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2151 
     | 
    
         
            +
             * @overload lexicon?
         
     | 
| 
      
 2152 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is lexicon, `false` otherwise.
         
     | 
| 
      
 2153 
     | 
    
         
            +
             *
         
     | 
| 
      
 2154 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 2155 
     | 
    
         
            +
             */
         
     | 
| 
      
 2156 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 2157 
     | 
    
         
            +
            rb_grn_object_lexicon_p (VALUE self)
         
     | 
| 
      
 2158 
     | 
    
         
            +
            {
         
     | 
| 
      
 2159 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 2160 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 2161 
     | 
    
         
            +
                bool is_lexicon = false;
         
     | 
| 
      
 2162 
     | 
    
         
            +
             
     | 
| 
      
 2163 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 2164 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 2165 
     | 
    
         
            +
             
     | 
| 
      
 2166 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2167 
     | 
    
         
            +
                    is_lexicon = grn_obj_is_lexicon(context, object);
         
     | 
| 
      
 2168 
     | 
    
         
            +
                }
         
     | 
| 
      
 2169 
     | 
    
         
            +
             
     | 
| 
      
 2170 
     | 
    
         
            +
                return CBOOL2RVAL(is_lexicon);
         
     | 
| 
      
 2171 
     | 
    
         
            +
            }
         
     | 
| 
      
 2172 
     | 
    
         
            +
             
     | 
| 
      
 2173 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2174 
     | 
    
         
            +
             * @overload bulk?
         
     | 
| 
      
 2175 
     | 
    
         
            +
             *   @return [Boolean] `true` if the object is bulk, `false` otherwise.
         
     | 
| 
      
 2176 
     | 
    
         
            +
             *
         
     | 
| 
      
 2177 
     | 
    
         
            +
             * @since 9.0.4
         
     | 
| 
      
 2178 
     | 
    
         
            +
             */
         
     | 
| 
      
 2179 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 2180 
     | 
    
         
            +
            rb_grn_object_bulk_p (VALUE self)
         
     | 
| 
      
 2181 
     | 
    
         
            +
            {
         
     | 
| 
      
 2182 
     | 
    
         
            +
                grn_ctx *context;
         
     | 
| 
      
 2183 
     | 
    
         
            +
                grn_obj *object;
         
     | 
| 
      
 2184 
     | 
    
         
            +
                bool is_bulk = false;
         
     | 
| 
      
 2185 
     | 
    
         
            +
             
     | 
| 
      
 2186 
     | 
    
         
            +
                rb_grn_object_deconstruct(SELF(self), &object, &context,
         
     | 
| 
      
 2187 
     | 
    
         
            +
                                          NULL, NULL, NULL, NULL);
         
     | 
| 
      
 2188 
     | 
    
         
            +
                if (context && object) {
         
     | 
| 
      
 2189 
     | 
    
         
            +
                    is_bulk = grn_obj_is_bulk(context, object);
         
     | 
| 
      
 2190 
     | 
    
         
            +
                }
         
     | 
| 
      
 2191 
     | 
    
         
            +
                return CBOOL2RVAL(is_bulk);
         
     | 
| 
      
 2192 
     | 
    
         
            +
            }
         
     | 
| 
      
 2193 
     | 
    
         
            +
             
     | 
| 
       1992 
2194 
     | 
    
         
             
            /*
         
     | 
| 
       1993 
2195 
     | 
    
         
             
             * @overload disk_usage
         
     | 
| 
       1994 
2196 
     | 
    
         
             
             *   @return [Integer] The number of bytes used by this object in disk.
         
     | 
| 
         @@ -2064,6 +2266,14 @@ rb_grn_init_object (VALUE mGrn) 
     | 
|
| 
       2064 
2266 
     | 
    
         
             
                                 rb_grn_object_accessor_p, 0);
         
     | 
| 
       2065 
2267 
     | 
    
         
             
                rb_define_method(rb_cGrnObject, "key_accessor?",
         
     | 
| 
       2066 
2268 
     | 
    
         
             
                                 rb_grn_object_key_accessor_p, 0);
         
     | 
| 
      
 2269 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "id_accessor?",
         
     | 
| 
      
 2270 
     | 
    
         
            +
                                 rb_grn_object_id_accessor_p, 0);
         
     | 
| 
      
 2271 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "value_accessor?",
         
     | 
| 
      
 2272 
     | 
    
         
            +
                                 rb_grn_object_value_accessor_p, 0);
         
     | 
| 
      
 2273 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "score_accessor?",
         
     | 
| 
      
 2274 
     | 
    
         
            +
                                 rb_grn_object_score_accessor_p, 0);
         
     | 
| 
      
 2275 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "n_sub_records_accessor?",
         
     | 
| 
      
 2276 
     | 
    
         
            +
                                 rb_grn_object_n_sub_records_accessor_p, 0);
         
     | 
| 
       2067 
2277 
     | 
    
         | 
| 
       2068 
2278 
     | 
    
         
             
                rb_define_method(rb_cGrnObject, "touch", rb_grn_object_touch, -1);
         
     | 
| 
       2069 
2279 
     | 
    
         
             
                rb_define_method(rb_cGrnObject, "last_modified",
         
     | 
| 
         @@ -2072,6 +2282,10 @@ rb_grn_init_object (VALUE mGrn) 
     | 
|
| 
       2072 
2282 
     | 
    
         
             
                                 rb_grn_object_dirty_p, 0);
         
     | 
| 
       2073 
2283 
     | 
    
         
             
                rb_define_method(rb_cGrnObject, "corrupt?",
         
     | 
| 
       2074 
2284 
     | 
    
         
             
                                 rb_grn_object_corrupt_p, 0);
         
     | 
| 
      
 2285 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "lexicon?",
         
     | 
| 
      
 2286 
     | 
    
         
            +
                                 rb_grn_object_lexicon_p, 0);
         
     | 
| 
      
 2287 
     | 
    
         
            +
                rb_define_method(rb_cGrnObject, "bulk?",
         
     | 
| 
      
 2288 
     | 
    
         
            +
                                 rb_grn_object_bulk_p, 0);
         
     | 
| 
       2075 
2289 
     | 
    
         | 
| 
       2076 
2290 
     | 
    
         
             
                rb_define_method(rb_cGrnObject, "disk_usage",
         
     | 
| 
       2077 
2291 
     | 
    
         
             
                                 rb_grn_object_get_disk_usage, 0);
         
     |