On 07/21/2009 02:27 PM, Andrey Ivanov wrote:
> Nathan also pointed out several typos as well as an issue of internal
> deletion. Currently, if the delete is initiated internally, the entry is
> not converted to a tombstone unless the backend is replicated. I'm adding
> this issue to ToDo list for now.
That's almost exactly the question i wanted to ask - what happens when
several pre- or post- operation plug-ins affect the same entry? For
example, the memberOf (or DNA) plug-in changes the memberOf attribute
of an entry. Is this change of memberOf attribute considered as an
entryUSN increment or not?
Is there some general rule (for example, for pre- plugins the entryUSN
is increased and for post- it is not...)?
Assigning USN is implemented as backend preop callbacks (see usn.c).
They are called just before updating the database. That is, every time
the entry is updated regardless of the updater, USN is counted up. That
being said, it could be considered as one operation from the client
point of view, it could be internally multiple updates. In such case,
USN could be counted up by more than one with "one operation".
Converting an entry to a tombstone is an exception. It's implemented as
a pure preop callback, which is only called when the updater is external.