Kouhei Sutou
null+****@clear*****
Mon Oct 19 15:22:17 JST 2015
Kouhei Sutou 2015-10-19 15:22:17 +0900 (Mon, 19 Oct 2015) New Revision: 32c2eb9dbc11a123c1c9673e3237efe129e7b0d3 https://github.com/groonga/groonga/commit/32c2eb9dbc11a123c1c9673e3237efe129e7b0d3 Message: schema: support tokenizers Modified files: lib/proc.c test/command/suite/schema/plugins.expected Modified: lib/proc.c (+36 -1) =================================================================== --- lib/proc.c 2015-10-19 15:21:24 +0900 (9ef9f43) +++ lib/proc.c 2015-10-19 15:22:17 +0900 (1ea0195) @@ -7363,13 +7363,48 @@ proc_schema_types(grn_ctx *ctx) GRN_OBJ_FIN(ctx, &types); } +static void +proc_schema_tokenizers(grn_ctx *ctx) +{ + grn_obj tokenizers; + unsigned int i, n; + + GRN_PTR_INIT(&tokenizers, GRN_OBJ_VECTOR, GRN_DB_OBJECT); + + grn_ctx_get_all_tokenizers(ctx, &tokenizers); + + GRN_OUTPUT_CSTR("tokenizers"); + + n = GRN_BULK_VSIZE(&tokenizers) / sizeof(grn_obj *); + GRN_OUTPUT_ARRAY_OPEN("tokenizers", n); + for (i = 0; i < n; i++) { + grn_obj *tokenizer; + + tokenizer = GRN_PTR_VALUE_AT(&tokenizers, i); + + GRN_OUTPUT_MAP_OPEN("tokenizer", 1); + { + char name[GRN_TABLE_MAX_KEY_SIZE]; + unsigned int name_size; + name_size = grn_obj_name(ctx, tokenizer, name, GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + } + GRN_OUTPUT_MAP_CLOSE(); + } + GRN_OUTPUT_ARRAY_CLOSE(); + + GRN_OBJ_FIN(ctx, &tokenizers); +} + static grn_obj * proc_schema(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) { - GRN_OUTPUT_MAP_OPEN("schema", 2); + GRN_OUTPUT_MAP_OPEN("schema", 3); proc_schema_plugins(ctx); proc_schema_types(ctx); + proc_schema_tokenizers(ctx); GRN_OUTPUT_MAP_CLOSE(); return NULL; Modified: test/command/suite/schema/plugins.expected (+44 -0) =================================================================== --- test/command/suite/schema/plugins.expected 2015-10-19 15:21:24 +0900 (51b5c48) +++ test/command/suite/schema/plugins.expected 2015-10-19 15:22:17 +0900 (2c38c55) @@ -99,6 +99,50 @@ schema "size": 8, "can_be_key_type": true } + ], + "tokenizers": [ + { + "name": "TokenBigram" + }, + { + "name": "TokenBigramIgnoreBlank" + }, + { + "name": "TokenBigramIgnoreBlankSplitSymbol" + }, + { + "name": "TokenBigramIgnoreBlankSplitSymbolAlpha" + }, + { + "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit" + }, + { + "name": "TokenBigramSplitSymbol" + }, + { + "name": "TokenBigramSplitSymbolAlpha" + }, + { + "name": "TokenBigramSplitSymbolAlphaDigit" + }, + { + "name": "TokenDelimit" + }, + { + "name": "TokenDelimitNull" + }, + { + "name": "TokenMecab" + }, + { + "name": "TokenRegexp" + }, + { + "name": "TokenTrigram" + }, + { + "name": "TokenUnigram" + } ] } ] -------------- next part -------------- HTML����������������������������...Download