null+****@clear*****
null+****@clear*****
2012年 2月 10日 (金) 15:54:27 JST
Kouhei Sutou 2012-02-10 15:54:27 +0900 (Fri, 10 Feb 2012)
New Revision: 3167889fac4a80700f182ceb3a93d2ccb6718265
Log:
add grn_inspect_type().
Modified files:
lib/util.c
lib/util.h
Modified: lib/util.c (+114 -0)
===================================================================
--- lib/util.c 2012-02-10 14:30:24 +0900 (af9838f)
+++ lib/util.c 2012-02-10 15:54:27 +0900 (4913edd)
@@ -80,6 +80,120 @@ grn_inspect_name(grn_ctx *ctx, grn_obj *buf, grn_obj *obj)
return buf;
}
+grn_obj *
+grn_inspect_type(grn_ctx *ctx, grn_obj *buf, unsigned char type)
+{
+ switch (type) {
+ case GRN_VOID :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_VOID");
+ break;
+ case GRN_BULK :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_BULK");
+ break;
+ case GRN_PTR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_PTR");
+ break;
+ case GRN_UVECTOR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_UVECTOR");
+ break;
+ case GRN_PVECTOR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_PVECTOR");
+ break;
+ case GRN_VECTOR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_VECTOR");
+ break;
+ case GRN_MSG :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_MSG");
+ break;
+ case GRN_QUERY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_QUERY");
+ break;
+ case GRN_ACCESSOR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_ACCESSOR");
+ break;
+ case GRN_ACCESSOR_VIEW :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_ACCESSOR_VIEW");
+ break;
+ case GRN_SNIP :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_SNIP");
+ break;
+ case GRN_PATSNIP :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_PATSNIP");
+ break;
+ case GRN_NORMALIZED_TEXT :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_NORMALIZED_TEXT");
+ break;
+ case GRN_CURSOR_TABLE_HASH_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_TABLE_HASH_KEY");
+ break;
+ case GRN_CURSOR_TABLE_PAT_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_TABLE_PAT_KEY");
+ break;
+ case GRN_CURSOR_TABLE_DAT_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_TABLE_DAT_KEY");
+ break;
+ case GRN_CURSOR_TABLE_NO_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_TABLE_NO_KEY");
+ break;
+ case GRN_CURSOR_TABLE_VIEW :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_TABLE_VIEW");
+ break;
+ case GRN_CURSOR_COLUMN_INDEX :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_COLUMN_INDEX");
+ break;
+ case GRN_CURSOR_COLUMN_GEO_INDEX :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_CURSOR_COLUMN_GEO_INDEX");
+ break;
+ case GRN_TYPE :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TYPE");
+ break;
+ case GRN_PROC :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_PROC");
+ break;
+ case GRN_EXPR :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_EXPR");
+ break;
+ case GRN_TABLE_HASH_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TABLE_HASH_KEY");
+ break;
+ case GRN_TABLE_PAT_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TABLE_PAT_KEY");
+ break;
+ case GRN_TABLE_DAT_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TABLE_DAT_KEY");
+ break;
+ case GRN_TABLE_NO_KEY :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TABLE_NO_KEY");
+ break;
+ case GRN_TABLE_VIEW :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_TABLE_VIEW");
+ break;
+ case GRN_DB :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_DB");
+ break;
+ case GRN_COLUMN_FIX_SIZE :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_COLUMN_FIX_SIZE");
+ break;
+ case GRN_COLUMN_VAR_SIZE :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_COLUMN_VAR_SIZE");
+ break;
+ case GRN_COLUMN_INDEX :
+ GRN_TEXT_PUTS(ctx, buf, "GRN_COLUMN_INDEX");
+ break;
+ default:
+ {
+ char type_in_hex[5]; /* "0xXX" */
+ sprintf(type_in_hex, "%#02x", type);
+ GRN_TEXT_PUTS(ctx, buf, "(unknown: ");
+ GRN_TEXT_PUTS(ctx, buf, type_in_hex);
+ GRN_TEXT_PUTS(ctx, buf, ")");
+ }
+ break;
+ }
+
+ return buf;
+}
+
static grn_rc
grn_proc_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *obj)
{
Modified: lib/util.h (+1 -0)
===================================================================
--- lib/util.h 2012-02-10 14:30:24 +0900 (1ffb5fa)
+++ lib/util.h 2012-02-10 15:54:27 +0900 (439ea46)
@@ -33,6 +33,7 @@ GRN_API grn_rc grn_normalize_offset_and_limit(grn_ctx *ctx, int size, int *offse
grn_obj *grn_inspect(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj);
grn_obj *grn_inspect_name(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj);
+grn_obj *grn_inspect_type(grn_ctx *ctx, grn_obj *buffer, unsigned char type);
void grn_p(grn_ctx *ctx, grn_obj *obj);
void grn_p_geo_point(grn_ctx *ctx, grn_geo_point *point);