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);
}
|