Kouhei Sutou
null+****@clear*****
Mon Dec 17 13:56:57 JST 2012
Kouhei Sutou 2012-12-17 13:56:57 +0900 (Mon, 17 Dec 2012) New Revision: b9034e7b0c8815c9b1e875ab5b0f280a83e36e51 https://github.com/groonga/groonga/commit/b9034e7b0c8815c9b1e875ab5b0f280a83e36e51 Log: table_create: add --normalizer option dump command also supports --normalizer option. TODO: grndump in rroonga should also support --normalizer option. Added files: test/command/suite/table_create/normalizer/auto/utf8.expected test/command/suite/table_create/normalizer/auto/utf8.test test/command/suite/table_create/normalizer/nfkc51/utf8.expected test/command/suite/table_create/normalizer/nfkc51/utf8.test test/command/suite/table_create/normalizer/nonexistent.expected test/command/suite/table_create/normalizer/nonexistent.test Modified files: lib/proc.c Modified: lib/proc.c (+13 -1) =================================================================== --- lib/proc.c 2012-12-14 21:44:57 +0900 (981ec58) +++ lib/proc.c 2012-12-17 13:56:57 +0900 (13fe1ce) @@ -1104,6 +1104,11 @@ proc_table_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_d GRN_INFO_DEFAULT_TOKENIZER, grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(4)), GRN_TEXT_LEN(VAR(4)))); + grn_obj_set_info(ctx, table, + GRN_INFO_NORMALIZER, + grn_ctx_get(ctx, + GRN_TEXT_VALUE(VAR(5)), + GRN_TEXT_LEN(VAR(5)))); grn_obj_unlink(ctx, table); } } else { @@ -2344,6 +2349,7 @@ dump_table(grn_ctx *ctx, grn_obj *outbuf, grn_obj *table, grn_obj *domain = NULL, *range = NULL; grn_obj_flags default_flags = GRN_OBJ_PERSISTENT; grn_obj *default_tokenizer; + grn_obj *normalizer; grn_obj buf; switch (table->header.type) { @@ -2390,6 +2396,11 @@ dump_table(grn_ctx *ctx, grn_obj *outbuf, grn_obj *table, GRN_TEXT_PUTS(ctx, outbuf, " --default_tokenizer "); dump_obj_name(ctx, outbuf, default_tokenizer); } + normalizer = grn_obj_get_info(ctx, table, GRN_INFO_NORMALIZER, NULL); + if (normalizer) { + GRN_TEXT_PUTS(ctx, outbuf, " --normalizer "); + dump_obj_name(ctx, outbuf, normalizer); + } GRN_TEXT_PUTC(ctx, outbuf, '\n'); @@ -3376,7 +3387,8 @@ grn_db_init_builtin_query(grn_ctx *ctx) DEF_VAR(vars[2], "key_type"); DEF_VAR(vars[3], "value_type"); DEF_VAR(vars[4], "default_tokenizer"); - DEF_COMMAND("table_create", proc_table_create, 5, vars); + DEF_VAR(vars[5], "normalizer"); + DEF_COMMAND("table_create", proc_table_create, 6, vars); DEF_VAR(vars[0], "name"); DEF_COMMAND("table_remove", proc_table_remove, 1, vars); Added: test/command/suite/table_create/normalizer/auto/utf8.expected (+61 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/auto/utf8.expected 2012-12-17 13:56:57 +0900 (d06bbbc) @@ -0,0 +1,61 @@ +table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto +[[0,0.0,0.0],true] +table_create Movies TABLE_NO_KEY +[[0,0.0,0.0],true] +column_create Movies name COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +column_create Terms movies_name COLUMN_INDEX Movies name +[[0,0.0,0.0],true] +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] +[[0,0.0,0.0],2] +select Movies --match_columns name --query seven +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 1 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "name", + "ShortText" + ] + ], + [ + 1, + "Seven Samurai" + ] + ] + ] +] +dump +table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText +column_create Terms movies_name COLUMN_INDEX Movies name +load --table Terms +[ +["_key"], +["seven samurai"], +["the last samurai"] +] +load --table Movies +[ +["_id","name"], +[1,"Seven Samurai"], +[2,"The Last Samurai"] +] + Added: test/command/suite/table_create/normalizer/auto/utf8.test (+17 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/auto/utf8.test 2012-12-17 13:56:57 +0900 (78434b6) @@ -0,0 +1,17 @@ +table_create Terms TABLE_PAT_KEY ShortText \ + --normalizer NormalizerAuto + +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText + +column_create Terms movies_name COLUMN_INDEX Movies name + +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] + +select Movies --match_columns name --query seven + +dump Added: test/command/suite/table_create/normalizer/nfkc51/utf8.expected (+61 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/nfkc51/utf8.expected 2012-12-17 13:56:57 +0900 (d454184) @@ -0,0 +1,61 @@ +table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerNFKC51 +[[0,0.0,0.0],true] +table_create Movies TABLE_NO_KEY +[[0,0.0,0.0],true] +column_create Movies name COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +column_create Terms movies_name COLUMN_INDEX Movies name +[[0,0.0,0.0],true] +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] +[[0,0.0,0.0],2] +select Movies --match_columns name --query seven +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 1 + ], + [ + [ + "_id", + "UInt32" + ], + [ + "name", + "ShortText" + ] + ], + [ + 1, + "Seven Samurai" + ] + ] + ] +] +dump +table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerNFKC51 +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText +column_create Terms movies_name COLUMN_INDEX Movies name +load --table Terms +[ +["_key"], +["seven samurai"], +["the last samurai"] +] +load --table Movies +[ +["_id","name"], +[1,"Seven Samurai"], +[2,"The Last Samurai"] +] + Added: test/command/suite/table_create/normalizer/nfkc51/utf8.test (+17 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/nfkc51/utf8.test 2012-12-17 13:56:57 +0900 (c4771fa) @@ -0,0 +1,17 @@ +table_create Terms TABLE_PAT_KEY ShortText \ + --normalizer NormalizerNFKC51 + +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText + +column_create Terms movies_name COLUMN_INDEX Movies name + +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] + +select Movies --match_columns name --query seven + +dump Added: test/command/suite/table_create/normalizer/nonexistent.expected (+61 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/nonexistent.expected 2012-12-17 13:56:57 +0900 (d97e89e) @@ -0,0 +1,61 @@ +table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerNonexistent +[[0,0.0,0.0],true] +table_create Movies TABLE_NO_KEY +[[0,0.0,0.0],true] +column_create Movies name COLUMN_SCALAR ShortText +[[0,0.0,0.0],true] +column_create Terms movies_name COLUMN_INDEX Movies name +[[0,0.0,0.0],true] +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] +[[0,0.0,0.0],2] +select Terms --output_columns _key --limit -1 +[ + [ + 0, + 0.0, + 0.0 + ], + [ + [ + [ + 2 + ], + [ + [ + "_key", + "ShortText" + ] + ], + [ + "Seven Samurai" + ], + [ + "The Last Samurai" + ] + ] + ] +] +select Movies --match_columns name --query seven +[[0,0.0,0.0],[[[0],[["_id","UInt32"],["name","ShortText"]]]]] +dump +table_create Terms TABLE_PAT_KEY ShortText +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText +column_create Terms movies_name COLUMN_INDEX Movies name +load --table Terms +[ +["_key"], +["Seven Samurai"], +["The Last Samurai"] +] +load --table Movies +[ +["_id","name"], +[1,"Seven Samurai"], +[2,"The Last Samurai"] +] + Added: test/command/suite/table_create/normalizer/nonexistent.test (+19 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/table_create/normalizer/nonexistent.test 2012-12-17 13:56:57 +0900 (4cb12a4) @@ -0,0 +1,19 @@ +table_create Terms TABLE_PAT_KEY ShortText \ + --normalizer NormalizerNonexistent + +table_create Movies TABLE_NO_KEY +column_create Movies name COLUMN_SCALAR ShortText + +column_create Terms movies_name COLUMN_INDEX Movies name + +load --table Movies +[ +{"name": "Seven Samurai"}, +{"name": "The Last Samurai"} +] + +select Terms --output_columns _key --limit -1 + +select Movies --match_columns name --query seven + +dump -------------- next part -------------- HTML����������������������������...Download