]> git.sur5r.net Git - openldap/commitdiff
mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
authorHallvard Furuseth <hallvard@openldap.org>
Sat, 4 Jul 2015 11:48:02 +0000 (13:48 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Sat, 4 Jul 2015 11:48:02 +0000 (13:48 +0200)
libraries/liblmdb/mdb.c

index 7cf52943a2827d925c0edb42661209c33ddfbe11..1de63e26687231e5865d332040c738e01b7dd2a6 100644 (file)
@@ -9470,8 +9470,10 @@ mdb_drop0(MDB_cursor *mc, int subs)
                MDB_cursor mx;
                unsigned int i;
 
-               /* LEAF2 pages have no nodes, cannot have sub-DBs */
-               if (IS_LEAF2(mc->mc_pg[mc->mc_top]))
+               /* DUPSORT sub-DBs have no ovpages/DBs. Omit scanning leaves.
+                * This also avoids any P_LEAF2 pages, which have no nodes.
+                */
+               if (mc->mc_flags & C_SUB)
                        mdb_cursor_pop(mc);
 
                mdb_cursor_copy(mc, &mx);