[Groonga-commit] groonga/groonga [master] fixed a bug that grn_*_truncate() cause clear the objects id field

Back to archive index

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




Groonga-commit メーリングリストの案内
Back to archive index