Each version is identified by name, with an owner, description, and associated database
state. This table defines the different versions that the database contains and provides
a list of available versions to be presented to the user. These versions are used to access specific database states by the application. The
version name and ID are unique.
When the VERSIONS table is first created by ArcSDE, a default version will be inserted
into the table. This default version will be named DEFAULT, will be owned by the
sde
administrator, and granted PUBLIC access. The initial state_id will be set to 0, and the description string will read
Instance Default Version. Since the default version has been granted
PUBLIC access, any user can change the state of the default.
ArcGIS requires the presence of the default version. If you should inadvertently delete
the default version, you can replace it with the following SQL insert statement.
insert into versions value ('DEFAULT','SDE',1,1,0,'Instance default version.',null,null,SYSDATE); |
name |
SE_STRING_TYPE(64) |
NOT NULL |
The unique name of the version |
owner |
SE_STRING_TYPE(32) |
NOT NULL |
The version owner |
version_id |
SE_INTEGER_TYPE |
NOT NULL |
The unique ID of the version |
status |
SE_INTEGER_TYPE |
NULL |
Specifies whether the version is available to the
public or if it is privately accessed by the owner |
state_id |
SE_INTEGER_TYPE |
NOT NULL |
The ID of the database state to which this version points |
description |
SE_STRING_TYPE(64 in SQL Server 65 in all other DBMSs) |
NOT NULL |
An optional text description of the version |
parent_name |
SE_STRING_TYPE(64) |
NOT NULL |
The name of this version's Parent version |
parent_owner |
SE_STRING_TYPE(32) |
NOT NULL |
The name of the owner of the Parent Version |
parent_version_id |
SE_INTEGER_TYPE |
NOT NULL |
The ID of Version which is the Parent of this version. |
creation_time |
SE_DATE_TYPE |
NOT NULL |
The date/time that this version was created |
The STATES table accounts for all of the states that have been created over
time, thus maintaining a list of all database states. For each state, the creation time, closing time, parent, and owner are maintained.
Using the information in this table joined with STATE_LINEAGES, the entire versioned database history can be reconstructed.
When a state is created, a state ID is assigned and a record is added to this
table.
The STATES table maintains the following properties:
state_id |
SE_INTEGER_TYPE |
NOT NULL |
A unique integer ID for this state, assigned by ArcSDE |
owner |
SE_STRING_TYPE(32) |
NOT NULL |
The user who created this state |
creation_time |
SE_DATE_TYPE |
NOT NULL |
The date/time that this state was created |
closing_time |
SE_DATE_TYPE |
NULL |
The date/time that this state was closed |
parent_state_id |
SE_INTEGER_TYPE |
NOT NULL |
This state's parent State_ID |
lineage_name |
SE_INTEGER_TYPE |
NOT NULL |
References the state's lineage stored in the STATE_LINEAGES
table |
If a state is currently OPEN, that is, the owner can make changes within the state, the CLOSE_TIME will be NULL. Once a state has been closed, the CLOSE_TIME value
will be a legal (not NULL) date.
The Parent_State_ID column is a convenience for searching, and is redundant with the last
value of the lineage list. Without the Parent_State_ID column, the lineage must be
tracked for each state
to determine its parent.
The STATE_LINEAGES
table stores the lineage of each state. A new lineage name is created
for each version. Each time a state is added, the lineage name and the
state ID are added. When a state is added that is a new version, the ancestry
state lineage of the parent state are added with the lineage name.
lineage name |
SE_INTEGER_TYPE |
NOT NULL |
Leaf node name that describes a state |
lineage_id |
SE_INTEGER_TYPE |
NOT NULL |
Individual
states of a leaf node |
This table maintains the list of all tables that are modified in each state of the database. This information aids in quickly determining if conflicts exist between versions
or states of the database.
The MVTABLES_MODIFIED table maintains a record of all tables modified by state. This information allows applications to determine which tables need to be checked for
changes when reconciling potential conflicts between versions and states in the database.
The MVTABLES_MODIFIED table has the following schema:
state_id |
SE_INTEGER_TYPE |
NOT NULL |
The state in which this table was modified |
registration_id |
SE_INTEGER_TYPE |
NOT NULL |
The Registration ID of the table that was modified
in the state |