ITS#8321 Fix del/dupsort
authorHoward Chu <hyc@openldap.org>
Sun, 22 Nov 2015 22:11:30 +0000 (22:11 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 23 Nov 2015 01:40:45 +0000 (01:40 +0000)
When deleting a dupsort key, if other cursors pointed at that key,
set them to uninit'd, not EOF. They no longer have anything to
point at.

libraries/liblmdb/mdb.c

index 1f12db3..329bf81 100644 (file)
@@ -8252,7 +8252,7 @@ mdb_cursor_del0(MDB_cursor *mc)
                                        if (m3->mc_ki[mc->mc_top] > ki)
                                                m3->mc_ki[mc->mc_top]--;
                                        else if (mc->mc_db->md_flags & MDB_DUPSORT)
-                                               m3->mc_xcursor->mx_cursor.mc_flags |= C_EOF;
+                                               m3->mc_xcursor->mx_cursor.mc_flags &= ~C_INITIALIZED;
                                }
                        }
                }