ldb-tdb: Introduce a flag on ltdb_add_internal to indicate whether unique value test...
commitf97e4f6b8f0693c737bfaf1c4d58ea52d8854306
authorMatthieu Patou <mat@matws.net>
Tue, 12 Jul 2011 15:22:35 +0000 (12 19:22 +0400)
committerMatthieu Patou <mat@samba.org>
Wed, 13 Jul 2011 00:29:20 +0000 (13 02:29 +0200)
treebbca9904a14077e0a5dc0e9238a18a7c668ee745
parenta1c1f8c83b49c46acfaa6ecd4df125828ebc2199
ldb-tdb: Introduce a flag on ltdb_add_internal to indicate whether unique value test should be performed or not

The function ltdb_add_internal is called either from ltdb_add or
ltdb_rename. In case of add we enforce the unique test (unless it has
been relaxed by a upper module through the
LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK flag), but for rename as it
is translated by a delete + a add we relax the test as we can have one
or more attribute which are supposed to be single valued but that are
not (ie. when we have a couple of deleted value on a single valued
attribute), we have already done the tests on insert so make the
assumption that the values are OK.

Without this patch deleting a subnet that has been affected to more than
one site fails as the delete is in fact a rename to GUID\0DEL ... with
an attribute siteObject that has 1 active link value and 1 inactive link
value

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Wed Jul 13 02:29:20 CEST 2011 on sn-devel-104
lib/ldb/ldb_tdb/ldb_tdb.c