null+****@clear*****
null+****@clear*****
2011年 11月 6日 (日) 20:59:49 JST
Daijiro MORI 2011-11-06 11:59:49 +0000 (Sun, 06 Nov 2011) New Revision: 5aedee53340d90f14d6d08def36d4929c429617c Log: fixed a bug that grn_*_truncate() cause clear the objects id field Modified files: lib/hash.c lib/ii.c lib/pat.c lib/store.c Modified: lib/hash.c (+2 -4) =================================================================== --- lib/hash.c 2011-11-04 10:27:04 +0000 (c76564f) +++ lib/hash.c 2011-11-06 11:59:49 +0000 (40f6912) @@ -128,7 +128,6 @@ tiny_array_init(grn_ctx *ctx, grn_array *array, const char *path, ERR(GRN_INVALID_ARGUMENT, "failed to create array"); return ctx->rc; } - GRN_DB_OBJ_SET_TYPE(array, GRN_TABLE_NO_KEY); array->obj.header.flags = flags; array->ctx = ctx; array->value_size = value_size; @@ -172,7 +171,6 @@ io_array_init(grn_ctx *ctx, grn_array *array, const char *path, header->n_entries = 0; header->n_garbages = 0; header->garbages = GRN_ID_NIL; - GRN_DB_OBJ_SET_TYPE(array, GRN_TABLE_NO_KEY); array->obj.header.flags = flags; array->ctx = ctx; array->value_size = value_size; @@ -208,6 +206,7 @@ grn_array_create(grn_ctx *ctx, const char *path, uint32_t value_size, uint32_t f } GRN_FREE(array); } + GRN_DB_OBJ_SET_TYPE(array, GRN_TABLE_NO_KEY); return NULL; } @@ -866,7 +865,6 @@ io_hash_init(grn_hash *ih, grn_ctx *ctx, const char *path, uint32_t key_size, header->n_entries = 0; header->n_garbages = 0; header->tokenizer = 0; - GRN_DB_OBJ_SET_TYPE(ih, GRN_TABLE_HASH_KEY); ih->obj.header.flags = flags; ih->ctx = ctx; ih->key_size = key_size; @@ -906,7 +904,6 @@ tiny_hash_init(grn_hash *ah, grn_ctx *ctx, const char *path, uint32_t key_size, if (entry_size != sizeof(uint32_t)) { entry_size = ((entry_size + (sizeof(intptr_t)) - 1) & ~((sizeof(intptr_t)) - 1)); } - GRN_DB_OBJ_SET_TYPE(ah, GRN_TABLE_HASH_KEY); ah->obj.header.flags = flags; ah->ctx = ctx; ah->key_size = key_size; @@ -953,6 +950,7 @@ grn_hash_create(grn_ctx *ctx, const char *path, uint32_t key_size, uint32_t valu GRN_FREE(hash); return NULL; } + GRN_DB_OBJ_SET_TYPE(hash, GRN_TABLE_HASH_KEY); return hash; } Modified: lib/ii.c (+1 -1) =================================================================== --- lib/ii.c 2011-11-04 10:27:04 +0000 (14ac12d) +++ lib/ii.c 2011-11-06 11:59:49 +0000 (3af3eef) @@ -3433,7 +3433,6 @@ _grn_ii_create(grn_ctx *ctx, grn_ii *ii, const char *path, grn_obj *lexicon, uin header->garbages[i] = NOT_ASSIGNED; } header->flags = flags; - GRN_DB_OBJ_SET_TYPE(ii, GRN_COLUMN_INDEX); ii->seg = seg; ii->chunk = chunk; ii->lexicon = lexicon; @@ -3458,6 +3457,7 @@ grn_ii_create(grn_ctx *ctx, const char *path, grn_obj *lexicon, uint32_t flags) GRN_FREE(ii); return NULL; } + GRN_DB_OBJ_SET_TYPE(ii, GRN_COLUMN_INDEX); return ii; } Modified: lib/pat.c (+1 -1) =================================================================== --- lib/pat.c 2011-11-04 10:27:04 +0000 (5fa7cd5) +++ lib/pat.c 2011-11-06 11:59:49 +0000 (dc7ac63) @@ -422,7 +422,6 @@ _grn_pat_create(grn_ctx *ctx, grn_pat *pat, header->curr_del3 = 0; header->n_garbages = 0; header->tokenizer = 0; - GRN_DB_OBJ_SET_TYPE(pat, GRN_TABLE_PAT_KEY); pat->io = io; pat->header = header; pat->key_size = key_size; @@ -452,6 +451,7 @@ grn_pat_create(grn_ctx *ctx, const char *path, uint32_t key_size, GRN_FREE(pat); return NULL; } + GRN_DB_OBJ_SET_TYPE(pat, GRN_TABLE_PAT_KEY); return pat; } Modified: lib/store.c (+2 -2) =================================================================== --- lib/store.c 2011-11-04 10:27:04 +0000 (3c044ff) +++ lib/store.c 2011-11-06 11:59:49 +0000 (572fb0a) @@ -47,7 +47,6 @@ _grn_ra_create(grn_ctx *ctx, grn_ra *ra, const char *path, unsigned int element_ header->element_size = actual_size; n_elm = GRN_RA_SEGMENT_SIZE / header->element_size; for (w_elm = 22; (1 << w_elm) > n_elm; w_elm--); - GRN_DB_OBJ_SET_TYPE(ra, GRN_COLUMN_FIX_SIZE); ra->io = io; ra->header = header; ra->element_mask = n_elm - 1; @@ -66,6 +65,7 @@ grn_ra_create(grn_ctx *ctx, const char *path, unsigned int element_size) GRN_FREE(ra); return NULL; } + GRN_DB_OBJ_SET_TYPE(ra, GRN_COLUMN_FIX_SIZE); return ra; } @@ -323,7 +323,6 @@ _grn_ja_create(grn_ctx *ctx, grn_ja *ja, const char *path, header->curr_pos = JA_SEGMENT_SIZE; header->flags = flags; for (i = 0; i < JA_N_ESEGMENTS; i++) { header->esegs[i] = JA_ESEG_VOID; } - GRN_DB_OBJ_SET_TYPE(ja, GRN_COLUMN_VAR_SIZE); ja->io = io; ja->header = header; header->max_element_size = max_element_size; @@ -343,6 +342,7 @@ grn_ja_create(grn_ctx *ctx, const char *path, unsigned int max_element_size, uin GRN_FREE(ja); return NULL; } + GRN_DB_OBJ_SET_TYPE(ja, GRN_COLUMN_VAR_SIZE); return ja; }