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(