Previous Topic: How the DSA Compares Parameters in Views

Next Topic: How the EIS Works

How a Phase Uses Multiple Results from an Earlier Phase

A phase can return multiple entries, and can also return an attribute with multiple values. How the DSA handles multiple results in later phases depends on where the later phase specifies the previous phase's result as defined in the set view command. In a phase definition of the set view command, the following options can specify the results of previous phases:

Subtree DN

A phase always has a subtree specification, which is the DN that defines the root of phase search. If this DN is defined by the result of a previous phase, then the DSA runs a separate phase search for each different result. For example, if phase one returns four DNs, and phase two specifies its subtree DN as the result of phase one, then the DSA runs a phase two search four times, once with each different value of DN.

Filter

If a phase specifies a filter as part of its search, then the DSA ORs all the specified values of all the returned entries. For example, consider a view in which phase one returns two entries with attribute Attr, the first of which has two values Val1 and Val2, and the second of which has value Val3. A filter in a subsequent phase can use the returned values of Attr from phase one by including the fragment:

filter = $1:attr

DSA replaces this with the following:

filter = (|(attr=val1)(attr=val2)(attr=val3))
eis

Every return value is used. This is equivalent to specifying multiple attribute names in the eis option.

allowed-attr, allowed-target, prune-attr, prune-target

All combinations of every value are used. For example if allowed-attr has three attribute names and allowed-target has two attribute names, then both attributes in allowed-target have three new values.