Susumu Yata
null+****@clear*****
Tue Dec 15 09:45:02 JST 2015
Susumu Yata 2015-12-15 09:45:02 +0900 (Tue, 15 Dec 2015) New Revision: 9ec019c34d4bfd2addb8f7daa8c62929c626f067 https://github.com/groonga/groonga/commit/9ec019c34d4bfd2addb8f7daa8c62929c626f067 Merged e1d688f: Merge pull request #449 from groonga/detect-truncate Message: grn_array: add missing grn_array_reopen() GitHub: 447 Modified files: lib/hash.c Modified: lib/hash.c (+12 -0) =================================================================== --- lib/hash.c 2015-12-15 00:26:18 +0900 (daf295d) +++ lib/hash.c 2015-12-15 09:45:02 +0900 (f6ae06f) @@ -693,6 +693,12 @@ grn_array_truncate(grn_ctx *ctx, grn_array *array) uint32_t value_size, flags; if (!ctx || !array) { return GRN_INVALID_ARGUMENT; } + if (array->header && array->header->truncated) { + grn_rc rc = grn_array_reopen(ctx, array); + if (rc != GRN_SUCCESS) { + return rc; + } + } if (grn_array_is_io_array(array)) { const char * const io_path = grn_io_path(array->io); if (io_path && *io_path) { @@ -918,6 +924,12 @@ grn_array_delete_by_id(grn_ctx *ctx, grn_array *array, grn_id id, grn_id grn_array_at(grn_ctx *ctx, grn_array *array, grn_id id) { + if (array->header && array->header->truncated) { + grn_rc rc = grn_array_reopen(ctx, array); + if (rc != GRN_SUCCESS) { + return GRN_ID_NIL; + } + } if (*array->n_garbages) { /* * grn_array_bitmap_at() is a time-consuming function, so it is called only -------------- next part -------------- HTML����������������������������... 다운로드