null+****@clear*****
null+****@clear*****
2010年 9月 22日 (水) 14:06:59 JST
Kouhei Sutou 2010-09-22 05:06:59 +0000 (Wed, 22 Sep 2010) New Revision: fb14f29cd8a3b0d0383a8580dd28c6e2386ef6ab Log: format key value in 'check' command. Modified files: lib/ii.c Modified: lib/ii.c (+7 -1) =================================================================== --- lib/ii.c 2010-09-21 03:09:04 +0000 (5bb1251) +++ lib/ii.c 2010-09-22 05:06:59 +0000 (579fac8) @@ -2948,6 +2948,7 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg) uint16_t n; int nterms_void = 0; int size_in_buffer = 0; + grn_obj buf; if (ii->header->binfo[seg] == NOT_ASSIGNED) { GRN_OUTPUT_BOOL(GRN_FALSE); return; @@ -2979,6 +2980,7 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg) GRN_OUTPUT_CSTR("buffer term"); GRN_OUTPUT_ARRAY_OPEN("TERMS", sb->header.nterms); + GRN_OBJ_INIT(&buf, GRN_BULK, 0, ii->lexicon->header.domain); for (bt = sb->terms, n = sb->header.nterms; n; n--, bt++) { grn_id tid, tid_; char key[GRN_TABLE_MAX_KEY_SIZE]; @@ -2998,7 +3000,8 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg) tid = (bt->tid & GRN_ID_MAX); key_size = grn_table_get_key(ctx, ii->lexicon, tid, key, GRN_TABLE_MAX_KEY_SIZE); tid_ = grn_table_get(ctx, ii->lexicon, key, key_size); - GRN_OUTPUT_STR(key, key_size); + GRN_TEXT_SET(ctx, &buf, key, key_size); + GRN_OUTPUT_OBJ(&buf, NULL); GRN_OUTPUT_INT64(bt->tid); GRN_OUTPUT_INT64(tid_); nextb = bt->pos_in_buffer; @@ -3018,6 +3021,7 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg) GRN_B_DEC(nchunks, scp); if (!(cinfo = GRN_MALLOCN(chunk_info, nchunks + 1))) { datavec_fin(ctx, rdv); + GRN_OBJ_FIN(ctx, &buf); return; } for (i = 0; i < nchunks; i++) { @@ -3050,6 +3054,8 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg) GRN_OUTPUT_ARRAY_CLOSE(); if (cinfo) { GRN_FREE(cinfo); } } + GRN_OBJ_FIN(ctx, &buf); + GRN_OUTPUT_ARRAY_CLOSE(); GRN_OUTPUT_CSTR("buffer free"); GRN_OUTPUT_INT64(sb->header.buffer_free);