[Groonga-commit] groonga/groonga at ac0555a [master] Support using ctx->errbuf in error message format

Back to archive index

Kouhei Sutou null+****@clear*****
Thu May 12 15:22:37 JST 2016


Kouhei Sutou	2016-05-12 15:22:37 +0900 (Thu, 12 May 2016)

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

  Message:
    Support using ctx->errbuf in error message format
    
    It helps wrapping error message.

  Modified files:
    lib/ctx.c
    lib/proc.c
    lib/proc/proc_select.c

  Modified: lib/ctx.c (+3 -1)
===================================================================
--- lib/ctx.c    2016-05-12 15:21:51 +0900 (2d87b71)
+++ lib/ctx.c    2016-05-12 15:22:37 +0900 (42b1324)
@@ -1503,7 +1503,9 @@ grn_ctx_log(grn_ctx *ctx, const char *fmt, ...)
 void
 grn_ctx_logv(grn_ctx *ctx, const char *fmt, va_list ap)
 {
-  grn_vsnprintf(ctx->errbuf, GRN_CTX_MSGSIZE, fmt, ap);
+  char buffer[GRN_CTX_MSGSIZE];
+  grn_vsnprintf(buffer, GRN_CTX_MSGSIZE, fmt, ap);
+  grn_strcpy(ctx->errbuf, GRN_CTX_MSGSIZE, buffer);
 }
 
 void

  Modified: lib/proc.c (+1 -3)
===================================================================
--- lib/proc.c    2016-05-12 15:21:51 +0900 (43497e6)
+++ lib/proc.c    2016-05-12 15:22:37 +0900 (83f193d)
@@ -532,15 +532,13 @@ proc_delete(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
                    NULL, GRN_OP_MATCH, GRN_OP_AND,
                    GRN_EXPR_SYNTAX_SCRIPT);
     if (ctx->rc) {
-      char original_error_message[GRN_CTX_MSGSIZE];
-      grn_strcpy(original_error_message, GRN_CTX_MSGSIZE, ctx->errbuf);
       rc = ctx->rc;
       ERR(rc,
           "[table][record][delete] failed to parse filter: "
           "table: <%.*s>, filter: <%.*s>, detail: <%s>",
           (int)GRN_TEXT_LEN(table_name), GRN_TEXT_VALUE(table_name),
           (int)GRN_TEXT_LEN(filter), GRN_TEXT_VALUE(filter),
-          original_error_message);
+          ctx->errbuf);
     } else {
       grn_obj *records;
 

  Modified: lib/proc/proc_select.c (+9 -27)
===================================================================
--- lib/proc/proc_select.c    2016-05-12 15:21:51 +0900 (00222bf)
+++ lib/proc/proc_select.c    2016-05-12 15:22:37 +0900 (2628de0)
@@ -358,15 +358,13 @@ grn_select_apply_columns(grn_ctx *ctx,
                                column_data->flags,
                                column_data->type);
     if (!column) {
-      char error_message[GRN_CTX_MSGSIZE];
-      grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
       GRN_PLUGIN_ERROR(ctx,
                        GRN_INVALID_ARGUMENT,
                        "[select][column][%s][%.*s] failed to create column: %s",
                        grn_column_stage_name(column_data->stage),
                        (int)(column_data->label.length),
                        column_data->label.value,
-                       error_message);
+                       ctx->errbuf);
       break;
     }
 
@@ -378,8 +376,6 @@ grn_select_apply_columns(grn_ctx *ctx,
                                               column_data->sortby.length,
                                               table, &n_sort_keys);
       if (!sort_keys) {
-        char error_message[GRN_CTX_MSGSIZE];
-        grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
         grn_obj_close(ctx, column);
         GRN_PLUGIN_ERROR(ctx,
                          GRN_INVALID_ARGUMENT,
@@ -387,15 +383,13 @@ grn_select_apply_columns(grn_ctx *ctx,
                          grn_column_stage_name(column_data->stage),
                          (int)(column_data->label.length),
                          column_data->label.value,
-                         error_message);
+                         ctx->errbuf);
         break;
       }
 
       target_table = grn_table_create(ctx, NULL, 0, NULL, GRN_OBJ_TABLE_NO_KEY,
                                       NULL, table);
       if (!target_table) {
-        char error_message[GRN_CTX_MSGSIZE];
-        grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
         grn_obj_close(ctx, column);
         grn_table_sort_key_close(ctx, sort_keys, n_sort_keys);
         GRN_PLUGIN_ERROR(ctx,
@@ -404,7 +398,7 @@ grn_select_apply_columns(grn_ctx *ctx,
                          grn_column_stage_name(column_data->stage),
                          (int)(column_data->label.length),
                          column_data->label.value,
-                         error_message);
+                         ctx->errbuf);
         break;
       }
       grn_table_sort(ctx, table, 0, -1,
@@ -414,8 +408,6 @@ grn_select_apply_columns(grn_ctx *ctx,
 
     GRN_EXPR_CREATE_FOR_QUERY(ctx, target_table, expression, record);
     if (!expression) {
-      char error_message[GRN_CTX_MSGSIZE];
-      grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
       grn_obj_close(ctx, column);
       if (column_data->sortby.length > 0) {
         grn_obj_unlink(ctx, target_table);
@@ -427,7 +419,7 @@ grn_select_apply_columns(grn_ctx *ctx,
                        grn_column_stage_name(column_data->stage),
                        (int)(column_data->label.length),
                        column_data->label.value,
-                       error_message);
+                       ctx->errbuf);
       break;
     }
     grn_expr_parse(ctx,
@@ -439,8 +431,6 @@ grn_select_apply_columns(grn_ctx *ctx,
                    GRN_OP_AND,
                    GRN_EXPR_SYNTAX_SCRIPT);
     if (ctx->rc != GRN_SUCCESS) {
-      char error_message[GRN_CTX_MSGSIZE];
-      grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
       grn_obj_close(ctx, expression);
       grn_obj_close(ctx, column);
       if (column_data->sortby.length > 0) {
@@ -455,7 +445,7 @@ grn_select_apply_columns(grn_ctx *ctx,
                        column_data->label.value,
                        (int)(column_data->value.length),
                        column_data->value.value,
-                       error_message);
+                       ctx->errbuf);
       break;
     }
     grn_select_expression_set_condition(ctx, expression, condition);
@@ -465,8 +455,6 @@ grn_select_apply_columns(grn_ctx *ctx,
                                          NULL, 0,
                                          0, -1, GRN_CURSOR_BY_ID);
     if (!table_cursor) {
-      char error_message[GRN_CTX_MSGSIZE];
-      grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
       grn_obj_close(ctx, expression);
       grn_obj_close(ctx, column);
       if (column_data->sortby.length > 0) {
@@ -479,7 +467,7 @@ grn_select_apply_columns(grn_ctx *ctx,
                        grn_column_stage_name(column_data->stage),
                        (int)(column_data->label.length),
                        column_data->label.value,
-                       error_message);
+                       ctx->errbuf);
       break;
     }
 
@@ -634,14 +622,12 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table,
       grn_obj *record;
       GRN_EXPR_CREATE_FOR_QUERY(ctx, g.table, expression, record);
       if (!expression) {
-        char error_message[GRN_CTX_MSGSIZE];
-        grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
         grn_obj_close(ctx, g.table);
         GRN_PLUGIN_ERROR(ctx,
                          GRN_INVALID_ARGUMENT,
                          "[select][drilldown][filter] "
                          "failed to create expression for filter: %s",
-                         error_message);
+                         ctx->errbuf);
         break;
       }
       grn_expr_parse(ctx,
@@ -653,8 +639,6 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table,
                      GRN_OP_AND,
                      GRN_EXPR_SYNTAX_SCRIPT);
       if (ctx->rc != GRN_SUCCESS) {
-        char error_message[GRN_CTX_MSGSIZE];
-        grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
         grn_obj_close(ctx, expression);
         grn_obj_close(ctx, g.table);
         GRN_PLUGIN_ERROR(ctx,
@@ -663,13 +647,11 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table,
                          "failed to parse filter: <%.*s>: %s",
                          (int)(drilldown->filter.length),
                          drilldown->filter.value,
-                         error_message);
+                         ctx->errbuf);
         break;
       }
       target_table = grn_table_select(ctx, g.table, expression, NULL, GRN_OP_OR);
       if (ctx->rc != GRN_SUCCESS) {
-        char error_message[GRN_CTX_MSGSIZE];
-        grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE);
         grn_obj_close(ctx, expression);
         if (target_table) {
           grn_obj_close(ctx, target_table);
@@ -681,7 +663,7 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table,
                          "failed to execute filter: <%.*s>: %s",
                          (int)(drilldown->filter.length),
                          drilldown->filter.value,
-                         error_message);
+                         ctx->errbuf);
         break;
       }
     } else {
-------------- next part --------------
HTML����������������������������...
Download 



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