Patent ID: 7730084

Claim:
A method comprising: receiving, by a lightweight directory access protocol (LDAP) directory server that performs directory queries on an LDAP database, a request to process a nested query, the request including an input attribute and an input value for a distinguished name (DN) entry, wherein the input attribute and the DN entry correspond to objects defined in a schema for the LDAP database; and generating, by the LDAP directory server in response to the request, a virtual recursive attribute index that defines values for a virtual recursive attribute that does not correspond to an object defined in the schema because a value of the virtual recursive attribute is determined by a value of a DN of an entry that the virtual recursive attribute points plus a value of a DN of the pointed-to entry, wherein the generating further comprises: navigating through a directory tree of the LDAP directory server starting at the DN entry specified by the input value; for each current DN entry navigated to in the directory tree, adding a DN value from an attribute of the current DN entry as an entry in the virtual recursive attribute index if that attribute is equal to the input attribute; and returning the virtual recursive attribute index when a value for the attribute equal to the input attribute in a navigated-to DN entry is at least one of null or empty; and utilizing, by the LDAP directory server, the generated virtual recursive attribute index to process standard nested queries sent to the LDAP directory server; wherein modifications to both the value of the DN of the entry that the virtual recursive attribute points and the value of the DN of the pointed-to entry are reflected by flagging the virtual recursive attribute as a relational attribute and identifying an attribute used for a relation between the values.