Processing Fast Path DEDBs with subset pointer options

Subset pointers and the options you use with them are optimization tools that significantly improve the efficiency of your program when you need to process long segment chains.

Subset pointers divide a chain of segment occurrences under the same parent into two or more groups, or subsets. You can define as many as eight subset pointers for any segment type. You then define the subset pointers from within an application program. Each subset pointer points to the start of a new subset. For example, in the following figure, suppose you defined one subset pointer that divided the last three segment occurrences from the first four. Your program can then refer to that subset pointer through options, and directly retrieve the last three segment occurrences.

Figure 1. Processing a long chain of segment occurrences with subset pointers
Begin figure description. Seven consecutive boxes represent a chain of segment occurrences labeled B1 through B7. An arrow labeled P1, points to B5 of the segments and represents a subset pointer. End figure description.

You can use subset pointers at any level of the database hierarchy, except at the root level. Subset pointers used for the root level are ignored.

The next two figures show some of the ways you can set subset pointers. Subset pointers are independent of one another, which means that you can set one or more pointers to any segment in the chain. For example, you can set more than one subset pointer to a segment, as shown in the following figure.

Figure 2. Examples of setting multiple subset pointers
Begin figure description. Seven consecutive boxes represent a chain of segment occurrences labelled B1 through B7. Arrows representing subset pointers points to the segments as follows: P2 points to B1, P3 and P5 both point to B3 (representing multiple subset pointers to one segment), P6 points to B4, P7 to B5, and P8 to B. Segments B2 and B7 have no pointers to them. End figure description.

Alternatively, you can define a one-to-one relationship between the pointers and the segments, as shown in Figure 3 where each segment occurrence has one subset pointer.

Figure 3. More examples of setting subset pointers
Begin figure description. Seven consecutive boxes represent a chain of segment occurrences labelled B1 through B7. Arrows representing subset pointers P1 though P6 points to each of the segment occurrences B1 to B6 respectively. B7 has no pointer to it. End figure description.

The following figure shows how the use of subset pointers divides a chain of segment occurrences under the same parent into subsets. Each subset ends with the last segment in the entire chain. For example, the last segment in the subset defined by subset pointer 1 is B7.

Figure 4. How subset pointers divide a chain into subsets
Begin figure description. Seven consecutive boxes represent a chain of segment occurrences labelled B1 through B7. Two arrows representing subset pointers points to these segment occurrences: P1 points to B3 and P2 points to B5. End figure description.