[Groonga-commit] groonga/groonga at 624e5a3 [master] mrb: add Column#scalar?, #vector? and #index?

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Jul 14 19:07:43 JST 2015


Kouhei Sutou	2015-07-14 19:07:43 +0900 (Tue, 14 Jul 2015)

  New Revision: 624e5a37805866e9fafc3a1f8436e7a1669c6675
  https://github.com/groonga/groonga/commit/624e5a37805866e9fafc3a1f8436e7a1669c6675

  Message:
    mrb: add Column#scalar?, #vector? and #index?

  Modified files:
    lib/mrb/mrb_column.c

  Modified: lib/mrb/mrb_column.c (+43 -0)
===================================================================
--- lib/mrb/mrb_column.c    2015-07-15 12:12:30 +0900 (68aadce)
+++ lib/mrb/mrb_column.c    2015-07-14 19:07:43 +0900 (a6eeba0)
@@ -44,6 +44,42 @@ mrb_grn_column_array_reference(mrb_state *mrb, mrb_value self)
 }
 
 static mrb_value
+mrb_grn_column_is_scalar(mrb_state *mrb, mrb_value self)
+{
+  grn_obj *column;
+  grn_obj_flags column_type;
+
+  column = DATA_PTR(self);
+  column_type = (column->header.flags & GRN_OBJ_COLUMN_TYPE_MASK);
+
+  return mrb_bool_value(column_type == GRN_OBJ_COLUMN_SCALAR);
+}
+
+static mrb_value
+mrb_grn_column_is_vector(mrb_state *mrb, mrb_value self)
+{
+  grn_obj *column;
+  grn_obj_flags column_type;
+
+  column = DATA_PTR(self);
+  column_type = (column->header.flags & GRN_OBJ_COLUMN_TYPE_MASK);
+
+  return mrb_bool_value(column_type == GRN_OBJ_COLUMN_VECTOR);
+}
+
+static mrb_value
+mrb_grn_column_is_index(mrb_state *mrb, mrb_value self)
+{
+  grn_obj *column;
+  grn_obj_flags column_type;
+
+  column = DATA_PTR(self);
+  column_type = (column->header.flags & GRN_OBJ_COLUMN_TYPE_MASK);
+
+  return mrb_bool_value(column_type == GRN_OBJ_COLUMN_INDEX);
+}
+
+static mrb_value
 mrb_grn_column_is_locked(mrb_state *mrb, mrb_value self)
 {
   grn_ctx *ctx = (grn_ctx *)mrb->ud;
@@ -84,6 +120,13 @@ grn_mrb_column_init(grn_ctx *ctx)
   mrb_define_method(mrb, klass, "[]",
                     mrb_grn_column_array_reference, MRB_ARGS_REQ(1));
 
+  mrb_define_method(mrb, klass, "scalar?",
+                    mrb_grn_column_is_scalar, MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "vector?",
+                    mrb_grn_column_is_vector, MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "index?",
+                    mrb_grn_column_is_index, MRB_ARGS_NONE());
+
   mrb_define_method(mrb, klass, "locked?",
                     mrb_grn_column_is_locked, MRB_ARGS_NONE());
 
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index