[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
[ldapext] Sorted attribute values
One of our customers requested an extension to sort the values in
multi-valued attributes, which we have now implemented in OpenLDAP 2.3.
Kurt suggested that we should also provide a (critical) control so that
new clients can explicitly request this behavior (or disable it). I'm
thinking we should publish the resulting work as an Informational or
Experimental RFC.
The extension on the server can be configured to use one of 5 sort
methods on a particular attributes in particular subtrees of the DIT.
The first 4 methods are pretty straightforward - alpha ascending, alpha
descending, and numeric ascending/descending. The 5th method is called
"weighted" and while the previous 4 methods can be used without any
special preparation, weighted sorting requires weights to be prefixed to
the attribute values of interest. The weights are denoted by '{xx}'
where 'xx' is an integer and are always sorted in ascending order. Also,
the weights are not returned with the values in normal search results.
So, given an attribute
foo: {10}Animal
foo: {3}Vegetable
foo: {1}Mineral
a search response with weighted sorting would return
foo: Mineral
foo: Vegetable
foo: Animal
Currently the control is defined with a single boolean flag, which if
set TRUE, disables sorting and causes attributes to be returned as-is.
If it weren't for this weighted sorting method, I would have preferred
to have no server-side configuration, and just let the client choose its
sorting parameters completely in the control. That strikes me as the
most general solution. But this method was specified because they wanted
to get the sorting behavior without needing to update existing
clients, and there's no way you could support weights without
server-side state information. (And yes, even though there are no
guarantees about the order of values returned in multi-valued
attributes, they wrote their clients assuming there was a guaranteed
order. sigh...)
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/
_______________________________________________
Ldapext mailing list
Ldapext@ietf.org
https://www1.ietf.org/mailman/listinfo/ldapext