ITS#7778 fix regression from #7329

This commit is contained in:
Howard Chu 2014-01-13 11:26:46 -08:00
parent 14868fcab6
commit b1ed3bf10a
2 changed files with 22 additions and 0 deletions

View file

@ -389,6 +389,7 @@ int bdb_modify_internal(
ap->a_nvals,
e->e_id, SLAP_INDEX_ADD_OP );
} else {
int found = 0;
/* if this was only an add, we only need to index
* the added values.
*/
@ -396,6 +397,7 @@ int bdb_modify_internal(
struct berval *vals;
if ( ml->sml_desc != ap->a_desc || !ml->sml_numvals )
continue;
found = 1;
switch( ml->sml_op ) {
case LDAP_MOD_ADD:
case LDAP_MOD_REPLACE:
@ -415,6 +417,15 @@ int bdb_modify_internal(
if ( rc )
break;
}
/* This attr was affected by a modify of a subtype, so
* there was no direct match in the modlist. Just readd
* all of its values.
*/
if ( !found ) {
rc = bdb_index_values( op, tid, ap->a_desc,
ap->a_nvals,
e->e_id, SLAP_INDEX_ADD_OP );
}
}
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY,

View file

@ -389,6 +389,7 @@ int mdb_modify_internal(
ap->a_nvals,
e->e_id, SLAP_INDEX_ADD_OP );
} else {
int found = 0;
/* if this was only an add, we only need to index
* the added values.
*/
@ -396,6 +397,7 @@ int mdb_modify_internal(
struct berval *vals;
if ( ml->sml_desc != ap->a_desc || !ml->sml_numvals )
continue;
found = 1;
switch( ml->sml_op ) {
case LDAP_MOD_ADD:
case LDAP_MOD_REPLACE:
@ -415,6 +417,15 @@ int mdb_modify_internal(
if ( rc )
break;
}
/* This attr was affected by a modify of a subtype, so
* there was no direct match in the modlist. Just readd
* all of its values.
*/
if ( !found ) {
rc = mdb_index_values( op, tid, ap->a_desc,
ap->a_nvals,
e->e_id, SLAP_INDEX_ADD_OP );
}
}
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY,