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;
}