[Groonga-commit] groonga/groonga at 93ae00c [master] Remove path before unregister object ID from DB

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Jul 17 12:23:53 JST 2015


Kouhei Sutou	2015-07-17 12:23:53 +0900 (Fri, 17 Jul 2015)

  New Revision: 93ae00cb727273eb4be6e76099a7456537b6521d
  https://github.com/groonga/groonga/commit/93ae00cb727273eb4be6e76099a7456537b6521d

  Message:
    Remove path before unregister object ID from DB
    
    It may solve the situation that path of table or column exists but the
    table or column doesn't exist in DB.

  Modified files:
    lib/db.c

  Modified: lib/db.c (+19 -19)
===================================================================
--- lib/db.c    2015-07-17 12:17:15 +0900 (f45b5d3)
+++ lib/db.c    2015-07-17 12:23:53 +0900 (b1f9867)
@@ -8446,12 +8446,12 @@ _grn_obj_remove_pat(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_pat_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_pat_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8478,12 +8478,12 @@ _grn_obj_remove_dat(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_dat_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_dat_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8510,12 +8510,12 @@ _grn_obj_remove_hash(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_hash_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_hash_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8540,12 +8540,12 @@ _grn_obj_remove_array(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_array_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_array_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8565,12 +8565,12 @@ _grn_obj_remove_ja(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_ja_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_ja_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8590,12 +8590,12 @@ _grn_obj_remove_ra(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_ra_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_ra_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
   grn_obj_touch(ctx, db, NULL);
 
@@ -8613,12 +8613,12 @@ _grn_obj_remove_index(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   if (rc != GRN_SUCCESS) { return rc; }
 
   if (path) {
+    rc = grn_ii_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
     rc = grn_obj_delete_by_id(ctx, db, id, GRN_TRUE);
     if (rc != GRN_SUCCESS) { return rc; }
-    rc = grn_ii_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
   }
 
   grn_obj_touch(ctx, db, NULL);
@@ -8635,6 +8635,11 @@ _grn_obj_remove_db_obj(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
   rc = grn_obj_close(ctx, obj);
   if (rc != GRN_SUCCESS) { return rc; }
 
+  if (path) {
+    rc = grn_io_remove(ctx, path);
+    if (rc != GRN_SUCCESS) { return rc; }
+  }
+
   if (!(id & GRN_OBJ_TMP_OBJECT)) {
     rc = grn_ja_put(ctx, ((grn_db *)db)->specs, id, NULL, 0, GRN_OBJ_SET, NULL);
     if (rc != GRN_SUCCESS) { return rc; }
@@ -8642,11 +8647,6 @@ _grn_obj_remove_db_obj(grn_ctx *ctx, grn_obj *obj, grn_obj *db, grn_id id,
     if (rc != GRN_SUCCESS) { return rc; }
   }
 
-  if (path) {
-    rc = grn_io_remove(ctx, path);
-    if (rc != GRN_SUCCESS) { return rc; }
-  }
-
   grn_obj_touch(ctx, db, NULL);
 
   return rc;
-------------- next part --------------
HTML����������������������������...
Download 



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