Kouhei Sutou
null+****@clear*****
Mon Oct 19 15:54:42 JST 2015
Kouhei Sutou 2015-10-19 15:54:42 +0900 (Mon, 19 Oct 2015) New Revision: 6b25f0ed2e7b9a9706e806ebd899189cb26799e8 https://github.com/groonga/groonga/commit/6b25f0ed2e7b9a9706e806ebd899189cb26799e8 Message: schema: support array table Added files: test/command/suite/schema/array.expected test/command/suite/schema/array.test Modified files: lib/proc.c Modified: lib/proc.c (+38 -1) =================================================================== --- lib/proc.c 2015-10-19 15:41:27 +0900 (a5cd89a) +++ lib/proc.c 2015-10-19 15:54:42 +0900 (bc9d43a) @@ -7431,15 +7431,52 @@ proc_schema_normalizers(grn_ctx *ctx) GRN_OBJ_FIN(ctx, &normalizers); } +static void +proc_schema_tables(grn_ctx *ctx) +{ + grn_obj tables; + unsigned int i, n; + + GRN_PTR_INIT(&tables, GRN_OBJ_VECTOR, GRN_DB_OBJECT); + + grn_ctx_get_all_tables(ctx, &tables); + + GRN_OUTPUT_CSTR("tables"); + + n = GRN_BULK_VSIZE(&tables) / sizeof(grn_obj *); + GRN_OUTPUT_MAP_OPEN("tables", n); + for (i = 0; i < n; i++) { + grn_obj *table; + char name[GRN_TABLE_MAX_KEY_SIZE]; + unsigned int name_size; + + table = GRN_PTR_VALUE_AT(&tables, i); + + name_size = grn_obj_name(ctx, table, name, GRN_TABLE_MAX_KEY_SIZE); + GRN_OUTPUT_STR(name, name_size); + + GRN_OUTPUT_MAP_OPEN("table", 1); + { + GRN_OUTPUT_CSTR("name"); + GRN_OUTPUT_STR(name, name_size); + } + GRN_OUTPUT_MAP_CLOSE(); + } + GRN_OUTPUT_MAP_CLOSE(); + + GRN_OBJ_FIN(ctx, &tables); +} + static grn_obj * proc_schema(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) { - GRN_OUTPUT_MAP_OPEN("schema", 3); + GRN_OUTPUT_MAP_OPEN("schema", 5); proc_schema_plugins(ctx); proc_schema_types(ctx); proc_schema_tokenizers(ctx); proc_schema_normalizers(ctx); + proc_schema_tables(ctx); GRN_OUTPUT_MAP_CLOSE(); return NULL; Added: test/command/suite/schema/array.expected (+159 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/schema/array.expected 2015-10-19 15:54:42 +0900 (0570e07) @@ -0,0 +1,159 @@ +table_create Logs TABLE_NO_KEY +[[0,0.0,0.0],true] +schema +[ + [ + 0, + 0.0, + 0.0 + ], + { + "plugins": [ + + ], + "types": [ + { + "name": "Bool", + "size": 1, + "can_be_key_type": true + }, + { + "name": "Float", + "size": 8, + "can_be_key_type": true + }, + { + "name": "Int16", + "size": 2, + "can_be_key_type": true + }, + { + "name": "Int32", + "size": 4, + "can_be_key_type": true + }, + { + "name": "Int64", + "size": 8, + "can_be_key_type": true + }, + { + "name": "Int8", + "size": 1, + "can_be_key_type": true + }, + { + "name": "LongText", + "size": 2147483648, + "can_be_key_type": false + }, + { + "name": "Object", + "size": 8, + "can_be_key_type": true + }, + { + "name": "ShortText", + "size": 4096, + "can_be_key_type": true + }, + { + "name": "Text", + "size": 65536, + "can_be_key_type": false + }, + { + "name": "Time", + "size": 8, + "can_be_key_type": true + }, + { + "name": "TokyoGeoPoint", + "size": 8, + "can_be_key_type": true + }, + { + "name": "UInt16", + "size": 2, + "can_be_key_type": true + }, + { + "name": "UInt32", + "size": 4, + "can_be_key_type": true + }, + { + "name": "UInt64", + "size": 8, + "can_be_key_type": true + }, + { + "name": "UInt8", + "size": 1, + "can_be_key_type": true + }, + { + "name": "WGS84GeoPoint", + "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" + } + ], + "normalizers": [ + { + "name": "NormalizerAuto" + }, + { + "name": "NormalizerNFKC51" + } + ], + "tables": { + "Logs": { + "name": "Logs" + } + } + } +] Added: test/command/suite/schema/array.test (+3 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/schema/array.test 2015-10-19 15:54:42 +0900 (c936fb8) @@ -0,0 +1,3 @@ +table_create Logs TABLE_NO_KEY + +schema -------------- next part -------------- HTML����������������������������...Download