[Groonga-commit] groonga/groonga at b273eb8 [master] Export grn_dump_column_create_flags()

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Jan 12 14:20:47 JST 2016


Kouhei Sutou	2016-01-12 14:20:47 +0900 (Tue, 12 Jan 2016)

  New Revision: b273eb8e34b7c456a35d9b3a460a1588a5fa2636
  https://github.com/groonga/groonga/commit/b273eb8e34b7c456a35d9b3a460a1588a5fa2636

  Message:
    Export grn_dump_column_create_flags()
    
    It's a function that dumps grn_obj_flags for creating a column as
    Groonga command format.

  Modified files:
    include/groonga/dump.h
    lib/dump.c
    lib/proc.c

  Modified: include/groonga/dump.h (+3 -0)
===================================================================
--- include/groonga/dump.h    2016-01-12 14:16:56 +0900 (df201b0)
+++ include/groonga/dump.h    2016-01-12 14:20:47 +0900 (3427bf1)
@@ -25,6 +25,9 @@ extern "C" {
 GRN_API grn_rc grn_dump_table_create_flags(grn_ctx *ctx,
                                            grn_obj_flags flags,
                                            grn_obj *buffer);
+GRN_API grn_rc grn_dump_column_create_flags(grn_ctx *ctx,
+                                            grn_obj_flags flags,
+                                            grn_obj *buffer);
 
 #ifdef __cplusplus
 }

  Modified: lib/dump.c (+47 -0)
===================================================================
--- lib/dump.c    2016-01-12 14:16:56 +0900 (b7256e5)
+++ lib/dump.c    2016-01-12 14:20:47 +0900 (3d44731)
@@ -51,3 +51,50 @@ grn_dump_table_create_flags(grn_ctx *ctx,
 
   GRN_API_RETURN(ctx->rc);
 }
+
+grn_rc
+grn_dump_column_create_flags(grn_ctx *ctx,
+                            grn_obj_flags flags,
+                            grn_obj *buffer)
+{
+  GRN_API_ENTER;
+
+  switch (flags & GRN_OBJ_COLUMN_TYPE_MASK) {
+  case GRN_OBJ_COLUMN_SCALAR:
+    GRN_TEXT_PUTS(ctx, buffer, "COLUMN_SCALAR");
+    break;
+  case GRN_OBJ_COLUMN_VECTOR:
+    GRN_TEXT_PUTS(ctx, buffer, "COLUMN_VECTOR");
+    if (flags & GRN_OBJ_WITH_WEIGHT) {
+      GRN_TEXT_PUTS(ctx, buffer, "|WITH_WEIGHT");
+    }
+    break;
+  case GRN_OBJ_COLUMN_INDEX:
+    GRN_TEXT_PUTS(ctx, buffer, "COLUMN_INDEX");
+    if (flags & GRN_OBJ_WITH_SECTION) {
+      GRN_TEXT_PUTS(ctx, buffer, "|WITH_SECTION");
+    }
+    if (flags & GRN_OBJ_WITH_WEIGHT) {
+      GRN_TEXT_PUTS(ctx, buffer, "|WITH_WEIGHT");
+    }
+    if (flags & GRN_OBJ_WITH_POSITION) {
+      GRN_TEXT_PUTS(ctx, buffer, "|WITH_POSITION");
+    }
+    break;
+  }
+  switch (flags & GRN_OBJ_COMPRESS_MASK) {
+  case GRN_OBJ_COMPRESS_NONE:
+    break;
+  case GRN_OBJ_COMPRESS_ZLIB:
+    GRN_TEXT_PUTS(ctx, buffer, "|COMPRESS_ZLIB");
+    break;
+  case GRN_OBJ_COMPRESS_LZ4:
+    GRN_TEXT_PUTS(ctx, buffer, "|COMPRESS_LZ4");
+    break;
+  }
+  if (flags & GRN_OBJ_PERSISTENT) {
+    GRN_TEXT_PUTS(ctx, buffer, "|PERSISTENT");
+  }
+
+  GRN_API_RETURN(ctx->rc);
+}

  Modified: lib/proc.c (+5 -49)
===================================================================
--- lib/proc.c    2016-01-12 14:16:56 +0900 (fa0ddee)
+++ lib/proc.c    2016-01-12 14:20:47 +0900 (b2e0431)
@@ -1528,48 +1528,6 @@ grn_parse_column_create_flags(grn_ctx *ctx, const char *nptr, const char *end)
   return flags;
 }
 
-static void
-grn_column_create_flags_to_text(grn_ctx *ctx, grn_obj *buf, grn_obj_flags flags)
-{
-  GRN_BULK_REWIND(buf);
-  switch (flags & GRN_OBJ_COLUMN_TYPE_MASK) {
-  case GRN_OBJ_COLUMN_SCALAR:
-    GRN_TEXT_PUTS(ctx, buf, "COLUMN_SCALAR");
-    break;
-  case GRN_OBJ_COLUMN_VECTOR:
-    GRN_TEXT_PUTS(ctx, buf, "COLUMN_VECTOR");
-    if (flags & GRN_OBJ_WITH_WEIGHT) {
-      GRN_TEXT_PUTS(ctx, buf, "|WITH_WEIGHT");
-    }
-    break;
-  case GRN_OBJ_COLUMN_INDEX:
-    GRN_TEXT_PUTS(ctx, buf, "COLUMN_INDEX");
-    if (flags & GRN_OBJ_WITH_SECTION) {
-      GRN_TEXT_PUTS(ctx, buf, "|WITH_SECTION");
-    }
-    if (flags & GRN_OBJ_WITH_WEIGHT) {
-      GRN_TEXT_PUTS(ctx, buf, "|WITH_WEIGHT");
-    }
-    if (flags & GRN_OBJ_WITH_POSITION) {
-      GRN_TEXT_PUTS(ctx, buf, "|WITH_POSITION");
-    }
-    break;
-  }
-  switch (flags & GRN_OBJ_COMPRESS_MASK) {
-  case GRN_OBJ_COMPRESS_NONE:
-    break;
-  case GRN_OBJ_COMPRESS_ZLIB:
-    GRN_TEXT_PUTS(ctx, buf, "|COMPRESS_ZLIB");
-    break;
-  case GRN_OBJ_COMPRESS_LZ4:
-    GRN_TEXT_PUTS(ctx, buf, "|COMPRESS_LZ4");
-    break;
-  }
-  if (flags & GRN_OBJ_PERSISTENT) {
-    GRN_TEXT_PUTS(ctx, buf, "|PERSISTENT");
-  }
-}
-
 static grn_bool
 proc_table_create_set_token_filters_put(grn_ctx *ctx,
                                         grn_obj *token_filters,
@@ -2142,7 +2100,7 @@ output_column_info(grn_ctx *ctx, grn_obj *column)
   output_column_name(ctx, column);
   GRN_OUTPUT_CSTR(path);
   GRN_OUTPUT_CSTR(type);
-  grn_column_create_flags_to_text(ctx, &o, column->header.flags);
+  grn_dump_column_create_flags(ctx, column->header.flags, &o);
   GRN_OUTPUT_OBJ(&o, NULL);
   output_object_id_name(ctx, column->header.domain);
   output_object_id_name(ctx, grn_obj_get_range(ctx, column));
@@ -2238,7 +2196,7 @@ proc_column_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_da
         GRN_OUTPUT_CSTR(GRN_COLUMN_NAME_KEY);
         GRN_OUTPUT_CSTR("");
         GRN_OUTPUT_CSTR("");
-        grn_column_create_flags_to_text(ctx, &buf, 0);
+        grn_dump_column_create_flags(ctx, 0, &buf);
         GRN_OUTPUT_OBJ(&buf, NULL);
         name_len = grn_obj_name(ctx, table, name_buf, GRN_TABLE_MAX_KEY_SIZE);
         GRN_OUTPUT_STR(name_buf, name_len);
@@ -2965,7 +2923,6 @@ dump_column(grn_ctx *ctx, grn_obj *outbuf , grn_obj *table, grn_obj *column)
 {
   grn_obj *type;
   grn_obj_flags default_flags = GRN_OBJ_PERSISTENT;
-  grn_obj buf;
 
   type = grn_ctx_at(ctx, ((grn_db_obj *)column)->range);
   if (!type) {
@@ -2981,10 +2938,9 @@ dump_column(grn_ctx *ctx, grn_obj *outbuf , grn_obj *table, grn_obj *column)
   if (type->header.type == GRN_TYPE) {
     default_flags |= type->header.flags;
   }
-  GRN_TEXT_INIT(&buf, 0);
-  grn_column_create_flags_to_text(ctx, &buf, column->header.flags & ~default_flags);
-  GRN_TEXT_PUT(ctx, outbuf, GRN_TEXT_VALUE(&buf), GRN_TEXT_LEN(&buf));
-  GRN_OBJ_FIN(ctx, &buf);
+  grn_dump_column_create_flags(ctx,
+                               column->header.flags & ~default_flags,
+                               outbuf);
   GRN_TEXT_PUTC(ctx, outbuf, ' ');
   dump_obj_name(ctx, outbuf, type);
   if (column->header.flags & GRN_OBJ_COLUMN_INDEX) {
-------------- next part --------------
HTML����������������������������...
Download 



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