[Groonga-commit] groonga/groonga [master] [column][create] add context to error message on missing name. refs #952

Back to archive index

null+****@clear***** null+****@clear*****
2011年 6月 6日 (月) 17:00:37 JST


Kouhei Sutou	2011-06-06 08:00:37 +0000 (Mon, 06 Jun 2011)

  New Revision: 0a5dc7fc7a7c0ee0078843503725cc6f3ef5015c

  Log:
    [column][create] add context to error message on missing name. refs #952

  Modified files:
    lib/db.c
    lib/proc.c
    test/unit/core/test-command-column-create.c

  Modified: lib/db.c (+1 -1)
===================================================================
--- lib/db.c    2011-06-06 07:55:25 +0000 (4b5c48d)
+++ lib/db.c    2011-06-06 08:00:37 +0000 (44d8629)
@@ -2811,7 +2811,7 @@ grn_column_create(grn_ctx *ctx, grn_obj *table,
     goto exit;
   }
   if (!name || !name_size) {
-    ERR(GRN_INVALID_ARGUMENT, "missing type or name");
+    ERR(GRN_INVALID_ARGUMENT, "[column][create]: name is missing");
     goto exit;
   }
   db = DB_OBJ(table)->db;

  Modified: lib/proc.c (+6 -1)
===================================================================
--- lib/proc.c    2011-06-06 07:55:25 +0000 (ee83222)
+++ lib/proc.c    2011-06-06 08:00:37 +0000 (95778d5)
@@ -662,7 +662,12 @@ proc_column_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_
         GRN_TEXT_LEN(VAR(3)), GRN_TEXT_VALUE(VAR(3))) ;
     goto exit;
   }
-  if (GRN_TEXT_LEN(VAR(1))) { flags |= GRN_OBJ_PERSISTENT; }
+  if (GRN_TEXT_LEN(VAR(1))) {
+    flags |= GRN_OBJ_PERSISTENT;
+  } else {
+    ERR(GRN_INVALID_ARGUMENT, "[column][create]: name is missing");
+    goto exit;
+  }
   column = grn_column_create(ctx, table,
                              GRN_TEXT_VALUE(VAR(1)),
                              GRN_TEXT_LEN(VAR(1)),

  Modified: test/unit/core/test-command-column-create.c (+12 -0)
===================================================================
--- test/unit/core/test-command-column-create.c    2011-06-06 07:55:25 +0000 (9e0cf16)
+++ test/unit/core/test-command-column-create.c    2011-06-06 08:00:37 +0000 (68b7fa3)
@@ -24,6 +24,7 @@
 #include <str.h>
 
 void test_invalid_name(void);
+void test_missing_name(void);
 void test_nonexistent_table(void);
 void test_nonexistent_type(void);
 
@@ -91,6 +92,17 @@ test_invalid_name(void)
 }
 
 void
+test_missing_name(void)
+{
+  assert_send_command("table_create Users");
+  grn_test_assert_send_command_error(
+    context,
+    GRN_INVALID_ARGUMENT,
+    "[column][create]: name is missing",
+    "column_create Users --flags COLUMN_SCALAR --type ShortText");
+}
+
+void
 test_nonexistent_table(void)
 {
   grn_test_assert_send_command_error(




Groonga-commit メーリングリストの案内
Back to archive index