[Groonga-commit] groonga/groonga at 9289566 [master] Add GRN_CONTENT_GROOGNA_COMMAND_LIST for dump command

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Feb 23 22:04:26 JST 2015


Kouhei Sutou	2015-02-23 22:04:26 +0900 (Mon, 23 Feb 2015)

  New Revision: 928956628dc1e85fa60a64fed1851064cdd645d4
  https://github.com/groonga/groonga/commit/928956628dc1e85fa60a64fed1851064cdd645d4

  Message:
    Add GRN_CONTENT_GROOGNA_COMMAND_LIST for dump command

  Modified files:
    include/groonga/groonga.h
    lib/ctx.c
    lib/db.c
    lib/output.c
    src/groonga.c
    src/httpd/nginx-module/ngx_http_groonga_module.c

  Modified: include/groonga/groonga.h (+2 -1)
===================================================================
--- include/groonga/groonga.h    2015-02-23 22:03:04 +0900 (48fb97e)
+++ include/groonga/groonga.h    2015-02-23 22:04:26 +0900 (9cb13e7)
@@ -182,7 +182,8 @@ typedef enum {
   GRN_CONTENT_TSV,
   GRN_CONTENT_JSON,
   GRN_CONTENT_XML,
-  GRN_CONTENT_MSGPACK
+  GRN_CONTENT_MSGPACK,
+  GRN_CONTENT_GROONGA_COMMAND_LIST
 } grn_content_type;
 
 typedef struct _grn_obj grn_obj;

  Modified: lib/ctx.c (+3 -0)
===================================================================
--- lib/ctx.c    2015-02-23 22:03:04 +0900 (e8a0c93)
+++ lib/ctx.c    2015-02-23 22:04:26 +0900 (27b27e0)
@@ -1527,6 +1527,9 @@ grn_ctx_set_output_type(grn_ctx *ctx, grn_content_type type)
     case GRN_CONTENT_MSGPACK :
       ctx->impl->mime_type = "application/x-msgpack";
       break;
+    case GRN_CONTENT_GROONGA_COMMAND_LIST :
+      ctx->impl->mime_type = "text/x-groonga-command-list";
+      break;
     }
   } else {
     rc = GRN_INVALID_ARGUMENT;

  Modified: lib/db.c (+1 -0)
===================================================================
--- lib/db.c    2015-02-23 22:03:04 +0900 (681d0d9)
+++ lib/db.c    2015-02-23 22:04:26 +0900 (b420823)
@@ -12075,6 +12075,7 @@ grn_load_(grn_ctx *ctx, grn_content_type input_type,
   case GRN_CONTENT_TSV :
   case GRN_CONTENT_XML :
   case GRN_CONTENT_MSGPACK :
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
     ERR(GRN_FUNCTION_NOT_IMPLEMENTED, "unsupported input_type");
     // todo
     break;

  Modified: lib/output.c (+46 -0)
===================================================================
--- lib/output.c    2015-02-23 22:03:04 +0900 (20bd2a8)
+++ lib/output.c    2015-02-23 22:04:26 +0900 (aa1ae59)
@@ -54,6 +54,8 @@ put_delimiter(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
   case GRN_CONTENT_MSGPACK :
     // do nothing
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -88,6 +90,8 @@ grn_output_array_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_typ
     msgpack_pack_array(&ctx->impl->msgpacker, nelements);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -119,6 +123,8 @@ grn_output_array_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_ty
   case GRN_CONTENT_MSGPACK :
     // do nothing
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -155,6 +161,8 @@ grn_output_map_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
     msgpack_pack_map(&ctx->impl->msgpacker, nelements);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -186,6 +194,8 @@ grn_output_map_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type
   case GRN_CONTENT_MSGPACK :
     // do nothing
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -214,6 +224,9 @@ grn_output_int32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, in
     msgpack_pack_int32(&ctx->impl->msgpacker, value);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    grn_text_itoa(ctx, outbuf, value);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -241,6 +254,9 @@ grn_output_int64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, in
     msgpack_pack_int64(&ctx->impl->msgpacker, value);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    grn_text_lltoa(ctx, outbuf, value);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -268,6 +284,9 @@ grn_output_uint64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, i
     msgpack_pack_uint64(&ctx->impl->msgpacker, value);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    grn_text_ulltoa(ctx, outbuf, value);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -295,6 +314,9 @@ grn_output_float(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, do
     msgpack_pack_double(&ctx->impl->msgpacker, value);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    grn_text_ftoa(ctx, outbuf, value);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -324,6 +346,9 @@ grn_output_str(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
     msgpack_pack_raw_body(&ctx->impl->msgpacker, value, value_len);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    GRN_TEXT_PUT(ctx, outbuf, value, value_len);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -362,6 +387,9 @@ grn_output_bool(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, grn
     }
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    GRN_TEXT_PUTS(ctx, outbuf, value ? "true" : "false");
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -386,6 +414,8 @@ grn_output_null(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
     msgpack_pack_nil(&ctx->impl->msgpacker);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -426,6 +456,9 @@ grn_output_time(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, int
     msgpack_pack_double(&ctx->impl->msgpacker, dv);
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    grn_text_ftoa(ctx, outbuf, dv);
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -487,6 +520,17 @@ grn_output_geo_point(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type
     }
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    if (value) {
+      GRN_TEXT_PUTC(ctx, outbuf, '"');
+      grn_text_itoa(ctx, outbuf, value->latitude);
+      GRN_TEXT_PUTC(ctx, outbuf, 'x');
+      grn_text_itoa(ctx, outbuf, value->longitude);
+      GRN_TEXT_PUTC(ctx, outbuf, '"');
+    } else {
+      GRN_TEXT_PUTS(ctx, outbuf, "\"\"");
+    }
+    break;
   case GRN_CONTENT_NONE:
     break;
   }
@@ -2023,6 +2067,8 @@ grn_output_envelope(grn_ctx *ctx,
     }
 #endif
     break;
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+    break;
   case GRN_CONTENT_NONE:
     break;
   }

  Modified: src/groonga.c (+11 -4)
===================================================================
--- src/groonga.c    2015-02-23 22:03:04 +0900 (b03e70e)
+++ src/groonga.c    2015-02-23 22:04:26 +0900 (db050a9)
@@ -341,10 +341,13 @@ s_output(grn_ctx *ctx, int flags, void *arg)
 {
   FILE *stream = (FILE *)arg;
 
-  if (grn_ctx_get_output_type(ctx) == GRN_CONTENT_NONE) {
+  switch (grn_ctx_get_output_type(ctx)) {
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+  case GRN_CONTENT_NONE :
     s_output_raw(ctx, flags, stream);
-  } else {
+  default :
     s_output_typed(ctx, flags, stream);
+    break;
   }
 }
 
@@ -936,10 +939,14 @@ h_output(grn_ctx *ctx, int flags, void *arg)
 {
   ht_context *hc = (ht_context *)arg;
 
-  if (grn_ctx_get_output_type(ctx) == GRN_CONTENT_NONE) {
+  switch (grn_ctx_get_output_type(ctx)) {
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+  case GRN_CONTENT_NONE :
     h_output_raw(ctx, flags, hc);
-  } else {
+    break;
+  default :
     h_output_typed(ctx, flags, hc);
+    break;
   }
 }
 

  Modified: src/httpd/nginx-module/ngx_http_groonga_module.c (+6 -2)
===================================================================
--- src/httpd/nginx-module/ngx_http_groonga_module.c    2015-02-23 22:03:04 +0900 (115de13)
+++ src/httpd/nginx-module/ngx_http_groonga_module.c    2015-02-23 22:04:26 +0900 (a19045c)
@@ -568,10 +568,14 @@ ngx_http_groonga_context_receive_handler(grn_ctx *context,
 {
   ngx_http_groonga_handler_data_t *data = callback_data;
 
-  if (grn_ctx_get_output_type(context) == GRN_CONTENT_NONE) {
+  switch (grn_ctx_get_output_type(context)) {
+  case GRN_CONTENT_GROONGA_COMMAND_LIST :
+  case GRN_CONTENT_NONE :
     ngx_http_groonga_context_receive_handler_raw(context, flags, data);
-  } else {
+    break;
+  default :
     ngx_http_groonga_context_receive_handler_typed(context, flags, data);
+    break;
   }
 }
 
-------------- next part --------------
HTML����������������������������...
Download 



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