Ranges in the Version Graph

Meta Data Services Programming

Meta Data Services Programming

Ranges in the Version Graph

To save space in the database, the repository engine 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. For more information, see Branches in the Version Graph.

To refer to a range, a row of a repository SQL 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. This is the portion of the version graph containing the range. Use the branch identifier of the branch.

  • The Range Start. This is the element within the branch where the range starts. Use the version-within-branch identifier of the object version.

  • The Range End. This is 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.

The repository engine uses unbounded ranges to indicate that properties apply to a set of object versions that can grow as you make new object versions using CreateVersion.

For more information about how the repository engine uses unbounded ranges, see Interface-Specific Tables.

See Also

IRepositoryObjectVersion::CreateVersion

Repository SQL Schema

Repository SQL Tables

RepositoryObjectVersion CreateVersion Method

Storage Strategy in a Repository Database

Version Graph