Replacing segments
Replacing segments in HD databases is straightforward as long as fixed-length segments are used.
The segment data, once changed, is simply returned to its original location in storage. The key field in a segment cannot be replaced.
Provided sufficient adjacent space is available, the segment data
is returned to its original location when a variable-length segment
is replaced with a longer segment. If adjacent space is unavailable,
space is obtained from the overflow area for the lengthened data portion
of the segment. This segment is referred to as a separated data
segment.
It has a 2-byte prefix consisting of a 1-byte segment
code and a 1-byte delete flag, followed by the segment data. The
delete byte of the separated data segment is set to X'FF',
indicating that this is a separated data segment. A pointer is built
immediately following the original segment to point to the separated
data. Bit 4 of the delete byte of the original segment is set ON to
indicate that the data for this segment is separated. The unused remaining
space in the original segment is available for reuse.