Class: Groonga::FixSizeColumn
- Defined in:
- ext/rb-grn-fix-size-column.c,
ext/rb-grn-fix-size-column.c
Overview
固定長データ用のカラム。
Instance Method Summary collapse
-
#[](id) ⇒ Object
_column_の_id_に対応する値を返す。.
-
#[]=(id) ⇒ Object
_column_の_id_に対応する値を設定する。.
-
#decrement!(id, delta = nil) ⇒ Object
column_の_id_に対応する値を_delta_だけ減少する。_delta が+nil+の場合は1減少する。.
-
#increment!(id, delta = nil) ⇒ Object
column_の_id_に対応する値を_delta_だけ増加する。_delta が+nil+の場合は1増加する。.
Methods inherited from Column
#clear_lock, #local_name, #lock, #locked?, #select, #table, #unlock
Instance Method Details
#[](id) ⇒ Object
_column_の_id_に対応する値を返す。
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'ext/rb-grn-fix-size-column.c', line 37
VALUE
rb_grn_fix_size_column_array_reference (VALUE self, VALUE rb_id)
{
grn_id id;
grn_ctx *context;
grn_obj *fix_size_column;
grn_obj *range;
grn_obj *value;
rb_grn_column_deconstruct(SELF(self), &fix_size_column, &context,
NULL, NULL,
&value, NULL, &range);
id = NUM2UINT(rb_id);
GRN_BULK_REWIND(value);
grn_obj_get_value(context, fix_size_column, id, value);
rb_grn_context_check(context, self);
return GRNVALUE2RVAL(context, value, range, self);
}
|
#[]=(id) ⇒ Object
_column_の_id_に対応する値を設定する。
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'ext/rb-grn-fix-size-column.c', line 64
static VALUE
rb_grn_fix_size_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
{
grn_ctx *context = NULL;
grn_obj *column;
grn_id domain_id, range_id;
grn_obj *domain, *range;
grn_obj *value;
grn_rc rc;
grn_id id;
rb_grn_column_deconstruct(SELF(self), &column, &context,
&domain_id, &domain,
&value, &range_id, &range);
id = NUM2UINT(rb_id);
RVAL2GRNBULK(rb_value, context, value);
if ((value->header.domain == GRN_DB_INT32 ||
value->header.domain == GRN_DB_UINT32) &&
(GRN_TABLE_HASH_KEY <= range->header.type &&
range->header.type <= GRN_TABLE_VIEW)) {
value->header.domain = range_id;
}
rc = grn_obj_set_value(context, column, id, value, GRN_OBJ_SET);
rb_grn_context_check(context, self);
rb_grn_rc_check(rc, self);
return Qnil;
}
|
#decrement!(id, delta = nil) ⇒ Object
column_の_id_に対応する値を_delta_だけ減少する。_delta が+nil+の場合は1減少する。
145 146 147 148 149 |
# File 'ext/rb-grn-fix-size-column.c', line 145
static VALUE
rb_grn_fix_size_column_decrement (int argc, VALUE *argv, VALUE self)
{
return rb_grn_fix_size_column_integer_set(argc, argv, self, GRN_OBJ_DECR);
}
|
#increment!(id, delta = nil) ⇒ Object
column_の_id_に対応する値を_delta_だけ増加する。_delta が+nil+の場合は1増加する。
132 133 134 135 136 |
# File 'ext/rb-grn-fix-size-column.c', line 132
static VALUE
rb_grn_fix_size_column_increment (int argc, VALUE *argv, VALUE self)
{
return rb_grn_fix_size_column_integer_set(argc, argv, self, GRN_OBJ_INCR);
}
|