Kouhei Sutou
null+****@clear*****
Tue Oct 20 11:17:57 JST 2015
Kouhei Sutou 2015-10-20 11:17:57 +0900 (Tue, 20 Oct 2015) New Revision: 741ff14407657a745091ddda39ee6b44f7a255e7 https://github.com/groonga/groonga/commit/741ff14407657a745091ddda39ee6b44f7a255e7 Message: schema: support outputting value type Added files: test/command/suite/schema/tables/value_type/type.test Copied files: test/command/suite/schema/tables/array.expected (from test/command/suite/schema/array.expected) test/command/suite/schema/tables/hash_table.expected (from test/command/suite/schema/hash_table.expected) test/command/suite/schema/tables/hash_table.test (from test/command/suite/schema/hash_table.test) Modified files: lib/proc.c Renamed files: test/command/suite/schema/tables/array.test (from test/command/suite/schema/array.test) test/command/suite/schema/tables/value_type/reference.expected (from test/command/suite/schema/hash_table.expected) test/command/suite/schema/tables/value_type/reference.test (from test/command/suite/schema/hash_table.test) test/command/suite/schema/tables/value_type/type.expected (from test/command/suite/schema/array.expected) Modified: lib/proc.c (+36 -1) =================================================================== --- lib/proc.c 2015-10-20 11:00:03 +0900 (f908c3a) +++ lib/proc.c 2015-10-20 11:17:57 +0900 (d12ac8f) @@ -7496,6 +7496,38 @@ proc_schema_table_output_key_type(grn_ctx *ctx, grn_obj *table) } static void +proc_schema_table_output_value_type(grn_ctx *ctx, grn_obj *table) +{ + grn_obj *value_type = NULL; + grn_id range = GRN_ID_NIL; + + if (table->header.type != GRN_TABLE_DAT_KEY) { + range = grn_obj_get_range(ctx, table); + } + if (range != GRN_ID_NIL) { + value_type = grn_ctx_at(ctx, range); + } + if (!value_type) { + GRN_OUTPUT_NULL(); + return; + } + + GRN_OUTPUT_MAP_OPEN("value_type", 2); + + GRN_OUTPUT_CSTR("name"); + proc_schema_output_name(ctx, value_type); + + GRN_OUTPUT_CSTR("type"); + if (grn_obj_is_table(ctx, value_type)) { + GRN_OUTPUT_CSTR("reference"); + } else { + GRN_OUTPUT_CSTR("type"); + } + + GRN_OUTPUT_MAP_CLOSE(); +} + +static void proc_schema_tables(grn_ctx *ctx) { grn_obj tables; @@ -7516,7 +7548,7 @@ proc_schema_tables(grn_ctx *ctx) proc_schema_output_name(ctx, table); - GRN_OUTPUT_MAP_OPEN("table", 3); + GRN_OUTPUT_MAP_OPEN("table", 4); GRN_OUTPUT_CSTR("name"); proc_schema_output_name(ctx, table); @@ -7527,6 +7559,9 @@ proc_schema_tables(grn_ctx *ctx) GRN_OUTPUT_CSTR("key_type"); proc_schema_table_output_key_type(ctx, table); + GRN_OUTPUT_CSTR("value_type"); + proc_schema_table_output_value_type(ctx, table); + GRN_OUTPUT_MAP_CLOSE(); } GRN_OUTPUT_MAP_CLOSE(); Copied: test/command/suite/schema/tables/array.expected (+2 -1) 98% =================================================================== --- test/command/suite/schema/array.expected 2015-10-20 11:00:03 +0900 (316d7e9) +++ test/command/suite/schema/tables/array.expected 2015-10-20 11:17:57 +0900 (247bc89) @@ -153,7 +153,8 @@ schema "Logs": { "name": "Logs", "type": "array", - "key_type": null + "key_type": null, + "value_type": null } } } Renamed: test/command/suite/schema/tables/array.test (+0 -0) 100% =================================================================== Copied: test/command/suite/schema/tables/hash_table.expected (+2 -1) 98% =================================================================== --- test/command/suite/schema/hash_table.expected 2015-10-20 11:00:03 +0900 (8cc1c85) +++ test/command/suite/schema/tables/hash_table.expected 2015-10-20 11:17:57 +0900 (992fd83) @@ -156,7 +156,8 @@ schema "key_type": { "name": "ShortText", "type": "type" - } + }, + "value_type": null } } } Copied: test/command/suite/schema/tables/hash_table.test (+0 -0) 100% =================================================================== Renamed: test/command/suite/schema/tables/value_type/reference.expected (+13 -1) 92% =================================================================== --- test/command/suite/schema/hash_table.expected 2015-10-20 11:00:03 +0900 (8cc1c85) +++ test/command/suite/schema/tables/value_type/reference.expected 2015-10-20 11:17:57 +0900 (7e6689a) @@ -1,5 +1,7 @@ table_create Users TABLE_HASH_KEY ShortText [[0,0.0,0.0],true] +table_create Logs TABLE_NO_KEY --value_type Users +[[0,0.0,0.0],true] schema [ [ @@ -150,13 +152,23 @@ schema } }, "tables": { + "Logs": { + "name": "Logs", + "type": "array", + "key_type": null, + "value_type": { + "name": "Users", + "type": "reference" + } + }, "Users": { "name": "Users", "type": "hash table", "key_type": { "name": "ShortText", "type": "type" - } + }, + "value_type": null } } } Renamed: test/command/suite/schema/tables/value_type/reference.test (+2 -0) 50% =================================================================== --- test/command/suite/schema/hash_table.test 2015-10-20 11:00:03 +0900 (c96decf) +++ test/command/suite/schema/tables/value_type/reference.test 2015-10-20 11:17:57 +0900 (afdda72) @@ -1,3 +1,5 @@ table_create Users TABLE_HASH_KEY ShortText +table_create Logs TABLE_NO_KEY --value_type Users + schema Renamed: test/command/suite/schema/tables/value_type/type.expected (+6 -2) 95% =================================================================== --- test/command/suite/schema/array.expected 2015-10-20 11:00:03 +0900 (316d7e9) +++ test/command/suite/schema/tables/value_type/type.expected 2015-10-20 11:17:57 +0900 (b216de7) @@ -1,4 +1,4 @@ -table_create Logs TABLE_NO_KEY +table_create Logs TABLE_NO_KEY --value_type Int32 [[0,0.0,0.0],true] schema [ @@ -153,7 +153,11 @@ schema "Logs": { "name": "Logs", "type": "array", - "key_type": null + "key_type": null, + "value_type": { + "name": "Int32", + "type": "type" + } } } } Added: test/command/suite/schema/tables/value_type/type.test (+3 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/schema/tables/value_type/type.test 2015-10-20 11:17:57 +0900 (6738174) @@ -0,0 +1,3 @@ +table_create Logs TABLE_NO_KEY --value_type Int32 + +schema -------------- next part -------------- HTML����������������������������...Download