Navigation Menu

Skip to content

Commit

Permalink
schema: use map instead of array
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Oct 19, 2015
1 parent 6b25f0e commit 0dddd33
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 126 deletions.
90 changes: 48 additions & 42 deletions lib/proc.c
Expand Up @@ -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);
}
Expand All @@ -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);
}
Expand All @@ -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);
}
Expand All @@ -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);
}
Expand Down Expand Up @@ -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();
Expand Down
83 changes: 41 additions & 42 deletions test/command/suite/schema/array.expected
Expand Up @@ -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"
Expand Down

0 comments on commit 0dddd33

Please sign in to comment.