The secondary name record collection performs functions that are similar to record collections, but also allows fixed length fields within the data portion of each record to be used, along with the "primary" name to construct a "secondary name". The secondary name is ((fl,f)(pl,p)). If a particular record does not hold a secondary field because it is too short it will not be retrieved along the secondary path. Write operations do not use the secondary field part of the name. It uses the data from the record instead.
Order codes 0 through 19 perform the same function, with the same return codes, as in the record collection {(rc)}. {Note that c=9 & c=10 can be returned for read type operations if there are not enough nodes or pages respectively to build the secondary index.} Additional order codes are defined as follows:
c=0 - New path defined, SN has same access rights as SNRC
c=1 - Path already exists, SN is {old} key to that path with the same access rights as SNRC.
c=7 - Data string is not 4 bytes long
c=9 - Can't get enough nodes from the SNRC's space bank to build secondary index. {SN is returned.}
c=10 - Can't get enough pages from SNRC's space bank to build secondary index. {SN is returned.}
c=13 length of the secondary field+ the length of the longest primary name > 255 or the secondary field is outside the longest valid record {as defined when SNRCF was called to create this collection}.
c=14 - Not enough nodes to build the secondary name path. SN is DK(0).
c=kt+2 - SNRC does not have the right to perform this operation
SNRC(kt==>X'117',data) - Name sequence secondary name record collection.