[Groonga-commit] groonga/groonga at 9ec019c [master] grn_array: add missing grn_array_reopen()

Back to archive index

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����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index