Ranges in the Version Graph
To save space in the database, Repository can associate a property value or relationship with an entire range of object versions. A range of object versions is a set of consecutive elements of a branch. (See Branches in the Version Graph.)
To refer to a range, a row of a Repository table must include the following four values:
-
The Version Graph — that is, the row must refer to the Repository object. Use the internal identifier of the object.
-
The Branch — the portion of the version graph containing the range. Use the branch identifier of the branch.
-
The Range Start — the element within the branch where the range starts. Use the version-within-branch identifier of the object version.
-
The Range End — the element within the branch where the range ends. Use the version-within-branch identifier of the object version, or use the special constant VERINFINITY (hex 7fffffff) to indicate an unbounded range.
Repository uses unbounded ranges to indicate that properties apply to a set of object versions that can grow as you make new object versions with CreateVersion.
For an example of how Repository uses unbounded ranges, see the sample data in Interface-Specific Tables.