groonga 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/NEWS.ja.rdoc +11 -0
- data/NEWS.rdoc +11 -0
- data/README.ja.rdoc +4 -3
- data/README.rdoc +4 -3
- data/Rakefile +1 -1
- data/TUTORIAL.ja.rdoc +168 -44
- data/benchmark/common.rb +49 -0
- data/benchmark/read-write-small-many-items.rb +156 -0
- data/benchmark/write-small-many-items.rb +145 -0
- data/example/bookmark.rb +68 -20
- data/ext/rb-grn-array-cursor.c +8 -0
- data/ext/rb-grn-array.c +40 -11
- data/ext/rb-grn-column.c +38 -209
- data/ext/rb-grn-context.c +203 -56
- data/ext/rb-grn-database.c +119 -5
- data/ext/rb-grn-encoding-support.c +64 -0
- data/ext/rb-grn-encoding.c +58 -1
- data/ext/rb-grn-fix-size-column.c +220 -0
- data/ext/rb-grn-hash-cursor.c +8 -0
- data/ext/rb-grn-hash.c +244 -2
- data/ext/rb-grn-index-column.c +474 -0
- data/ext/rb-grn-object.c +143 -265
- data/ext/rb-grn-patricia-trie.c +148 -2
- data/ext/rb-grn-query.c +5 -3
- data/ext/rb-grn-record.c +3 -2
- data/ext/rb-grn-snippet.c +5 -3
- data/ext/rb-grn-table-cursor-key-support.c +3 -3
- data/ext/rb-grn-table-cursor.c +106 -112
- data/ext/rb-grn-table-key-support.c +220 -118
- data/ext/rb-grn-table.c +336 -80
- data/ext/rb-grn-type.c +5 -4
- data/ext/rb-grn-utils.c +62 -63
- data/ext/rb-grn.h +215 -14
- data/ext/rb-groonga.c +7 -16
- data/extconf.rb +3 -1
- data/html/favicon.ico +0 -0
- data/html/favicon.xcf +0 -0
- data/html/index.html +1 -7
- data/lib/groonga/record.rb +6 -1
- data/test/groonga-test-utils.rb +1 -0
- data/test/test-array.rb +81 -0
- data/test/test-column.rb +22 -12
- data/test/test-context.rb +1 -29
- data/test/test-database.rb +30 -0
- data/test/test-hash.rb +194 -0
- data/test/test-index-column.rb +57 -0
- data/test/test-patricia-trie.rb +82 -0
- data/test/test-record.rb +10 -10
- data/test/test-table.rb +37 -130
- data/test/test-type.rb +4 -3
- metadata +15 -4
- data/benchmark/small-many-items.rb +0 -175
@@ -18,95 +18,188 @@
|
|
18
18
|
|
19
19
|
#include "rb-grn.h"
|
20
20
|
|
21
|
-
#define SELF(object
|
21
|
+
#define SELF(object) ((RbGrnTableKeySupport *)DATA_PTR(object))
|
22
22
|
|
23
23
|
VALUE rb_mGrnTableKeySupport;
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
void
|
26
|
+
rb_grn_table_key_support_deconstruct (RbGrnTableKeySupport *rb_grn_table_key_support,
|
27
|
+
grn_obj **table_key_support,
|
28
|
+
grn_ctx **context,
|
29
|
+
grn_obj **key,
|
30
|
+
grn_id *domain_id,
|
31
|
+
grn_obj **domain,
|
32
|
+
grn_obj **value,
|
33
|
+
grn_id *range_id,
|
34
|
+
grn_obj **range)
|
35
|
+
{
|
36
|
+
RbGrnTable *rb_grn_table;
|
28
37
|
|
29
|
-
|
30
|
-
|
31
|
-
|
38
|
+
rb_grn_table = RB_GRN_TABLE(rb_grn_table_key_support);
|
39
|
+
|
40
|
+
rb_grn_table_deconstruct(rb_grn_table, table_key_support, context,
|
41
|
+
domain_id, domain,
|
42
|
+
value, range_id, range);
|
43
|
+
|
44
|
+
if (key)
|
45
|
+
*key = rb_grn_table_key_support->key;
|
46
|
+
}
|
47
|
+
|
48
|
+
static void
|
49
|
+
rb_grn_table_key_support_free (void *object)
|
32
50
|
{
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
RVAL2GRNKEY(rb_key, context, &key, table->header.domain, self);
|
39
|
-
flags = GRN_SEARCH_EXACT | GRN_TABLE_ADD;
|
40
|
-
id = grn_table_lookup(context, table,
|
41
|
-
GRN_BULK_HEAD(&key), GRN_BULK_VSIZE(&key),
|
42
|
-
&flags);
|
43
|
-
exception = rb_grn_context_to_exception(context, self);
|
44
|
-
grn_obj_close(context, &key);
|
45
|
-
if (!NIL_P(exception))
|
46
|
-
rb_exc_raise(exception);
|
51
|
+
RbGrnObject *rb_grn_object = object;
|
52
|
+
RbGrnTable *rb_grn_table = object;
|
53
|
+
RbGrnTableKeySupport *rb_grn_table_key_support = object;
|
54
|
+
grn_ctx *context;
|
47
55
|
|
48
|
-
|
56
|
+
context = rb_grn_object->context;
|
57
|
+
if (context)
|
58
|
+
grn_obj_close(context, rb_grn_table_key_support->key);
|
59
|
+
|
60
|
+
rb_grn_table_unbind(rb_grn_table);
|
61
|
+
|
62
|
+
xfree(rb_grn_table_key_support);
|
63
|
+
}
|
64
|
+
|
65
|
+
VALUE
|
66
|
+
rb_grn_table_key_support_alloc (VALUE klass)
|
67
|
+
{
|
68
|
+
return Data_Wrap_Struct(klass, NULL, rb_grn_table_key_support_free, NULL);
|
69
|
+
}
|
70
|
+
|
71
|
+
void
|
72
|
+
rb_grn_table_key_support_bind (RbGrnTableKeySupport *rb_grn_table_key_support,
|
73
|
+
grn_ctx *context,
|
74
|
+
grn_obj *table_key_support,
|
75
|
+
rb_grn_boolean owner)
|
76
|
+
{
|
77
|
+
RbGrnObject *rb_grn_object;
|
78
|
+
RbGrnTable *rb_grn_table;
|
79
|
+
|
80
|
+
rb_grn_object = RB_GRN_OBJECT(rb_grn_table_key_support);
|
81
|
+
|
82
|
+
rb_grn_table = RB_GRN_TABLE(rb_grn_table_key_support);
|
83
|
+
rb_grn_table_bind(rb_grn_table, context, table_key_support, owner);
|
84
|
+
|
85
|
+
rb_grn_table_key_support->key =
|
86
|
+
grn_obj_open(context, GRN_BULK, 0, rb_grn_object->domain_id);
|
87
|
+
}
|
88
|
+
|
89
|
+
void
|
90
|
+
rb_grn_table_key_support_assign (VALUE self, VALUE rb_context,
|
91
|
+
grn_ctx *context,
|
92
|
+
grn_obj *table_key_support,
|
93
|
+
rb_grn_boolean owner)
|
94
|
+
{
|
95
|
+
RbGrnTableKeySupport *rb_grn_table_key_support;
|
96
|
+
|
97
|
+
rb_grn_table_key_support = ALLOC(RbGrnTableKeySupport);
|
98
|
+
DATA_PTR(self) = rb_grn_table_key_support;
|
99
|
+
|
100
|
+
rb_grn_table_key_support_bind(rb_grn_table_key_support,
|
101
|
+
context, table_key_support, owner);
|
102
|
+
|
103
|
+
rb_iv_set(self, "context", rb_context);
|
49
104
|
}
|
50
105
|
|
51
106
|
static VALUE
|
52
|
-
|
107
|
+
rb_grn_table_key_support_initialize (int argc, VALUE *argv, VALUE self)
|
53
108
|
{
|
54
109
|
grn_ctx *context = NULL;
|
55
110
|
grn_obj *table;
|
56
|
-
|
111
|
+
VALUE rb_context;
|
112
|
+
|
113
|
+
table = rb_grn_table_open_raw(argc, argv, &context, &rb_context);
|
114
|
+
rb_grn_context_check(context, self);
|
115
|
+
rb_grn_table_key_support_assign(self, rb_context, context,
|
116
|
+
table, RB_GRN_TRUE);
|
117
|
+
|
118
|
+
return Qnil;
|
119
|
+
}
|
120
|
+
|
121
|
+
static grn_id
|
122
|
+
rb_grn_table_key_support_add_raw (VALUE self, VALUE rb_key)
|
123
|
+
{
|
124
|
+
grn_ctx *context;
|
125
|
+
grn_obj *table;
|
126
|
+
grn_id id, domain_id;
|
127
|
+
grn_obj *key, *domain;
|
57
128
|
|
58
|
-
|
129
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
130
|
+
&key, &domain_id, &domain,
|
131
|
+
NULL, NULL, NULL);
|
59
132
|
|
60
|
-
|
133
|
+
GRN_BULK_REWIND(key);
|
134
|
+
RVAL2GRNKEY(rb_key, context, key, domain_id, domain, self);
|
135
|
+
id = grn_table_add(context, table,
|
136
|
+
GRN_BULK_HEAD(key), GRN_BULK_VSIZE(key), NULL);
|
137
|
+
rb_grn_context_check(context, self);
|
138
|
+
|
139
|
+
return id;
|
140
|
+
}
|
141
|
+
|
142
|
+
static VALUE
|
143
|
+
rb_grn_table_key_support_add (int argc, VALUE *argv, VALUE self)
|
144
|
+
{
|
145
|
+
grn_id id;
|
146
|
+
VALUE key, values;
|
147
|
+
|
148
|
+
rb_scan_args(argc, argv, "11", &key, &values);
|
149
|
+
id = rb_grn_table_key_support_add_raw(self, key);
|
61
150
|
if (GRN_ID_NIL == id)
|
62
151
|
return Qnil;
|
63
152
|
else
|
64
|
-
return rb_grn_record_new(self, id);
|
153
|
+
return rb_grn_record_new(self, id, values);
|
65
154
|
}
|
66
155
|
|
67
156
|
static VALUE
|
68
157
|
rb_grn_table_key_support_get_key (VALUE self, VALUE rb_id)
|
69
158
|
{
|
70
|
-
grn_ctx *context
|
159
|
+
grn_ctx *context;
|
160
|
+
grn_obj *table, *key;
|
71
161
|
grn_id id;
|
72
|
-
|
73
|
-
int key_size = 0;
|
162
|
+
int key_size;
|
74
163
|
VALUE rb_key;
|
75
164
|
|
76
|
-
|
165
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
166
|
+
&key, NULL, NULL,
|
167
|
+
NULL, NULL, NULL);
|
77
168
|
|
78
169
|
id = NUM2UINT(rb_id);
|
79
|
-
|
170
|
+
GRN_BULK_REWIND(key);
|
171
|
+
key_size = grn_table_get_key(context, table, id,
|
172
|
+
GRN_BULK_HEAD(key), GRN_BULK_VSIZE(key));
|
80
173
|
if (key_size == 0)
|
81
174
|
return Qnil;
|
82
175
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
grn_obj_close(context, &key);
|
176
|
+
if (GRN_BULK_VSIZE(key) < key_size) {
|
177
|
+
grn_bulk_reserve(context, key, key_size);
|
178
|
+
grn_table_get_key(context, table, id, GRN_BULK_HEAD(key), key_size);
|
179
|
+
}
|
88
180
|
|
181
|
+
rb_key = GRNKEY2RVAL(context, GRN_BULK_HEAD(key), key_size, table, self);
|
89
182
|
return rb_key;
|
90
183
|
}
|
91
184
|
|
92
185
|
static VALUE
|
93
186
|
rb_grn_table_key_support_delete_by_key (VALUE self, VALUE rb_key)
|
94
187
|
{
|
95
|
-
|
96
|
-
grn_ctx *context = NULL;
|
188
|
+
grn_ctx *context;
|
97
189
|
grn_obj *table;
|
98
|
-
|
190
|
+
grn_id domain_id;
|
191
|
+
grn_obj *key, *domain;
|
99
192
|
grn_rc rc;
|
100
193
|
|
101
|
-
|
194
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
195
|
+
&key, &domain_id, &domain,
|
196
|
+
NULL, NULL, NULL);
|
102
197
|
|
103
|
-
|
198
|
+
GRN_BULK_REWIND(key);
|
199
|
+
RVAL2GRNKEY(rb_key, context, key, domain_id, domain, self);
|
104
200
|
rc = grn_table_delete(context, table,
|
105
|
-
GRN_BULK_HEAD(
|
106
|
-
|
107
|
-
grn_obj_close(context, &key);
|
108
|
-
if (!NIL_P(exception))
|
109
|
-
rb_exc_raise(exception);
|
201
|
+
GRN_BULK_HEAD(key), GRN_BULK_VSIZE(key));
|
202
|
+
rb_grn_context_check(context, self);
|
110
203
|
rb_grn_rc_check(rc, self);
|
111
204
|
|
112
205
|
return Qnil;
|
@@ -116,88 +209,110 @@ static VALUE
|
|
116
209
|
rb_grn_table_key_support_delete (VALUE self, VALUE rb_id_or_key)
|
117
210
|
{
|
118
211
|
if (FIXNUM_P(rb_id_or_key)) {
|
119
|
-
|
120
|
-
VALUE argv[1];
|
121
|
-
argv[0] = rb_id_or_key;
|
122
|
-
return rb_call_super(argc, argv);
|
212
|
+
return rb_grn_table_delete(self, rb_id_or_key);
|
123
213
|
} else {
|
124
214
|
return rb_grn_table_key_support_delete_by_key(self, rb_id_or_key);
|
125
215
|
}
|
126
216
|
}
|
127
217
|
|
218
|
+
grn_id
|
219
|
+
rb_grn_table_key_support_get (VALUE self, VALUE rb_key)
|
220
|
+
{
|
221
|
+
grn_ctx *context;
|
222
|
+
grn_obj *table, *key, *domain;
|
223
|
+
grn_id id, domain_id;
|
224
|
+
|
225
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
226
|
+
&key, &domain_id, &domain,
|
227
|
+
NULL, NULL, NULL);
|
228
|
+
|
229
|
+
GRN_BULK_REWIND(key);
|
230
|
+
RVAL2GRNKEY(rb_key, context, key, domain_id, domain, self);
|
231
|
+
id = grn_table_get(context, table,
|
232
|
+
GRN_BULK_HEAD(key), GRN_BULK_VSIZE(key));
|
233
|
+
rb_grn_context_check(context, self);
|
234
|
+
|
235
|
+
return id;
|
236
|
+
}
|
237
|
+
|
128
238
|
static VALUE
|
129
|
-
|
239
|
+
rb_grn_table_key_support_find (VALUE self, VALUE rb_key)
|
130
240
|
{
|
131
|
-
VALUE exception;
|
132
|
-
grn_ctx *context = NULL;
|
133
|
-
grn_obj *table;
|
134
|
-
grn_obj key;
|
135
241
|
grn_id id;
|
136
|
-
grn_search_flags flags = 0;
|
137
242
|
|
138
|
-
|
243
|
+
id = rb_grn_table_key_support_get(self, rb_key);
|
139
244
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
245
|
+
if (id == GRN_ID_NIL)
|
246
|
+
return Qnil;
|
247
|
+
else
|
248
|
+
return rb_grn_record_new(self, id, Qnil);
|
249
|
+
}
|
250
|
+
|
251
|
+
static VALUE
|
252
|
+
rb_grn_table_key_support_array_reference_by_key (VALUE self, VALUE rb_key)
|
253
|
+
{
|
254
|
+
grn_ctx *context;
|
255
|
+
grn_obj *table, *value, *range;
|
256
|
+
grn_id id;
|
257
|
+
|
258
|
+
id = rb_grn_table_key_support_get(self, rb_key);
|
149
259
|
|
150
260
|
if (id == GRN_ID_NIL)
|
151
261
|
return Qnil;
|
262
|
+
|
263
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
264
|
+
NULL, NULL, NULL,
|
265
|
+
&value, NULL, &range);
|
266
|
+
GRN_BULK_REWIND(value);
|
267
|
+
grn_obj_get_value(context, table, id, value);
|
268
|
+
rb_grn_context_check(context, self);
|
269
|
+
|
270
|
+
if (GRN_BULK_EMPTYP(value))
|
271
|
+
return Qnil;
|
152
272
|
else
|
153
|
-
return
|
273
|
+
return rb_str_new(GRN_BULK_HEAD(value), GRN_BULK_VSIZE(value));
|
154
274
|
}
|
155
275
|
|
156
276
|
static VALUE
|
157
277
|
rb_grn_table_key_support_array_reference (VALUE self, VALUE rb_id_or_key)
|
158
278
|
{
|
159
279
|
if (FIXNUM_P(rb_id_or_key)) {
|
160
|
-
|
161
|
-
VALUE argv[1];
|
162
|
-
argv[0] = rb_id_or_key;
|
163
|
-
return rb_call_super(argc, argv);
|
280
|
+
return rb_grn_table_array_reference(self, rb_id_or_key);
|
164
281
|
} else {
|
165
282
|
return rb_grn_table_key_support_array_reference_by_key(self,
|
166
283
|
rb_id_or_key);
|
167
284
|
}
|
168
285
|
}
|
169
286
|
|
170
|
-
|
171
287
|
static VALUE
|
172
288
|
rb_grn_table_key_support_array_set_by_key (VALUE self,
|
173
289
|
VALUE rb_key, VALUE rb_value)
|
174
290
|
{
|
175
|
-
|
176
|
-
grn_ctx *context = NULL;
|
291
|
+
grn_ctx *context;
|
177
292
|
grn_obj *table;
|
178
293
|
grn_id id;
|
179
|
-
grn_obj value;
|
294
|
+
grn_obj *value;
|
180
295
|
grn_rc rc;
|
181
296
|
|
182
|
-
table = SELF(self, &context);
|
183
|
-
|
184
297
|
if (NIL_P(rb_key))
|
185
298
|
rb_raise(rb_eArgError, "key should not be nil: <%s>",
|
186
299
|
rb_grn_inspect(self));
|
187
300
|
|
188
|
-
|
301
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
302
|
+
NULL, NULL, NULL,
|
303
|
+
&value, NULL, NULL);
|
304
|
+
|
305
|
+
id = rb_grn_table_key_support_add_raw(self, rb_key);
|
189
306
|
if (GRN_ID_NIL == id)
|
190
307
|
rb_raise(rb_eGrnError,
|
191
308
|
"failed to add new record with key: <%s>: <%s>",
|
192
309
|
rb_grn_inspect(rb_key),
|
193
310
|
rb_grn_inspect(self));
|
194
311
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
if (!NIL_P(exception))
|
200
|
-
rb_exc_raise(exception);
|
312
|
+
GRN_BULK_REWIND(value);
|
313
|
+
RVAL2GRNBULK(rb_value, context, value);
|
314
|
+
rc = grn_obj_set_value(context, table, id, value, GRN_OBJ_SET);
|
315
|
+
rb_grn_context_check(context, self);
|
201
316
|
rb_grn_rc_check(rc, self);
|
202
317
|
|
203
318
|
return rb_value;
|
@@ -208,11 +323,7 @@ rb_grn_table_key_support_array_set (VALUE self,
|
|
208
323
|
VALUE rb_id_or_key, VALUE rb_value)
|
209
324
|
{
|
210
325
|
if (FIXNUM_P(rb_id_or_key)) {
|
211
|
-
|
212
|
-
VALUE argv[2];
|
213
|
-
argv[0] = rb_id_or_key;
|
214
|
-
argv[1] = rb_value;
|
215
|
-
return rb_call_super(argc, argv);
|
326
|
+
return rb_grn_table_array_set(self, rb_id_or_key, rb_value);
|
216
327
|
} else {
|
217
328
|
return rb_grn_table_key_support_array_set_by_key(self,
|
218
329
|
rb_id_or_key,
|
@@ -220,34 +331,20 @@ rb_grn_table_key_support_array_set (VALUE self,
|
|
220
331
|
}
|
221
332
|
}
|
222
333
|
|
223
|
-
static VALUE
|
224
|
-
rb_grn_table_key_support_get_encoding (VALUE self)
|
225
|
-
{
|
226
|
-
grn_ctx *context = NULL;
|
227
|
-
grn_obj *table;
|
228
|
-
grn_encoding encoding;
|
229
|
-
grn_rc rc;
|
230
|
-
|
231
|
-
table = SELF(self, &context);
|
232
|
-
rc = grn_table_get_info(context, table, NULL, &encoding, NULL);
|
233
|
-
rb_grn_context_check(context, self);
|
234
|
-
rb_grn_rc_check(rc, self);
|
235
|
-
|
236
|
-
return GRNENCODING2RVAL(encoding);
|
237
|
-
}
|
238
|
-
|
239
334
|
static VALUE
|
240
335
|
rb_grn_table_key_support_get_default_tokenizer (VALUE self)
|
241
336
|
{
|
242
337
|
grn_ctx *context = NULL;
|
243
338
|
grn_obj *table;
|
244
|
-
grn_obj *tokenizer;
|
245
|
-
|
339
|
+
grn_obj *tokenizer = NULL;
|
340
|
+
|
341
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
342
|
+
NULL, NULL, NULL,
|
343
|
+
NULL, NULL, NULL);
|
246
344
|
|
247
|
-
|
248
|
-
|
345
|
+
tokenizer = grn_obj_get_info(context, table, GRN_INFO_DEFAULT_TOKENIZER,
|
346
|
+
NULL);
|
249
347
|
rb_grn_context_check(context, self);
|
250
|
-
rb_grn_rc_check(rc, self);
|
251
348
|
|
252
349
|
return GRNOBJECT2RVAL(Qnil, context, tokenizer, RB_GRN_FALSE);
|
253
350
|
}
|
@@ -255,12 +352,15 @@ rb_grn_table_key_support_get_default_tokenizer (VALUE self)
|
|
255
352
|
static VALUE
|
256
353
|
rb_grn_table_key_support_set_default_tokenizer (VALUE self, VALUE rb_tokenizer)
|
257
354
|
{
|
258
|
-
grn_ctx *context
|
355
|
+
grn_ctx *context;
|
259
356
|
grn_obj *table;
|
260
357
|
grn_obj *tokenizer;
|
261
358
|
grn_rc rc;
|
262
359
|
|
263
|
-
|
360
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
361
|
+
NULL, NULL, NULL,
|
362
|
+
NULL, NULL, NULL);
|
363
|
+
|
264
364
|
tokenizer = RVAL2GRNOBJECT(rb_tokenizer, &context);
|
265
365
|
rc = grn_obj_set_info(context, table,
|
266
366
|
GRN_INFO_DEFAULT_TOKENIZER, tokenizer);
|
@@ -274,26 +374,28 @@ void
|
|
274
374
|
rb_grn_init_table_key_support (VALUE mGrn)
|
275
375
|
{
|
276
376
|
rb_mGrnTableKeySupport = rb_define_module_under(rb_cGrnTable, "KeySupport");
|
377
|
+
rb_include_module(rb_mGrnTableKeySupport, rb_mGrnEncodingSupport);
|
378
|
+
|
379
|
+
rb_define_method(rb_mGrnTableKeySupport, "initialize",
|
380
|
+
rb_grn_table_key_support_initialize, -1);
|
277
381
|
|
278
382
|
rb_define_method(rb_mGrnTableKeySupport, "add",
|
279
|
-
rb_grn_table_key_support_add, 1);
|
383
|
+
rb_grn_table_key_support_add, -1);
|
280
384
|
rb_define_method(rb_mGrnTableKeySupport, "key",
|
281
385
|
rb_grn_table_key_support_get_key, 1);
|
282
386
|
|
283
387
|
rb_define_method(rb_mGrnTableKeySupport, "delete",
|
284
388
|
rb_grn_table_key_support_delete, 1);
|
285
389
|
|
390
|
+
rb_define_method(rb_mGrnTableKeySupport, "find",
|
391
|
+
rb_grn_table_key_support_find, 1);
|
286
392
|
rb_define_method(rb_mGrnTableKeySupport, "[]",
|
287
393
|
rb_grn_table_key_support_array_reference, 1);
|
288
394
|
rb_define_method(rb_mGrnTableKeySupport, "[]=",
|
289
395
|
rb_grn_table_key_support_array_set, 2);
|
290
396
|
|
291
|
-
rb_define_method(rb_mGrnTableKeySupport, "encoding",
|
292
|
-
rb_grn_table_key_support_get_encoding, 0);
|
293
|
-
|
294
397
|
rb_define_method(rb_mGrnTableKeySupport, "default_tokenizer",
|
295
398
|
rb_grn_table_key_support_get_default_tokenizer, 0);
|
296
|
-
|
297
399
|
rb_define_method(rb_mGrnTableKeySupport, "default_tokenizer=",
|
298
400
|
rb_grn_table_key_support_set_default_tokenizer, 1);
|
299
401
|
}
|