assert( mdb != NULL );
if ( !txn ) {
- rc = mdb_txn_begin( mdb->mi_dbenv, MDB_RDONLY, &txn );
+ rc = mdb_txn_begin( mdb->mi_dbenv, NULL, MDB_RDONLY, &txn );
if ( rc )
return NOID;
rc = mdb_cursor_open( txn, mdb->mi_id2entry, &cursor );
mdb = (struct mdb_info *) be->be_private;
if ( !txn ) {
- rc = mdb_txn_begin( mdb->mi_dbenv, (slapMode & SLAP_TOOL_READONLY) != 0 ?
+ rc = mdb_txn_begin( mdb->mi_dbenv, NULL, (slapMode & SLAP_TOOL_READONLY) != 0 ?
MDB_RDONLY : 0, &txn );
if ( rc )
return NOID;
mdb = (struct mdb_info *) be->be_private;
if ( !txn ) {
- rc = mdb_txn_begin( mdb->mi_dbenv, 0, &txn );
+ rc = mdb_txn_begin( mdb->mi_dbenv, NULL, 0, &txn );
if( rc != 0 ) {
snprintf( text->bv_val, text->bv_len,
"txn_begin failed: %s (%d)",
mi->mi_nattrs = i;
}
+ if ( slapMode & SLAP_TRUNCATE_MODE ) {
+ int i;
+ for ( i=0; i < mi->mi_nattrs; i++ ) {
+ rc = mdb_drop( txn, mi->mi_attrs[i]->ai_dbi, 0 );
+ if ( rc ) {
+ Debug( LDAP_DEBUG_ANY,
+ LDAP_XSTRING(mdb_tool_entry_reindex)
+ ": (Truncate) mdb_drop(%s) failed: %s (%d)\n",
+ mi->mi_attrs[i]->ai_desc->ad_type->sat_cname.bv_val,
+ mdb_strerror(rc), rc );
+ return -1;
+ }
+ }
+ slapMode ^= SLAP_TRUNCATE_MODE;
+ }
+
e = mdb_tool_entry_get( be, id );
if( e == NULL ) {
}
if ( !txi ) {
- rc = mdb_txn_begin( mi->mi_dbenv, 0, &txi );
+ rc = mdb_txn_begin( mi->mi_dbenv, NULL, 0, &txi );
if( rc != 0 ) {
Debug( LDAP_DEBUG_ANY,
"=> " LDAP_XSTRING(mdb_tool_entry_reindex) ": "
mdb_cursor_close( cursor );
cursor = NULL;
}
- rc = mdb_txn_begin( mdb->mi_dbenv, 0, &tid );
+ rc = mdb_txn_begin( mdb->mi_dbenv, NULL, 0, &tid );
if( rc != 0 ) {
snprintf( text->bv_val, text->bv_len,
"txn_begin failed: %s (%d)",