[Groonga-commit] groonga/groonga at 79aa11b [master] Support vector inspection

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Apr 19 22:55:21 JST 2013


Kouhei Sutou	2013-04-19 22:55:21 +0900 (Fri, 19 Apr 2013)

  New Revision: 79aa11be77ac1def408b7186e3c978cbde69eb87
  https://github.com/groonga/groonga/commit/79aa11be77ac1def408b7186e3c978cbde69eb87

  Message:
    Support vector inspection

  Modified files:
    lib/util.c

  Modified: lib/util.c (+37 -2)
===================================================================
--- lib/util.c    2013-04-19 16:07:40 +0900 (59c960b)
+++ lib/util.c    2013-04-19 22:55:21 +0900 (84cfe8e)
@@ -268,6 +268,41 @@ grn_proc_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *obj)
 }
 
 static grn_rc
+grn_vector_inspect(grn_ctx *ctx, grn_obj *buffer, grn_obj *vector)
+{
+  int i;
+  grn_obj *body = vector->u.v.body;;
+
+  GRN_TEXT_PUTS(ctx, buffer, "[");
+  for (i = 0; i < vector->u.v.n_sections; i++) {
+    grn_section *section = &(vector->u.v.sections[i]);
+    const char *value_raw;
+
+    if (i > 0) {
+      GRN_TEXT_PUTS(ctx, buffer, ", ");
+    }
+
+    value_raw = GRN_BULK_HEAD(body) + section->offset;
+    GRN_TEXT_PUTS(ctx, buffer, "{");
+    GRN_TEXT_PUTS(ctx, buffer, "\"value\":");
+    {
+      grn_obj value_object;
+      GRN_OBJ_INIT(&value_object, GRN_BULK, GRN_OBJ_DO_SHALLOW_COPY,
+                   section->domain);
+      grn_bulk_write(ctx, &value_object, value_raw, section->length);
+      grn_inspect(ctx, buffer, &value_object);
+      GRN_OBJ_FIN(ctx, &value_object);
+    }
+    GRN_TEXT_PUTS(ctx, buffer, ", \"weight\":");
+    grn_text_itoa(ctx, buffer, section->weight);
+    GRN_TEXT_PUTS(ctx, buffer, "}");
+  }
+  GRN_TEXT_PUTS(ctx, buffer, "]");
+
+  return GRN_SUCCESS;
+}
+
+static grn_rc
 grn_accessor_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *obj)
 {
   return grn_column_name_(ctx, obj, buf);
@@ -800,8 +835,8 @@ grn_inspect(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj)
     /* TODO */
     break;
   case GRN_VECTOR :
-    /* TODO */
-    break;
+    grn_vector_inspect(ctx, buffer, obj);
+    return buffer;
   case GRN_MSG :
     /* TODO */
     break;
-------------- next part --------------
HTML����������������������������...
Download 



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