Kouhei Sutou
null+****@clear*****
Mon Oct 19 15:58:31 JST 2015
Kouhei Sutou 2015-10-19 15:58:31 +0900 (Mon, 19 Oct 2015) New Revision: 0dddd339fc98138d4d0ce68df31333d1e983a22e https://github.com/groonga/groonga/commit/0dddd339fc98138d4d0ce68df31333d1e983a22e Message: schema: use map instead of array Modified files: lib/proc.c test/command/suite/schema/array.expected test/command/suite/schema/plugins.expected Modified: lib/proc.c (+48 -42) =================================================================== --- lib/proc.c 2015-10-19 15:54:42 +0900 (bc9d43a) +++ lib/proc.c 2015-10-19 15:58:31 +0900 (b9c8151) @@ -7305,18 +7305,20 @@ proc_schema_plugins(grn_ctx *ctx) GRN_OUTPUT_CSTR("plugins"); n = grn_vector_size(ctx, &plugin_names); - GRN_OUTPUT_ARRAY_OPEN("plugins", n); + GRN_OUTPUT_MAP_OPEN("plugins", n); for (i = 0; i < n; i++) { const char *name; unsigned int name_size; - GRN_OUTPUT_MAP_OPEN("plugin", 1); name_size = grn_vector_get_element(ctx, &plugin_names, i, &name, NULL, NULL); + GRN_OUTPUT_STR(name, name_size); + + GRN_OUTPUT_MAP_OPEN("plugin", 1); GRN_OUTPUT_CSTR("name"); GRN_OUTPUT_STR(name, name_size); GRN_OUTPUT_MAP_CLOSE(); } - GRN_OUTPUT_ARRAY_CLOSE(); + GRN_OUTPUT_MAP_CLOSE(); GRN_OBJ_FIN(ctx, &plugin_names); } @@ -7334,31 +7336,31 @@ proc_schema_types(grn_ctx *ctx) GRN_OUTPUT_CSTR("types"); n = GRN_BULK_VSIZE(&types) / sizeof(grn_obj *); - GRN_OUTPUT_ARRAY_OPEN("types", n); + GRN_OUTPUT_MAP_OPEN("types", n); for (i = 0; i < n; i++) { grn_obj *type; + char name[GRN_TABLE_MAX_KEY_SIZE]; + unsigned int name_size; type = GRN_PTR_VALUE_AT(&types, i); + name_size = grn_obj_name(ctx, type, name, GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_STR(name, name_size); + GRN_OUTPUT_MAP_OPEN("type", 3); - { - char name[GRN_TABLE_MAX_KEY_SIZE]; - unsigned int name_size; - name_size = grn_obj_name(ctx, type, name, GRN_TABLE_MAX_KEY_SIZE); - GRN_OUTPUT_CSTR("name"); - GRN_OUTPUT_STR(name, name_size); - } - { - GRN_OUTPUT_CSTR("size"); - GRN_OUTPUT_INT64(GRN_TYPE_SIZE(DB_OBJ(type))); - } - { - GRN_OUTPUT_CSTR("can_be_key_type"); - GRN_OUTPUT_BOOL(GRN_TYPE_SIZE(DB_OBJ(type)) <= GRN_TABLE_MAX_KEY_SIZE); - } + + GRN_OUTPUT_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + + GRN_OUTPUT_CSTR("size"); + GRN_OUTPUT_INT64(GRN_TYPE_SIZE(DB_OBJ(type))); + + GRN_OUTPUT_CSTR("can_be_key_type"); + GRN_OUTPUT_BOOL(GRN_TYPE_SIZE(DB_OBJ(type)) <= GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_MAP_CLOSE(); } - GRN_OUTPUT_ARRAY_CLOSE(); + GRN_OUTPUT_MAP_CLOSE(); GRN_OBJ_FIN(ctx, &types); } @@ -7376,23 +7378,25 @@ proc_schema_tokenizers(grn_ctx *ctx) GRN_OUTPUT_CSTR("tokenizers"); n = GRN_BULK_VSIZE(&tokenizers) / sizeof(grn_obj *); - GRN_OUTPUT_ARRAY_OPEN("tokenizers", n); + GRN_OUTPUT_MAP_OPEN("tokenizers", n); for (i = 0; i < n; i++) { grn_obj *tokenizer; + char name[GRN_TABLE_MAX_KEY_SIZE]; + unsigned int name_size; tokenizer = GRN_PTR_VALUE_AT(&tokenizers, i); + name_size = grn_obj_name(ctx, tokenizer, name, GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_STR(name, name_size); + 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_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + GRN_OUTPUT_MAP_CLOSE(); } - GRN_OUTPUT_ARRAY_CLOSE(); + GRN_OUTPUT_MAP_CLOSE(); GRN_OBJ_FIN(ctx, &tokenizers); } @@ -7410,23 +7414,25 @@ proc_schema_normalizers(grn_ctx *ctx) GRN_OUTPUT_CSTR("normalizers"); n = GRN_BULK_VSIZE(&normalizers) / sizeof(grn_obj *); - GRN_OUTPUT_ARRAY_OPEN("normalizers", n); + GRN_OUTPUT_MAP_OPEN("normalizers", n); for (i = 0; i < n; i++) { grn_obj *normalizer; + char name[GRN_TABLE_MAX_KEY_SIZE]; + unsigned int name_size; normalizer = GRN_PTR_VALUE_AT(&normalizers, i); + name_size = grn_obj_name(ctx, normalizer, name, GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_STR(name, name_size); + GRN_OUTPUT_MAP_OPEN("normalizer", 1); - { - char name[GRN_TABLE_MAX_KEY_SIZE]; - unsigned int name_size; - name_size = grn_obj_name(ctx, normalizer, name, GRN_TABLE_MAX_KEY_SIZE); - GRN_OUTPUT_CSTR("name"); - GRN_OUTPUT_STR(name, name_size); - } + + GRN_OUTPUT_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + GRN_OUTPUT_MAP_CLOSE(); } - GRN_OUTPUT_ARRAY_CLOSE(); + GRN_OUTPUT_MAP_CLOSE(); GRN_OBJ_FIN(ctx, &normalizers); } @@ -7456,10 +7462,10 @@ proc_schema_tables(grn_ctx *ctx) GRN_OUTPUT_STR(name, name_size); GRN_OUTPUT_MAP_OPEN("table", 1); - { - GRN_OUTPUT_CSTR("name"); - GRN_OUTPUT_STR(name, name_size); - } + + GRN_OUTPUT_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + GRN_OUTPUT_MAP_CLOSE(); } GRN_OUTPUT_MAP_CLOSE(); Modified: test/command/suite/schema/array.expected (+41 -42) =================================================================== --- test/command/suite/schema/array.expected 2015-10-19 15:54:42 +0900 (0570e07) +++ test/command/suite/schema/array.expected 2015-10-19 15:58:31 +0900 (2b8a305) @@ -8,148 +8,147 @@ schema 0.0 ], { - "plugins": [ - - ], - "types": [ - { + "plugins": { + }, + "types": { + "Bool": { "name": "Bool", "size": 1, "can_be_key_type": true }, - { + "Float": { "name": "Float", "size": 8, "can_be_key_type": true }, - { + "Int16": { "name": "Int16", "size": 2, "can_be_key_type": true }, - { + "Int32": { "name": "Int32", "size": 4, "can_be_key_type": true }, - { + "Int64": { "name": "Int64", "size": 8, "can_be_key_type": true }, - { + "Int8": { "name": "Int8", "size": 1, "can_be_key_type": true }, - { + "LongText": { "name": "LongText", "size": 2147483648, "can_be_key_type": false }, - { + "Object": { "name": "Object", "size": 8, "can_be_key_type": true }, - { + "ShortText": { "name": "ShortText", "size": 4096, "can_be_key_type": true }, - { + "Text": { "name": "Text", "size": 65536, "can_be_key_type": false }, - { + "Time": { "name": "Time", "size": 8, "can_be_key_type": true }, - { + "TokyoGeoPoint": { "name": "TokyoGeoPoint", "size": 8, "can_be_key_type": true }, - { + "UInt16": { "name": "UInt16", "size": 2, "can_be_key_type": true }, - { + "UInt32": { "name": "UInt32", "size": 4, "can_be_key_type": true }, - { + "UInt64": { "name": "UInt64", "size": 8, "can_be_key_type": true }, - { + "UInt8": { "name": "UInt8", "size": 1, "can_be_key_type": true }, - { + "WGS84GeoPoint": { "name": "WGS84GeoPoint", "size": 8, "can_be_key_type": true } - ], - "tokenizers": [ - { + }, + "tokenizers": { + "TokenBigram": { "name": "TokenBigram" }, - { + "TokenBigramIgnoreBlank": { "name": "TokenBigramIgnoreBlank" }, - { + "TokenBigramIgnoreBlankSplitSymbol": { "name": "TokenBigramIgnoreBlankSplitSymbol" }, - { + "TokenBigramIgnoreBlankSplitSymbolAlpha": { "name": "TokenBigramIgnoreBlankSplitSymbolAlpha" }, - { + "TokenBigramIgnoreBlankSplitSymbolAlphaDigit": { "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit" }, - { + "TokenBigramSplitSymbol": { "name": "TokenBigramSplitSymbol" }, - { + "TokenBigramSplitSymbolAlpha": { "name": "TokenBigramSplitSymbolAlpha" }, - { + "TokenBigramSplitSymbolAlphaDigit": { "name": "TokenBigramSplitSymbolAlphaDigit" }, - { + "TokenDelimit": { "name": "TokenDelimit" }, - { + "TokenDelimitNull": { "name": "TokenDelimitNull" }, - { + "TokenMecab": { "name": "TokenMecab" }, - { + "TokenRegexp": { "name": "TokenRegexp" }, - { + "TokenTrigram": { "name": "TokenTrigram" }, - { + "TokenUnigram": { "name": "TokenUnigram" } - ], - "normalizers": [ - { + }, + "normalizers": { + "NormalizerAuto": { "name": "NormalizerAuto" }, - { + "NormalizerNFKC51": { "name": "NormalizerNFKC51" } - ], + }, "tables": { "Logs": { "name": "Logs" Modified: test/command/suite/schema/plugins.expected (+44 -42) =================================================================== --- test/command/suite/schema/plugins.expected 2015-10-19 15:54:42 +0900 (22fabcf) +++ test/command/suite/schema/plugins.expected 2015-10-19 15:58:31 +0900 (2a2df6a) @@ -8,149 +8,151 @@ schema 0.0 ], { - "plugins": [ - { + "plugins": { + "query_expanders/tsv": { "name": "query_expanders/tsv" } - ], - "types": [ - { + }, + "types": { + "Bool": { "name": "Bool", "size": 1, "can_be_key_type": true }, - { + "Float": { "name": "Float", "size": 8, "can_be_key_type": true }, - { + "Int16": { "name": "Int16", "size": 2, "can_be_key_type": true }, - { + "Int32": { "name": "Int32", "size": 4, "can_be_key_type": true }, - { + "Int64": { "name": "Int64", "size": 8, "can_be_key_type": true }, - { + "Int8": { "name": "Int8", "size": 1, "can_be_key_type": true }, - { + "LongText": { "name": "LongText", "size": 2147483648, "can_be_key_type": false }, - { + "Object": { "name": "Object", "size": 8, "can_be_key_type": true }, - { + "ShortText": { "name": "ShortText", "size": 4096, "can_be_key_type": true }, - { + "Text": { "name": "Text", "size": 65536, "can_be_key_type": false }, - { + "Time": { "name": "Time", "size": 8, "can_be_key_type": true }, - { + "TokyoGeoPoint": { "name": "TokyoGeoPoint", "size": 8, "can_be_key_type": true }, - { + "UInt16": { "name": "UInt16", "size": 2, "can_be_key_type": true }, - { + "UInt32": { "name": "UInt32", "size": 4, "can_be_key_type": true }, - { + "UInt64": { "name": "UInt64", "size": 8, "can_be_key_type": true }, - { + "UInt8": { "name": "UInt8", "size": 1, "can_be_key_type": true }, - { + "WGS84GeoPoint": { "name": "WGS84GeoPoint", "size": 8, "can_be_key_type": true } - ], - "tokenizers": [ - { + }, + "tokenizers": { + "TokenBigram": { "name": "TokenBigram" }, - { + "TokenBigramIgnoreBlank": { "name": "TokenBigramIgnoreBlank" }, - { + "TokenBigramIgnoreBlankSplitSymbol": { "name": "TokenBigramIgnoreBlankSplitSymbol" }, - { + "TokenBigramIgnoreBlankSplitSymbolAlpha": { "name": "TokenBigramIgnoreBlankSplitSymbolAlpha" }, - { + "TokenBigramIgnoreBlankSplitSymbolAlphaDigit": { "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit" }, - { + "TokenBigramSplitSymbol": { "name": "TokenBigramSplitSymbol" }, - { + "TokenBigramSplitSymbolAlpha": { "name": "TokenBigramSplitSymbolAlpha" }, - { + "TokenBigramSplitSymbolAlphaDigit": { "name": "TokenBigramSplitSymbolAlphaDigit" }, - { + "TokenDelimit": { "name": "TokenDelimit" }, - { + "TokenDelimitNull": { "name": "TokenDelimitNull" }, - { + "TokenMecab": { "name": "TokenMecab" }, - { + "TokenRegexp": { "name": "TokenRegexp" }, - { + "TokenTrigram": { "name": "TokenTrigram" }, - { + "TokenUnigram": { "name": "TokenUnigram" } - ], - "normalizers": [ - { + }, + "normalizers": { + "NormalizerAuto": { "name": "NormalizerAuto" }, - { + "NormalizerNFKC51": { "name": "NormalizerNFKC51" } - ] + }, + "tables": { + } } ] -------------- next part -------------- HTML����������������������������...Download