[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: VLV indices and multi-value attributes



Something about this has been agitating me, I finally figured it out.  This control is attempting to do three things:

(a) Provide the ability to specify which value in a multi valued attribute is to be used as the sort key (min, max, any)

(b) Restrict the returned entry's attribute value set to one when (a) is used.  This is a bit like the MatchedValuesOnly argument in the X.500 search operation.

(c) Independent of (a) and (b), Specify that multiple attribute values result in duplicate entries, each with a single unique value in the attribute.

I think (a) and (b) belong in the SSS control and that (c) deserves its own control.  

John Merrils gave a compelling reason not to add the behavior in (c) to the SSS control. I think SSS is best place for (a) because it simply allows one to control the default behavior.  (b) is arguable; it affects the content of an entry but doesn't change the number of entries.  I can't see that putting it anywhere but SSS makes sense.

Here's how I imagine the modified SSS control value would look and how the er, 'other' control value would look.

SortKeyList::= SEQUENCE OF SEQUENCE {
     attributeType    AttributeDescription,
     orderingRule     [0] MatchingRuleId OPTIONAL,
     reverseOrder     [1] BOOLEAN DEFAULT FALSE
     value            [1] ENUMERATED DEFAULT min {
          min     (0),  - - smallest value used
          max     (1),  - - largest value used
          any     (2),  - - arbitrary value used } }


DissectOnValuesRequest::= SEQUENCE OF AttributeDescription


This seems much cleaner than trying to munge all three abilities into one control.  Especially in the case where one wants to specify that max or any value be used as the sort key, but the integrity of the entry remain (all values in the attribute are returned).

Another thought came up while writing this, instead of adding the  'value' argument to the SSS control,  there could be a set of specialty Matching Rules, that only make sense when used in this control.  They would specify min, max, any (and any future requirements).  How reasonable is that?  Does it smack too much of 'using a screwdriver to drive nails'?

Jim