Skip to content

Commit

Permalink
schema: support outputting key type
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Oct 20, 2015
1 parent 7ef4bdb commit 7805b98
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 1 deletion.
18 changes: 17 additions & 1 deletion lib/proc.c
Expand Up @@ -7501,7 +7501,23 @@ proc_schema_tables(grn_ctx *ctx)
table->header.domain != GRN_ID_NIL) {
key_type = grn_ctx_at(ctx, table->header.domain);
}
proc_schema_output_name(ctx, key_type);
if (key_type) {
GRN_OUTPUT_MAP_OPEN("key_type", 2);

GRN_OUTPUT_CSTR("name");
proc_schema_output_name(ctx, key_type);

GRN_OUTPUT_CSTR("type");
if (grn_obj_is_table(ctx, key_type)) {
GRN_OUTPUT_CSTR("reference");
} else {
GRN_OUTPUT_CSTR("type");
}

GRN_OUTPUT_MAP_CLOSE();
} else {
GRN_OUTPUT_NULL();
}

GRN_OUTPUT_MAP_CLOSE();
}
Expand Down
163 changes: 163 additions & 0 deletions test/command/suite/schema/hash_table.expected
@@ -0,0 +1,163 @@
table_create Users TABLE_HASH_KEY ShortText
[[0,0.0,0.0],true]
schema
[
[
0,
0.0,
0.0
],
{
"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": {
"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": {
"NormalizerAuto": {
"name": "NormalizerAuto"
},
"NormalizerNFKC51": {
"name": "NormalizerNFKC51"
}
},
"tables": {
"Users": {
"name": "Users",
"type": "hash table",
"key_type": {
"name": "ShortText",
"type": "type"
}
}
}
}
]
3 changes: 3 additions & 0 deletions test/command/suite/schema/hash_table.test
@@ -0,0 +1,3 @@
table_create Users TABLE_HASH_KEY ShortText

schema

0 comments on commit 7805b98

Please sign in to comment.