For multi-valued attributes, adding the extension "X-ORDERED 'VALUES'"
means to maintain the numeric index for all of the values of the
attribute. Regardless of the order in which values are stored in the
underlying database, the values will be sorted by their index values
before being returned to a client. Also, the numeric index may be used
instead of/in addition to the value in modify ops. (And maybe filter
assertions? Might be useful for valueReturn...) Otherwise, if the
numeric index is absent from the assertion value, it is ignored in
comparisons.
So if we have this entry
dn: olcDatabase={1}bdb,cn=config
olcDatabase: {1}bdb
objectClass: bdbConfig
olcSuffix: {0}dc=example,dc=com
olcSuffix: {1}o=example.com
We can perform these Modify operations:
dn: olcDatabase={1}bdb,cn=config
changetype: modify
delete: olcSuffix
olcSuffix: {0}
-
(Delete the first suffix, regardless of its value. All other values
are bumped up one position.)
delete: olcSuffix
olcSuffix: dc=example,dc=com
-
(Delete the suffix that matches the value, regardless of its index)
delete: olcSuffix
olcSuffix: {0}dc=example,dc=com
-
(Both index and value must match...)
add: olcSuffix
olcSuffix: o=example.org
-
(Add the new value, appended to the end)
add: olcSuffix
olcSuffix: {0}o=example.org
-
(Add the new value as value #0. All other values are bumped down one
position.)
The Suffix example is pretty trivial; ACL editing is where this really
makes a difference between usability and sheer torture...