Helix Server Schema Documentation

Release: 2018.1

Contents

Alphabetical List of Tables

Filename Lock Order Vers. Description
db.archmap 36 0 Mapping entries for lazy-copies
db.bodresolve 71 0 Resolve data for stream specifications
db.bodtext 72 1 Job data for job attributes
db.bodtextcx 73 0 Versioned openable spec fields (for future use)
db.bodtexthx 74 0 Head revision of spec fields (for future use)
db.bodtextsx 75 0 Shelved openable spec fields (for future use)
db.bodtextwx 76 0 Open openable spec fields (for future use)
db.change 56 4 Changelists
db.changeidx 58 1 Secondary index of db.change/db.changex
db.changex 57 4 Subset of db.change - records for pending changelists only
db.config 1 1 Server configurations table
db.counters 2 1 Counters table
db.depot 17 1 Depot specifications
db.desc 59 0 Change descriptions
db.domain 19 7 Domains: depots, clients, labels, branches, streams, and typemap
db.excl 53 1 Exclusively locked (+l) files - enables coordinated file locking in commit/edge server environments
db.fix 69 1 Fix records - indexed by job
db.fixrev 70 1 Fix records - indexed by change
db.graphindex 64 1 Graph depot repository index data
db.graphperm 65 0 Graph depot permissions
db.group 15 9 Group specifications
db.groupx 16 1 Per-group data to support group membership controlled by AD/LDAP group membership
db.have 30 3 Contains the 'have-list' for all clients
db.have.pt 29 3 Placeholder for read-only clients
db.have.rp 28 3 Contains the 'have-list' for clients of build-server replicas
db.haveg 52 0 Contains the 'have-list' for graph depot
db.haveview 25 1 Stores mapping changes for clients mapping graph depot content
db.integed 31 0 Permanent integration records
db.integtx 32 0 Temporary integration records used by task streams
db.ixtext 77 0 Indexing data for generic and job attributes
db.ixtexthx 78 0 Indexing data for head revision of all spec fields (for future use)
db.jnlack 84 0 Tracks journal positions of all standby servers
db.job 68 0 Job records
db.label 27 0 Revisions of files in labels
db.ldap 5 0 LDAP specifications
db.locks 47 2 Locked/Unlocked files
db.locksg 48 2 Lock records for clients of type graph
db.logger 4 0 Support for 'p4 logger' command. Logs any changes to changelists and jobs
db.message 82 0 System messages
db.monitor 85 2 Helix Server process information
db.nameval 3 1 A table to store key/value pairs
db.object 63 0 Object storage for graph depots
db.property 81 0 Properties
db.protect 80 5 The protections table
db.pubkey 67 0 SSH Public keys
db.ref 62 0 Reference content for graph depots
db.refhist 61 0 Reference history for graph depots
db.remote 8 1 Remote specifications
db.repo 60 2 Repository specifications
db.resolve 33 1 Pending integration records
db.resolveg 35 0 Resolve records for clients of type graph
db.resolvex 34 1 Pending integration records for shelved files
db.rev 45 9 Revision records
db.revbx 42 9 Revision records for archived files
db.revcx 44 0 Secondary index of db.rev
db.revdx 37 9 Revision records for revisions deleted at the head revision
db.revhx 38 9 Revision records for revisions NOT deleted at the head revision
db.review 26 1 User's review mappings
db.revpx 39 9 Pending revision records
db.revsh 41 9 Revision records for shelved files
db.revsx 40 9 Revision records for spec depot files
db.revtx 46 9 Task stream revision records
db.revux 43 9 Revision records for unload depot files
db.rmtview 9 1 View data for remote specifications
db.sendq 83 4 Parallel file transmission work queue
db.server 6 2 Server specifications
db.stash 10 0 Stash data
db.stream 18 1 Stream specifications
db.submodule 66 0 Submodule configuration data
db.svrview 7 0 View data for servers specifications
db.template 20 2 Streams templates
db.templatesx 21 0 Shelved stream templates
db.templatewx 22 0 Pending stream templates
db.ticket 14 0 Second factor authentication state on a per user/host basis
db.ticket.rp 13 0 Second factor authentication state on a per user/host basis (replica)
db.traits 54 0 Attributes associated with file revisions
db.trigger 55 3 Trigger specifications
db.user 12 7 User specifications
db.user.rp 11 7 Used by replica server's to store login information
db.uxtext 79 0 Indexing data for Swarm
db.view 24 1 View data for domain records
db.view.rp 23 1 View data for clients of build-server replicas
db.working 49 10 Records for work in progress
db.workingg 51 0 Working records for clients of type graph
db.workingx 50 10 Records for shelved open files
rdb.lbr Replica server pending archive transfer table
tiny.db Records revision and content data for files using the +T file type modifier

Locking Order

To avoid the possibility of deadlock, the Helix Server always locks its tables in a defined order. The section below lists the tables in the order in which they are locked. When a checkpoint is taken, the order of the database file content written to the checkpoint follows the table locking order.

Lock Order Filename Vers. Description
1 db.config 1 Server configurations table
2 db.counters 1 Counters table
3 db.nameval 1 A table to store key/value pairs
4 db.logger 0 Support for 'p4 logger' command. Logs any changes to changelists and jobs
5 db.ldap 0 LDAP specifications
6 db.server 2 Server specifications
7 db.svrview 0 View data for servers specifications
8 db.remote 1 Remote specifications
9 db.rmtview 1 View data for remote specifications
10 db.stash 0 Stash data
11 db.user.rp 7 Used by replica server's to store login information
12 db.user 7 User specifications
13 db.ticket.rp 0 Second factor authentication state on a per user/host basis (replica)
14 db.ticket 0 Second factor authentication state on a per user/host basis
15 db.group 9 Group specifications
16 db.groupx 1 Per-group data to support group membership controlled by AD/LDAP group membership
17 db.depot 1 Depot specifications
18 db.stream 1 Stream specifications
19 db.domain 7 Domains: depots, clients, labels, branches, streams, and typemap
20 db.template 2 Streams templates
21 db.templatesx 0 Shelved stream templates
22 db.templatewx 0 Pending stream templates
23 db.view.rp 1 View data for clients of build-server replicas
24 db.view 1 View data for domain records
25 db.haveview 1 Stores mapping changes for clients mapping graph depot content
26 db.review 1 User's review mappings
27 db.label 0 Revisions of files in labels
28 db.have.rp 3 Contains the 'have-list' for clients of build-server replicas
29 db.have.pt 3 Placeholder for read-only clients
30 db.have 3 Contains the 'have-list' for all clients
31 db.integed 0 Permanent integration records
32 db.integtx 0 Temporary integration records used by task streams
33 db.resolve 1 Pending integration records
34 db.resolvex 1 Pending integration records for shelved files
35 db.resolveg 0 Resolve records for clients of type graph
36 db.archmap 0 Mapping entries for lazy-copies
37 db.revdx 9 Revision records for revisions deleted at the head revision
38 db.revhx 9 Revision records for revisions NOT deleted at the head revision
39 db.revpx 9 Pending revision records
40 db.revsx 9 Revision records for spec depot files
41 db.revsh 9 Revision records for shelved files
42 db.revbx 9 Revision records for archived files
43 db.revux 9 Revision records for unload depot files
44 db.revcx 0 Secondary index of db.rev
45 db.rev 9 Revision records
46 db.revtx 9 Task stream revision records
47 db.locks 2 Locked/Unlocked files
48 db.locksg 2 Lock records for clients of type graph
49 db.working 10 Records for work in progress
50 db.workingx 10 Records for shelved open files
51 db.workingg 0 Working records for clients of type graph
52 db.haveg 0 Contains the 'have-list' for graph depot
53 db.excl 1 Exclusively locked (+l) files - enables coordinated file locking in commit/edge server environments
54 db.traits 0 Attributes associated with file revisions
55 db.trigger 3 Trigger specifications
56 db.change 4 Changelists
57 db.changex 4 Subset of db.change - records for pending changelists only
58 db.changeidx 1 Secondary index of db.change/db.changex
59 db.desc 0 Change descriptions
60 db.repo 2 Repository specifications
61 db.refhist 0 Reference history for graph depots
62 db.ref 0 Reference content for graph depots
63 db.object 0 Object storage for graph depots
64 db.graphindex 1 Graph depot repository index data
65 db.graphperm 0 Graph depot permissions
66 db.submodule 0 Submodule configuration data
67 db.pubkey 0 SSH Public keys
68 db.job 0 Job records
69 db.fix 1 Fix records - indexed by job
70 db.fixrev 1 Fix records - indexed by change
71 db.bodresolve 0 Resolve data for stream specifications
72 db.bodtext 1 Job data for job attributes
73 db.bodtextcx 0 Versioned openable spec fields (for future use)
74 db.bodtexthx 0 Head revision of spec fields (for future use)
75 db.bodtextsx 0 Shelved openable spec fields (for future use)
76 db.bodtextwx 0 Open openable spec fields (for future use)
77 db.ixtext 0 Indexing data for generic and job attributes
78 db.ixtexthx 0 Indexing data for head revision of all spec fields (for future use)
79 db.uxtext 0 Indexing data for Swarm
80 db.protect 5 The protections table
81 db.property 0 Properties
82 db.message 0 System messages
83 db.sendq 4 Parallel file transmission work queue
84 db.jnlack 0 Tracks journal positions of all standby servers
85 db.monitor 2 Helix Server process information

Upgrades

The following table lists the upgrade operations performed by p4d -xu and shows the release in which each upgrade was introduced.

The 2018.1 release has 29 upgrades.
Upgrade Release Description Notes
1 2001.1 Split db.integ into db.integed and db.resolve
2 2001.1 Split db.have into db.have and db.label
3 2002.1 Split db.change into db.change and db.changex
4 2002.2 Upgrade tempobj filetype in db.rev
5 2002.2 Upgrade tempobj filetype in db.working
6 2003.1 Initialize default depot
7 2003.2 Upgrade db.user
8 2005.1 Build db.revhx (headrev) table
9 2005.1 Rebuild db.locks from db.working
10 2005.1 Build lazy-copy index (db.archive) Removed in 2006.2
11 2005.2 Build db.revdx (delrev) table
12 2005.2 Build haveMap from db.have/db.working Moved to 16 in 2007.3
13 2005.2 Move spec depot entries into db.revsx
14 2006.2 Build db.archmap (lazy-copy map) table Moved to 17 in 2007.3
15 2006.2 Remove (obsolete) db.archive table Moved to 18 in 2007.3
16 2007.3 Build/Rebuild haveMap from db.have/db.working Rewritten in 2007.3
17 2007.3 Build/Rebuild db.archmap (lazy-copy map) table Rewritten in 2007.3
18 2007.3 Remove (obsolete) db.archive table Moved from 15 in 2007.3
19 2008.1 Build db.change common path
20 2009.2 Move db.boddate/db.ixdate into db.bodtext/db.ixtext
21 2009.2 Remove db.boddate/db.ixdate
22 2010.2 Move system counters into db.config
23 2011.1 Upgrade tiny.db
24 2015.2 Move LDAP specs into db.ldap
25 2016.1 Create db.templatesx and db.templatewx
26 2016.2 Initialize graph depot
27 2017.1 Rename repo specifications, build owner graph permissions, remove db.repoview
28 2017.2 No upgrades - upgrade counter value increment only
29 2018.1 Remove existing db.graphindex

The following table lists the upgrade operations performed by a server when first configured as a commit server and shows the release in which each upgrade was introduced.

These upgrades run when the first server specfication with 'Services: commit-server' is saved.

Upgrade Release Description Notes
commit-server 2013.2 Generate exclusive locks Generate exclusive lock records in db.excl based on db.working data.
commit-server 2014.1 Promote Shelves Promote existing shelves by updating changeStatus in db.change and db.changex.

Table Details

db.archmap - Mapping entries for lazy-copies

Indexed on: lbrFile, depotFile
Name Type Description
lbrFile File Paths in the librarian namespace that receive lazy copies.
depotFile File Paths in the depot namespace that provide lazy copies.
Note: Supersedes db.archive

db.bodresolve - Resolve data for stream specifications

Indexed on: type, client, toKey, attr, fromKey, fromChange
Name Type Description
type SpecType The spec type
client Domain The client name
toKey String To Key
attr Int The attribute value
fromKey String From key
fromChange Change From change
baseKey String Base Key
baseChange Change Base change

db.bodtext - Job data for job attributes

Indexed on: key, attr
Name Type Description
key String The job to which this attribute belongs
attr Int The attribute number (from the jobspec) of this attribute
isBulk Int Indicates whether (1), or not (0) the field is a bulk text field that should not be indexed.
text Text The attribute value

db.bodtextcx - Versioned openable spec fields (for future use)

Indexed on: type, key, change, attr
Name Type Description
type Int The type of spec
key String The spec to which this attribute belongs
change Change The change to which this attribute belongs
attr Int The attribute number of this attribute
text Text The attribute value

db.bodtexthx - Head revision of spec fields (for future use)

Indexed on: type, key, attr
Name Type Description
type Int The type of spec
key String The spec to which this attribute belongs
attr Int The attribute number of this attribute
bulk Int Indicates whether (1), or not (0) the field is a bulk text field that should not be indexed.
text Text The attribute value

db.bodtextsx - Shelved openable spec fields (for future use)

Indexed on: type, shelf, key, attr
Name Type Description
type Int The type of spec
shelf Change The shelf to which this attribute belongs
key String The spec to which this attribute belongs
attr Int The attribute number of this attribute
text Text The attribute value
workChange Change The working change

db.bodtextwx - Open openable spec fields (for future use)

Indexed on: type, client, key, attr
Name Type Description
type Int The type of spec
client String The client the spec is opened on
key String The spec to which this attribute belongs
attr Int The attribute number of this attribute
text Text The attribute value
workChange Change The working change

db.change - Changelists

Indexed on: change
Name Type Description
change Change The change number
descKey Change The description key. Normally the same as 'change', but may differ if a changelist was renumbered on submission.
client Domain The client from which the change originates
user User The user who owns the change
date Date Date and time the changelist was submitted
status ChangeStatus Status of the change
description DescShort Short description of the change.
root Mapping Common path for all files in the changelist
importer String The user who fetched or pushed this change to this server
identify String Identifier for this change
access Date Shelve last access

db.changeidx - Secondary index of db.change/db.changex

Indexed on: identity
Name Type Description
identity String Identifier for this change
change Change Changelist

db.changex - Subset of db.change - records for pending changelists only

Indexed on: change
Name Type Description
change Change The change number
descKey Change The description key. Normally the same as 'change', but may differ if a changelist was renumbered on submission.
client Domain The client from which the change originates
user User The user who owns the change
date Date Date and time the changelist was submitted
status ChangeStatus Status of the change
description DescShort Short description of the change.
root Mapping Common path for all files in the changelist
importer String The user who fetched or pushed this change to this server
identify String Identifier for this change
access Date Shelve last access
Note: contains records for pending changelists only.

db.config - Server configurations table

Indexed on: serverName, name
Name Type Description
sname String Server name
name String Configuration variable name
value Value Configuration variable value

db.counters - Counters table

Indexed on: name
Name Type Description
name Counter Counter name
value Value Counter value

db.depot - Depot specifications

Indexed on: name
Name Type Description
name Domain Depot name
type DepotType Type of depot
extra Text For remote depots, the P4PORT address of the remote server. For spec depots, the field contains a suffix to append to the filename.
map Text The depot's map (path translation information). For local depots, this will be a path relative to the root directory. For remote depots, this will be specified in terms of the remote server's namespace.

db.desc - Change descriptions

Indexed on: descKey
Name Type Description
descKey Change Original number of the change to which this description applies. This may differ from the final change number if the change is renumbered on submission.
description Text The change description itself

db.domain - Domains: depots, clients, labels, branches, streams, and typemap

Indexed on: name
Name Type Description
name Domain Domain name
type DomainType Type of domain
extra Text Formerly "host". Associated host or, for labels, revision number.
mount Text The client root
mount2 Text Alternate client root
mount3 Text Alternate client root
owner User Name of user who owns the domain.
updateDate Date Date of last update to domain specification.
accessDate Date Date of last access to domain specification.
options DomainOpts Options for client, label, and branch domains.
description Text Description of domain.
stream Domain Associated stream for client records
serverid Text Associated server ID for client records
contents Int Client domain contents. 1: Maps only classic depot files, 2: Maps only graph depot files, 3: Maps both classic and graph depot files

db.excl - Exclusively locked (+l) files - enables coordinated file locking in commit/edge server environments

Indexed on: depotFile
Name Type Description
depotFile File The file locked
client Domain The client for which the file is locked
user User The user for which the file is locked

db.fix - Fix records - indexed by job

Indexed on: job, change
Name Type Description
job String Job name
change Change Changelist number
date Date Date fix was recorded (may differ from date change was submitted).
status FixStatus Status of the job
client Domain The client where the fix originated
user User The user who fixed the job
See also:db.fixrev

db.fixrev - Fix records - indexed by change

Indexed on: change, job
Name Type Description
job String Job name
change Change Changelist number
date Date Date fix was recorded (may differ from date change was submitted).
status FixStatus Status of the job
client Domain The client where the fix originated
user User The user who fixed the job
See also:db.fix

db.graphindex - Graph depot repository index data

Indexed on: id, name, date, blobsha, commitsha
Name Type Description
id Int ID of repo index belongs to
fileName File File name (minus the repo name)
commitDate Date Descending historical commit sequence
blobSHA SHA1 SHA of blob
commitSHA SHA1 SHA of commit that added/edited this file
flags Int Miscellaneous flags
GIsize FileSize file size
GItype FileType type
GIlfsoid text LFS Object ID

db.graphperm - Graph depot permissions

Indexed on: name, repo, ref, type, user, perm
Name Type Description
name Domain Graph depot name
repo String Repository name
ref String Reference
type UserType Type of user
user User User or Group for permission
perm GraphPermType Permission

db.group - Group specifications

Indexed on: user, group
Name Type Description
user User User name
group User Group name
type UserType Type of user in this group.
maxResults MaxResults MaxResults setting for the group.
maxScanRows MaxScanRows MaxScanRows setting for the group.
maxLockTime MaxLockTime MaxLockTime setting for the group.
maxOpenFiles MaxOpenFiles MaxOpenFiles setting for the group.
timeout Int Length of time (in seconds) a login ticket remains valid.
passwordTimeout Int Length of time (in seconds) a password remains valid for users in the group.

db.groupx - Per-group data to support group membership controlled by AD/LDAP group membership

Indexed on: group
Name Type Description
group User Group name
ldapConf String The LDAP configuration to use when populating the group's user list from an LDAP query
ldapSearchQuery String The LDAP query used to identify the members of the group
ldapUserAttribute String The LDAP attribute that represents the user's username
ldapDNAttribute String The LDAP attribute that represents the user's DN

db.have - Contains the 'have-list' for all clients

Indexed on: clientFile
Name Type Description
clientFile File The file in its location on the client
depotFile File The file in the depot
haveRev Rev The revision synced to the client
type FileType The filetype of the synced revision
time Date The sync time of the synced revision

db.have.pt - Placeholder for read-only clients

Indexed on: clientFile depotFile haveRev
Name Type Description
clientFile File The file in its location on the client
depotFile File The file in the depot
haveRev Rev The revision synced to the client
type FileType The filetype of the synced revision
time Date The sync time of the synced revision

db.have.rp - Contains the 'have-list' for clients of build-server replicas

Indexed on: clientFile depotFile haveRev
Name Type Description
clientFile File The file in its location on the client
depotFile File The file in the depot
haveRev Rev The revision synced to the client
type FileType The filetype of the synced revision
time Date The sync time of the synced revision

db.haveg - Contains the 'have-list' for graph depot

Indexed on: GFrepo, GFcfile, GFdfile, GFclient
Name Type Description
GFrepo String repoName
GFcfile File clientFile
GFdfile File depotFile
GFclient Domain client
GFtype FileType type
GFaction Action action
GFbsha SHA1 blob sha
GFcommitsha SHA1 commit sha
GFflags int flags

db.haveview - Stores mapping changes for clients mapping graph depot content

Indexed on: name, domain
Name Type Description
name Domain Domain name to which this view applies
seq Int Sequence number: for ordering multi-line views
mapFlag MapFlag Type of mapping
viewFile Mapping The right-hand-side of the view. For clients, this is the client-side, for labels it's the generated label view. For branches, it's the target side of the branch view.
depotFile Mapping The left-hand-side of the view - a mapping to file(s) in the depot.

db.integed - Permanent integration records

Indexed on: toFile, fromFile, startFromRev, endFromRev, startToRev, endToRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
change Change Changelist associated with the integration.
See also:db.resolve

db.integtx - Temporary integration records used by task streams

Indexed on: toFile, fromFile, startFromRev, endFromRev, startToRev, endToRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
change Change Changelist associated with the integration.
See also:db.resolve

db.ixtext - Indexing data for generic and job attributes

Indexed on: word, attr, value
Name Type Description
word String The word being indexed
attr Int The attribute number to which this word belongs. For job data, the attribute number from the jobspec.
value String For job data, a job name. For generic data, the value of the index keyed by the word.

db.ixtexthx - Indexing data for head revision of all spec fields (for future use)

Indexed on: type, word, attr, value
Name Type Description
type String The type
word String The word being indexed
attr Int The attribute number to which this word belongs.
value String The value of the index keyed by the word.

db.jnlack - Tracks journal positions of all standby servers

Indexed on: id
Name Type Description
serverId Domain The serverId of the standby for whom this record applies
lastUpdate Date The date and time of last update
serverType ServerServiceType The server services offered by this standby
persistedJnl Int The last journal number persisted by this standby
persistedPos Int64 The last journal position persisted by this standby
isAlive Int 1 = alive
appliedJnl Int The last journal number applied to this standby
appliedPos Int64 The last journal position applied to this standby

db.job - Job records

Indexed on: job
Name Type Description
job String The job name
xuser User User name: defunct
xdate Date The date: defunct
xstatus JobStat Job status: defunct
description DescShort Short description
See also:db.bodtext

db.label - Revisions of files in labels

Indexed on: name, depotFile
Name Type Description
name Domain Name of the label
depotFile File File name
haveRev Rev The revision of the file in the label

db.ldap - LDAP specifications

Indexed on: name
Name Type Description
name String The LDAP configuration name
host String The FQDN of the directory server
port String The port number on which to connect to the directory server
ssl String The encryption method to use when connecting to the The FQDN of the directory server. Options are: 'none', 'ssl' and 'tls'
type String The bind method to use with this directory. Options are: 'simple', 'search' and 'sasl'.
pattern String The DN used to bind against to validate the user's credentials.
basedn String The DN from which to start the search for the user object
filter String The LDAP query filter to use to identify the user object which will be used to bind against
scope String The scope to use when searching for the user records. Options are: 0 = baseonly - Just the BaseDN object 1 = children - The BaseDN and its direct children 2 = subtree - The BaseDN and all objects below it
binddn String The DN to bind against in order to search the directory
bindpass String The password for the BindDN record
realm String The optional realm to use when authenticating the user via SASL
grpbasedn String The search base for performing the group search. If unset this will default to the SearchBaseDN
grpfilter String The filter to use for the group search
grpscope String The scope to use when performing the group search.Options are: 0 = baseonly - Just the BaseDN object 1 = children - The BaseDN and its direct children 2 = subtree - The BaseDN and all objects below it
options String LDAP Options: [no]downcase [no]getattrs [no]realminusername
attruid String The name of the attribute in the directory's user records that contain the users' UIDs
attremail String The name of the attribute in the directory's user records that contain the users' email addresses.
attrename String The name(s) of the attribute(s) in the directory's user records that contain the users' full names.

db.locks - Locked/Unlocked files

Indexed on: depotFile, client
Name Type Description
depotFile File File in depot
client Domain Domain (client) in which file is open
user User User who presently has the file open
action Action Action file is open for: add, edit, delete, branch, integrate, or import
isLocked Int Flag: 0 for unlocked, 1 for locked
change Int Changelist in which the revision is open: 0 for the default changelist

db.locksg - Lock records for clients of type graph

Indexed on: depotFile, client
Name Type Description
depotFile File File in depot
client Domain Domain (client) in which file is open
user User User who presently has the file open
action Action Action file is open for: add, edit, delete, branch, integrate, or import
isLocked Int Flag: 0 for unlocked, 1 for locked
change Int Changelist in which the revision is open: 0 for the default changelist

db.logger - Support for 'p4 logger' command. Logs any changes to changelists and jobs

Indexed on: seq
Name Type Description
seq Int Sequence number of event
key String Either the word 'change' or the word 'job'
attr String The number of the change, or name of the job that was altered.

db.message - System messages

Indexed on: language, id
Name Type Description
language String The language for which this message applies
id Int The message number
message String The message text

db.monitor - Helix Server process information

Indexed on: id
Name Type Description
id Int Thread/process id
user User Username of the user running the command
function String The command being executed.
args String Arguments passed to the command
startDate Date The date and time the command started
runstate Int Flag: 0 for running, 1 for terminated, 2 for paused
client Domain The client workspace
host Text The IP address of the client
prog Text The name (and version) of the client program
lockInfo Text Table locking information for command

db.nameval - A table to store key/value pairs

Indexed on: name
Name Type Description
name Key Key name
value Value Key value

db.object - Object storage for graph depots

Indexed on: sha
Name Type Description
sha SHA1 SHA1
type ObjectType Type
data Octet String Data

db.property - Properties

Indexed on: name, seq, type, scope
Name Type Description
name String The property name
sequence String Sequence number of property
type Int 1=user, 2=group; set if '-u | -g' option used with 'p4 property'
scope String The user or group the property applies to
value String The property value
date String The date/time the property was last updated
user String The user that last modified the property

db.protect - The protections table

Indexed on: seq
Name Type Description
seq Int Sequence number: for ordering the protections table
isGroup Int Flag: 0 for a per-user setting, 1 for a per-group setting.
user UserWild User(s), or Group(s) for whom this record applies.
host DomainWild Domain(s) (IP addresses) for which this record applies.
perm Perm Permissions to be granted/revoked
mapFlag MapFlag Flag: Map the files in or out?
depotFile Mapping Files to be mapped in or out.
subPath String Root path of the sub-protections table
update Date Date this specification was last modified

db.pubkey - SSH Public keys

Indexed on: user,scope
Name Type Description
user String User
scope String Scope
key String Key
digest Digest Digest
update Date Update date

db.ref - Reference content for graph depots

Indexed on: repo, name, type
Name Type Description
repo String Repository name
name String Reference name
type RefType Reference type
ref SHA1 Target of the reference
symref String Target of symbolic reference

db.refhist - Reference history for graph depots

Indexed on: repo, name, type, action, date, user, ref
Name Type Description
repo String Repository name
name String Reference name
type RefType Reference type
action RefAction Reference action
date Date The date the reference was updated
user User The user who made the reference update
ref SHA1 Encoded reference value
symref String Symbolic reference

db.remote - Remote specifications

Indexed on: id
Name Type Description
id RemoteID The remote identifier
owner User The user who created this remote
options Int Remote options: 0: unlocked/nocompress, 1: locked/nocompress, 2: unlocked/compress, 4: locked/compress
address Text The P4PORT used by the remote server
desc Text Description of the remote server
update Date The date this specification was last modified
access Date The date of the last push/fetch on this remote
fetch Change The last changelist that was fetched
push Change The last changelist that was pushed
rmtuser User The user to use when connecting to the remote server

db.repo - Repository specifications

Indexed on: repo
Name Type Description
repo String Name of the repo
owner User Owner of the repo
created Date Date the repo specification was created
pushed Date Date of the last push to the repo
forked String Name of the repo from which this repo was forked
desc String Repo Description
branch String Default branch to clone from the repo
mirror String Upstream URL that this repo is mirrored (readonly) from
options Int Repo options: 0 = nolfs, 1 = lfs
id Int Repo index ID

db.resolve - Pending integration records

Indexed on: toFile, fromFile, startFromRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
state ResolveState How the user performed the resolve.
baseFile File File used as the base for merging.
baseRev Rev Revision of baseFile used as the merge base.
See also:db.integed

db.resolveg - Resolve records for clients of type graph

Indexed on: toFile, fromFile, baseSHA
Name Type Description
toFile File ToFile
fromFile File FromFile
baseSHA SHA1 Base SHA
wantsSHA SHA1 Wants SHA
how IntegHow How
state ResolvedStatus State
See also:db.integed

db.resolvex - Pending integration records for shelved files

Indexed on: toFile, fromFile, startFromRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
state ResolveState How the user performed the resolve.
baseFile File File used as the base for merging.
baseRev Rev Revision of baseFile used as the merge base.
See also:db.integed

db.rev - Revision records

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revbx - Revision records for archived files

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revcx - Secondary index of db.rev

Indexed on: change, depotFile
Name Type Description
change Change The changelist that created the revision
depotFile File The file name
depotRev Rev The revision number
action Action The action that created the revision

db.revdx - Revision records for revisions deleted at the head revision

Indexed on: depotFile
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revhx - Revision records for revisions NOT deleted at the head revision

Indexed on: depotFile
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.review - User's review mappings

Indexed on: user, seq
Name Type Description
user User A user name
seq Int Sequence number: used for ordering multi-line views
mapFlag MapFlag Type of mapping
depotFile Mapping The files to be reviewed
type Reviewer Type of reviewer

db.revpx - Pending revision records

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.
Note: Only populated during content trigger execution to allow triggers access to the revisions being submitted.

db.revsh - Revision records for shelved files

Indexed on: depotFile, depotRev, type, action, change
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revsx - Revision records for spec depot files

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revtx - Task stream revision records

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revux - Revision records for unload depot files

Indexed on: depotFile
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy RevStatus Specifies whether or not the revision gets its content from another file (lazy copy), data about promotion of revision content from task streams, and data about revision charset information.
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.rmtview - View data for remote specifications

Indexed on: id, seq
Name Type Description
id RemoteID Remote name
seq Int Sequence number: for ordering multi-line views
mapFlag MapFlag Type of mapping
localFile Mapping Local file
remoteFile Mapping Remote file
retain Int ArchiveLimits

db.sendq - Parallel file transmission work queue

Indexed on: taskid, seq
Name Type Description
taskID Int The process id (PID) of the sync
seq Int Sequence number
handle Text Handle
depotFile File The file in the depot
clientFile File The file in its location on the client
haveRev Rev Have revision
type FileType File type
modtime Date Modification time
digest Digest The MD5 digest of the revision
size FileSize The size of the file in bytes
lbrFile File Librarian filename
lbrRev LbrRev The revision of lbrFile that contains the revision content
lbrType FileType The file type of the librarian revision
flags Int Flags
clientType FileType The client file type of the revision
bsha SHA1 The Blob SHA
reposlot Int reposlot
sdigest Digest sdigest

db.server - Server specifications

Indexed on: id
Name Type Description
id Text The server identifier
type ServerType The server type: server/broker/proxy
name Text The P4NAME used by this server
address Text The P4PORT used by this server
externalAddress Text For an edge server, this optional field contains its external address for connections from the commit server. This field is required for federated parallel submit.
services ServerServiceType Service provided by this server
desc Text Server description
user User The service user used by this server

db.stash - Stash data

Indexed on: client, stream, type, seq
Name Type Description
client Domain Client the stash refers to
stream Domain Stream the stash refers to
type StashType Stash type
seq Int Sequence number
change Change Stash change number

db.stream - Stream specifications

Indexed on: stream
Name Type Description
stream Domain Stream name
parent Domain Parent stream name
title Text Stream title (alias for the stream name)
type StreamType The type of stream
preview Date Stream template modification time
change Change Last submit to stream
copychg Change Parent change at last copy
mergechg Change Parent change at last merge
highchg Change Highest change at last merge
hash Int Hash value of dynamic branch
status StreamStatus Flow status

db.submodule - Submodule configuration data

Indexed on: repo, path
Name Type Description
repo String Repository name
path String Path at which the submodule is linked
subrepo String Submodule repository name

db.svrview - View data for servers specifications

Indexed on: id, type, seq
Name Type Description
id Text Server name
type SvrViewType View type
seq Int Sequence (line) number
mapFlag MapFlag Type of mapping
viewFile Mapping View file

db.template - Streams templates

Indexed on: name, change, sequence
Name Type Description
name Domain Stream name
change Change Versioned at change
seq Int Sequence (line) number
parent Domain Parent stream name
type StreamType Type of stream
path StreamPathType Stream path type
viewFile Mapping View file (left hand side of path)
depotFile Mapping Depot file (right hand side of path)
changeMap Value Stream 'import' path changelist specifier. The changelist limits in effect for a given client are displayed in a read-only client spec field called 'ChangeView'

db.templatesx - Shelved stream templates

Indexed on: shelf, name, sequence
Name Type Description
shelf Change Shelf changelist number
name Domain Stream name
seq Int Sequence (line) number
change Change Versioned at change
parent Domain Parent stream name
type StreamType Type of stream
path StreamPathType Stream path type
viewFile Mapping View file (left hand side of path)
depotFile Mapping Depot file (right hand side of path)
changeMap Value Stream 'import' path changelist specifier. The changelist limits in effect for a given client are displayed in a read-only client spec field called 'ChangeView'

db.templatewx - Pending stream templates

Indexed on: client, name, sequence
Name Type Description
client Domain Stream client
name Domain Stream name
seq Int Sequence (line) number
change Change Versioned at change
parent Domain Parent stream name
type StreamType Type of stream
path StreamPathType Stream path type
viewFile Mapping View file (left hand side of path)
depotFile Mapping Depot file (right hand side of path)
changeMap Value Stream 'import' path changelist specifier. The changelist limits in effect for a given client are displayed in a read-only client spec field called 'ChangeView'

db.ticket - Second factor authentication state on a per user/host basis

Indexed on: user, host
Name Type Description
user User User the ticket was issued for
host String Host the ticket was issued for
ticket Password The 'p4 login' ticket for this user
state 2FAState The state of 2 Factor Authentication
token String The 2 Factor Authentication token
updateDate Date The date of the last ticket update

db.ticket.rp - Second factor authentication state on a per user/host basis (replica)

Indexed on: user, host
Name Type Description
user User User the ticket was issued for
host String Host the ticket was issued for
ticket Password The 'p4 login' ticket for this user
state 2FAState The state of 2 Factor Authentication
token String The 2 Factor Authentication token
updateDate Date The date of the last ticket update

db.traits - Attributes associated with file revisions

Indexed on: traitLot, name
Name Type Description
traitLot Int Indicates a specific collection of traits (referred to externally as "attributes".)
name String Trait (attribute) name
type TraitType Type of trait
value Octet String The value

db.trigger - Trigger specifications

Indexed on: seq
Name Type Description
seq Int Sequence number: for ordering the trigger list
name String Name of the trigger
mapFlag MapFlag Type of mapping: specifies whether the trigger applies to the files or not.
depotFile Mapping The files to apply the trigger to
triggerDepotFile File Depot path to the trigger
trigger Trigger Type of trigger
action Text Command to execute when trigger runs

db.user - User specifications

Indexed on: user
Name Type Description
user User The username
email Text The user's email address
jobView Text The user's job view
updateDate Date The date/time the user record was last updated
accessDate Date The date/time the user record was last used
fullName Text The user's full name
password Password The MD5 hash of the users (encrypted) password
strength Strength Measure of the strength of the user's password
ticket Password 'p4 login' ticket for this user
endDate Date Date/time the user's ticket expires
type UserLevel Type of user
passDate Date Date password was last changed
passExpire Date Date of password expiration
attempts Date Failed login attempts
auth UserAuthType Authentication method (AuthMethod) for the user

db.user.rp - Used by replica server's to store login information

Indexed on: user
Name Type Description
user User The username
email Text The user's email address
jobView Text The user's job view
updateDate Date The date/time the user record was last updated
accessDate Date The date/time the user record was last used
fullName Text The user's full name
password Password The MD5 hash of the users (encrypted) password
strength Strength Measure of the strength of the user's password
ticket Password 'p4 login' ticket for this user
endDate Date Date/time the user's ticket expires
type UserLevel Type of user
passDate Date Date password was last changed
passExpire Date Date of password expiration
attempts Date Failed login attempts
auth UserAuthType Authentication method (AuthMethod) for the user

db.uxtext - Indexing data for Swarm

Indexed on: word, attr, value
Name Type Description
word String The word being indexed
attr Int The attribute number to which this word belongs. For job data, the attribute number from the jobspec.
value String For job data, a job name. For generic data, the value of the index keyed by the word.

db.view - View data for domain records

Indexed on: name, seq
Name Type Description
name Domain Domain name to which this view applies
seq Int Sequence number: for ordering multi-line views
mapFlag MapFlag Type of mapping
viewFile Mapping The right-hand-side of the view. For clients, this is the client-side, for labels it's the generated label view. For branches, it's the target side of the branch view.
depotFile Mapping The left-hand-side of the view - a mapping to file(s) in the depot.

db.view.rp - View data for clients of build-server replicas

Indexed on: name seq
Name Type Description
name Domain Domain name to which this view applies
seq Int Sequence number: for ordering multi-line views
mapFlag MapFlag Type of mapping
viewFile Mapping The right-hand-side of the view. For clients, this is the client-side, for labels it's the generated label view. For branches, it's the target side of the branch view.
depotFile Mapping The left-hand-side of the view - a mapping to file(s) in the depot.

db.working - Records for work in progress

Indexed on: clientFile
Name Type Description
clientFile File File on the client
depotFile File File in the depot
client Domain The client the file is opened on
user User The user who has the file opened
haveRev Rev Revision presently in user's client workspace
workRev Rev Working revision; normally identical to the haveRev
isVirtual Int Flag: if 1, file was opened with "p4 integ -v".
type FileType File type
action Action What the user's doing with the file
change Change Associated changelist, or zero for the default changelist.
modTime Date Modification timestamp on the file in the user's workspace.
isLocked Int Flag: 0 for unlocked, 1 for locked.
digest Digest MD5 digest of working file.
size Int64 File size
traitLot Int Group of traits associated with file revision.
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace.
clntType FileType Type of the file in the client workspace.
mFile File Moved filename
status Int Working status

db.workingg - Working records for clients of type graph

Indexed on: clientFile
Name Type Description
cfile File Client File
dfile File Depot File
client Domain Client
user User User
hrev Rev HaveRev
wrev Rev WoringRev
virtual Int Virtual
type FileType File type
action Action Action
change Change Change
modtime Date ModTime
islocked Int IsLocked
digest Digest MD5 digest
size Int64 File size
traitlot Int TraitLot
tampered TamperCheck Tampered
ctype FileType ClientType
mfile File Moved filename
status Int Working status
sha SHA1 Blob SHA
repo String Repository name

db.workingx - Records for shelved open files

Indexed on: clientFile
Name Type Description
clientFile File File on the client
depotFile File File in the depot
client Domain The client the file is opened on
user User The user who has the file opened
haveRev Rev Revision presently in user's client workspace
workRev Rev Working revision; normally identical to the haveRev
isVirtual Int Flag: if 1, file was opened with "p4 integ -v".
type FileType File type
action Action What the user's doing with the file
change Change Associated changelist, or zero for the default changelist.
modTime Date Modification timestamp on the file in the user's workspace.
isLocked Int Flag: 0 for unlocked, 1 for locked.
digest Digest MD5 digest of working file.
size Int64 File size
traitLot Int Group of traits associated with file revision.
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace.
clntType FileType Type of the file in the client workspace.
mFile File Moved filename
status Int Working status

rdb.lbr - Replica server pending archive transfer table

Indexed on:
Name Type Description
depotFile File The file name
lbrRev String The librarian revision
type String The file type of the revision
status PullStatus The status of the archive transfer
action Action The action that created the revision
digest Digest The MD5 digest of the revision
size FileSize The size of the file in bytes
change Change The changelist that created the revision
lbrDate Date Librarian date
lbrModTime Date Librarian modtime
pid Int The process id (PID) of the pull process
requestTime Date Pull request time
retries Int The number of retries that have occurred after transfer error
transferError String The error message for a failed transfer

tiny.db - Records revision and content data for files using the +T file type modifier

Indexed on: fileAndRev
Name Type Description
fileAndRev String The file name and revision
fileContent Octet String The (encoded) file content

Datatypes

2FAState - Second Factor Authentication State

Second factor authentication scheme and status

Bits used to store second factor authentication scheme (Mask: 0xFF)

Value Explanation
0x0001 otp-generated; one-time password generated
0x0002 otp-requested; one-time password requested
0x0003 challenge; challenge/response
0x0004 external; 3rd-party prompting

Bits used to store second factor authentication status (Mask: None)

Value Explanation
0x0100 authenticated; host is authenticated
0x0200 persisted; 2FA persists for this host
0x0400 forced; superuser skipped the checks
0x0800 skipped; 2FA was not required
0x1000 waiting; waiting on 2FA service
0x2000 token-requested; OTP requested from 2FA service
0x4000 required; 2FA required
0x8000 rejected; external 2FA was rejected

Action - Type of action

Revisions are produced by user actions. The Action type defines the available actions and their internal values.

Value Explanation
0 add; user adds a file
1 edit; user edits a file
2 delete; user deletes a file
3 branch; add via integration
4 integ; edit via integration
5 import; add via remote depot
6 purge; purged revision, no longer available
7 movefrom; move from another filename
8 moveto; move to another filename
9 archive; stored in archive depot

Change - A changelist number

The number of a changelist. The number 0 represents the default pending changelist.

ChangeStatus - The status of a change

A integer value representing the status of a change

Value Explanation
0 pending
1 submitted
2 shelved
4 restricted, pending
5 restricted, submitted
6 restricted, shelved
18 promoted shelf, public
22 promoted shelf, restricted
34 unsubmitted shelf, public
38 unsubmitted shelf, restricted

Counter - A counter name

A string representing the counter name. Counter names must contain no spaces, contain no slashes, and be identifiers (cannot begin with a dash and cannot be all-numeric)

Date - A unix-style date and time

A date and time represented as the number of seconds since the Epoch: 01 January 1970 00:00:00 UTC. This is the same convention as that used on Unix platforms.

DepotType - Type of Depot

The type of a given depot

Value Explanation
0 local depot
1 remote depot
2 spec depot
3 stream depot
4 archive depot
5 unload depot
6 tangent depot
7 graph depot

DescShort - A short string value

The first 31 characters of a Text string
See also:Text

Digest - An MD5 digest

A string containing an MD5 digest.

Domain - A domain name

A string representing the name of a depot, label, client, branch, typemap, or stream.

DomainOpts - Options for domains

A integer value representing the options for a domain

Bits used to store client, label, and branch options (Mask: 0x10EF)

Value Explanation
0x0001 modtime
0x0002 clobber
0x0004 allwrite
0x0008 locked
0x0020 compress
0x0040 rmdir
0x1000 indirect (obsolete since 2004.2)
0x8000 autoreload

Bits used to store client type and backup status (Mask: 0x190000)

Value Explanation
0x00000 client is writeable
0x10000 client is readonly
0x20000 client is nobackup
0x110000 client is partitioned

Bits used to store client line termination settings (Mask: 0x0710)

Value Explanation
0x0000 local
0x0010 unix (LF)
0x0200 mac (CR)
0x0300 win (CRLF)
0x0400 share (LF/CRLF)

Bits used to store client submit options (Mask: 0x7000)

Value Explanation
0x1000 Revert unchanged files
0x2000 Leave unchanged files
0x4000 Submit, and re-open unchanged files

Bits used to store stream options (Mask: 0x000C)

Value Explanation
0x0001 allsubmit or ownersubmit
0x0002 locked or unlocked
0x0004 change flows to parent
0x0008 change flows from parent
0x0010 mergeany or mergedown

DomainType - A domain type

A integer value representing the type of a domain

Value Explanation
67 (ASCII 'C') unloaded client
76 (ASCII 'L') unloaded label
83 (ASCII 'S') unloaded task stream
98 (ASCII 'b') branch
99 (ASCII 'c') client
100 (ASCII 'd') depot
108 (ASCII 'l') label
115 (ASCII 's') stream
116 (ASCII 't') typemap

DomainWild - A string with optional wildcards

A string that may contain wildcards - usually an IP address in the protections table.

File - A file name

A string representing the filename
See also:FileType

FileSize - A file size

A 64-bit integer used to store file sizes. The value -1 is used to represent unknown file sizes.

FileType - Type of file

The FileType is a bitmask specifying the type and modifiers of a revision from both the client and server points of view. The first 16 bits are used to store the storage type and modifiers, the next 16 bits are used to store the client access method and modifiers.

Bits used to store the server's storage type (Mask: 0x000F)

Value Explanation
0x0000 RCS
0x0001 Binary
0x0002 Tiny
0x0003 Compressed
0x0004 tempobj (deprecated since 2002.1)
0x0005 Detect type. Used internally when no type is given by the user.
0x0006 Compressed tempobj (deprecated since 2002.1)
0x0007 Binary access to compressed data. Used internally.
0x0008 Stored externally via librarian trigger

Bits used to store the modifiers to the server's storage type (Mask: 0x00F0)

Value Explanation
0x0010 99.2-style keyword expansion/contraction
0x0020 2000.1-style keyword expansion/contraction
0x0030 Any type of keyword expansion
0x0040 Exclusive open
0x0080 New tempobj (+S modifier)

Bits used to store the number of revisions to be stored for +Sn files. (Mask: 0x0F00)

Value Explanation
0x0000 +S1
0x0100 +S2
0x0200 +S3
0x0300 +S4
0x0400 +S5
0x0500 +S6
0x0600 +S7
0x0700 +S8
0x0800 +S9
0x0900 +S10
0x0A00 +S16
0x0B00 +S32
0x0C00 +S64
0x0D00 +S128
0x0E00 +S256
0x0F00 +S512

Bits used to store the file type from the client's point of view. (Mask: 0x10D0000)

Value Explanation
0x0000000 text
0x0010000 binary
0x0020000 executable bit set
0x0040000 symlink
0x0050000 resource fork
0x0080000 unicode
0x0090000 raw text (nocrlf - 99.1)
0x00C0000 apple data + resource file (since 2000.2)
0x00D0000 apple data + resource file (99.2)
0x1000000 Used to support filetype detection

Bits used to store the modifiers applied to the file on the client. (Mask: 0x720000)

Value Explanation
0x0100000 writable
0x0200000 modtime
0x0400000 uncompress on client

FixStatus - Status of a fixed job

This type is a wrapper around the 'Text' type that handles the pre-2000.1 "closed" default value.

GraphPermType - Type of Graph Permission

The type of a graph depot permission

Value Explanation
0 none
1 read
2 write-ref
4 write-all
8 create-repo
16 delete-repo
32 create-ref
64 delete-ref
128 force-push
256 admin
4096 restricted-ref

Int - A 32-bit integer

A 32-bit integer

Int64 - A 64-bit integer

A 64-bit integer.

Int8 - An 8-bit integer

An 8-bit integer: an unsigned char

IntegHow - Integration methods

Specifies how an integration was performed. Integrations always come in pairs: the 'forward' and 'reverse' records. As a general rule, the forward records contain the word 'from'; and the reverse records contain the word 'into'.

Value Explanation
0 merge from: integration with other changes
1 merge into: reverse merge
2 branch from: integration was branch of file
3 branch into: reverse branch
4 copy from: integration took source file whole
5 copy into: reverse take
6 ignored: integration ignored source changes
7 ignored by: reverse copy
8 delete from: integration of delete
9 delete into: reverse delete
10 edit into: reverse of integration downgraded to edit
11 add into: reverse of branch downgraded to add
12 edit from: merge that the user edited
13 add from: branch downgraded to add
14 moved from: reverse of renamed file
15 moved into: file was renamed
16 'delete' target rev ignoring non-deleted source
17 non-deleted source ignored by 'delete' target rev
18 'integrate' target rev ignoring deleted source
19 deleted source ignored by 'integrate' target rev
20 deleted branch: branch from
21 deleted branch: delete into
22 undo: opposite of merge
23 undo reverse
24 move undo: move + undo as one record
25 move undo reverse
Note: All integration records should have a corresponding reverse record. The 'branch from' (2) and 'merge from' (0) records have corresponding "dirty" reverse records for cases where the target file took more than one change or was (re)opened for 'edit' or 'add'.

JobStat - Job status - defunct

Old (pre-98.2) job status values.

Value Explanation
0 open
1 closed
2 suspended

Key - A key name

A string representing the key name. Key names must contain no spaces, contain no slashes, and be identifiers (cannot begin with a dash and cannot be all-numeric)

MapFlag - Types of mapping

Specifies how the files specified by a mapping should be treated

Value Explanation
0 mapped-in (the default)
1 mapped-out (mappings that start with '-')
2 overlay (mappings that start with '+')
3 haveMap (mappings that start with '$'). Used internally only
4 changeMap (mappings that start with '@')

Mapping - A string representing a mapping

A Mapping is essentially a file name that may contain wildcards

MaxLockTime - Maximum number of milliseconds to hold locks

The number of milliseconds for which a command may hold locks. Commands that take longer than this time period will abort. The value 0 means 'unlimited'.

MaxResults - Maximum number of results permitted

The number of results that commands run by the restricted user are permitted to return. The value 0 means 'unlimited'.

MaxScanRows - Maximum number of records scanned

The maximum number of records that the server may read on behalf of the restricted user. The value 0 means 'unlimited'.

ObjectType - Object type

Object type

Value Explanation
0 commit
1 tree
2 tag
3 null

Octet String - Encoded hex string

A variable length encoded hex string. The first octet stores the length of the string.

Password - The MD5 hash of a password

The MD5 hash of an encrypted password.

Perm - Bitmask of permissions

A bitmask of granted permissions

Bits used to store granted permissions (Mask: 0x00FF)

Value Explanation
0x0000 none
0x0001 Grants list access
0x0002 Grants read access
0x0004 Grants ability to branch/integ from
0x0008 Grants open access
0x0010 Grants write access
0x0020 Grants review access
0x0080 Grants admin access
0x0040 Grants super-user access
0x0100 Grants owner access

PullStatus - Archive pull transfer status

The status of an archive pull transfer

Value Explanation
new new transfer
active active transfer
done completed transfer
error errored transfer
restart restarted transfer
cancelled cancelled transfer

RefAction - Reference action

A reference action

Value Explanation
0 create
1 update
2 force
3 delete

RefType - A reference type

The type of reference

Value Explanation
0 Branch reference
1 Remote reference
2 Tag reference
3 Workspace branch reference. Pseudo-reference, used by workspaces that access git files
4 Workspace have reference. Pseudo-reference, used by workspaces that access git files
5 Other reference

RemoteID - A remote name

A string representing the name of a remote spec

ResolveState - Resolve actions

Pending or completed resolve actions.

Value Explanation
0 Content resolve
1 Filetype resolve
2 Branch resolve
3 Delete resolve
4 Move resolve
5 Attribute resolve
6 Charset resolve

ResolvedStatus - Resolve methods (obsolete in 2011.1, replaced by ResolveState)

Specifies how the user resolved merge operations.

Value Explanation
0 Not yet resolved
1 Resolved manually
2 Resolved automatically as part of a branch
3 Resolved automatically as part of a delete
4 Resolved automatically as part of a move

Rev - A revision number

The positive integer number of a specific revision of a file. The number 0 represents '#none'.

RevStatus - A revision status

Lazy copy, task stream promotion, and charset status

Bits used to store revision status (Mask: 0x000F)

Value Explanation
0x0000 single revision with content
0x0001 single revision lazy copied
0x0002 revision task sparse
0x0004 revision task branch

Bits used to store revision charset (high 8 bits). Value shifted right 24 bits before applying mask (Mask: 0x007F)

Value Explanation
0 NONE
1 UTF_8
2 ISO8859_1
3 UTF_16
4 SHIFTJIS
5 EUCJP
6 WIN_US_ANSI
7 WIN_US_OEM
8 MACOS_ROMAN
9 ISO8859_15
10 ISO8859_5
11 KOI8_R
12 WIN_CP_1251
13 UTF_16_LE
14 UTF_16_BE
15 UTF_16_LE_BOM
16 UTF_16_BE_BOM
17 UTF_16_BOM
18 UTF_8_BOM
19 UTF_32
20 UTF_32_LE
21 UTF_32_BE
22 UTF_32_LE_BOM
23 UTF_32_BE_BOM
24 UTF_32_BOM
25 UTF_8_UNCHECKED
26 UTF_8_UNCHECKED_BOM
27 CP949
28 CP936
29 CP950
30 CP850
31 CP858

Reviewer - Type of reviewer

The type of reviewer. Currently there is only one type of reviewer and 0 is the only valid value.

SHA1 - Encoded SHA1

20 byte SHA1 digest of a block of text

ServerServiceType - The type of server service

The services offered by a type of service.

The server service type setting is generated by OR'ing the generic ServerServiceProperties defined below (Mask: None)

Value Explanation
0x0903 standard ( db-read | db-write | rmt-depot | rmt-journal )
0x0045 replica ( db-read | db-replication | file-replication | rmt-depot | rmt-journal )
0x0030 broker ( brokering | forwarding )
0x00A0 proxy ( forwarding | file-cacheing )
0x00E5 forwarding-replica ( db-read | db-replication | forwarding | file-replication | file-cacheing | rmt-depot | rmt-journal )
0x004D build-server ( db-read | db-replication | bound-clients | file-replication | rmt-depot | rmt-journal )
0x0203 P4AUTH ( db-read | db-write | rmt-auth )
0x0403 P4CHANGE ( db-read | db-write | rmt-change )
0x19ED edge-server ( db-read | db-replication | bound-clients | forwarding | file-replication | file-cacheing | rmt-depot | rmt-journal | local-opens )
0x2F03 commit-server ( db-read | db-write | rmt-depot | rmt-journal | rmt-change | rmt-auth | commit-server )
0x6F03 depot-master ( db-read | db-write | rmt-depot | rmt-journal | rmt-change | rmt-auth | commit-server | p4zk-managed )
0xC945 depot-standby ( db-read | db-replication | file-replication | rmt-depot | rmt-journal | journal-copy | p4zk-managed )
0x59ED workspace-server ( db-read | db-replication | bound-clients | forwarding | file-replication | file-cacheing | rmt-depot | rmt-journal | local-opens | p4zk-managed )
0x8945 standby ( db-read | db-replication | file-replication | rmt-depot | rmt-journal | journal-copy )
0x89E5 forwarding-standby ( db-read | db-replication | forwarding | file-replication | file-cacheing | rmt-depot | rmt-journal | journal-copy )
0x4030 workspace-router ( brokering | forwarding | p4zk-managed )
0x10003 local ( db-read | db-write | dvcs-local )
0x20000 cluster ( cluster-id )
0x40000 zookeeper-server ( zookeeper-server )
0x80000 hxca-server ( hxca-server )
0x100000 git-connector

ServerServiceProperties: Bits used to identify generic server properties (Mask: None)

Value Explanation
0x0001 db-read
0x0002 db-write
0x0004 db-replication
0x0008 bound-clients
0x0010 brokering
0x0020 forwarding
0x0040 file-replication
0x0080 file-cacheing
0x0100 rmt-depot
0x0200 rmt-auth
0x0400 rmt-change
0x0800 rmt-journal
0x1000 local-opens
0x2000 commit-server
0x4000 p4zk-managed
0x8000 journal-copy
0x10000 dvcs-local
0x20000 cluster-id
0x40000 zookeeper
0x80000 hxca

ServerType - The type of server

The type of server

Value Explanation
0 server
1 proxy
2 broker
3 identifier
4 admin
5 connector

SpecType - A spec type

A integer value representing the type of a spec

Value Explanation
98 (ASCII 'b') branch
67 (ASCII 'C') change
99 (ASCII 'c') client
100 (ASCII 'd') depot
101 (ASCII 'e') spec
103 (ASCII 'g') group
106 (ASCII 'j') job
108 (ASCII 'l') label
68 (ASCII 'D') ldap
76 (ASCII 'L') license
112 (ASCII 'p') protect
114 (ASCII 'r') remote
83 (ASCII 'S') server
115 (ASCII 's') stream
84 (ASCII 'T') trigger
116 (ASCII 't') typemap
117 (ASCII 'u') user

StashType - Stash type

Stash type

Value Explanation
0 switch: A shelf with work-in-progress for a particular stream/branch
1 tangent: Work-in-progress relocated by 'p4 fetch -t'. Consumed and removed by 'p4 resubmit'

StreamPathType - Type of stream path

The path type for file paths in a stream view.

Value Explanation
0 share
1 isolate
2 import
3 exclude
4 remapped
5 ignored
6 inclusive
7 import+

StreamStatus - Stream integration status

The stream integration status.

Bits used to store the stream integration status (Mask: Copy: 0x0003, Merge: 0x000C)

Value Explanation
0x0000 Clear cache
0x0001 Needs copy
0x0002 Copy up-to-date
0x0004 Needs merge
0x0008 Merge up-to-date

StreamType - Type of stream

The type of stream.

Value Explanation
0 mainline
1 release
2 development
3 virtual
4 task
5 task - unloaded

Strength - Strength check of a password

Whether or not a user's password has been tested for strength.

Value Explanation
0 Strength unknown
1 Password is strong
2 Unset

String - A string up to 1024 characters long

A string up to 1024 characters in length. Depending on the context in which the string is used, restrictions may apply. Strings are often used as key fields in the schema.
  • Cannot be empty
  • Cannot consist solely of a dash (-)
  • Cannot be all-numeric
  • Cannot contain non-printable characters
  • Spaces are replaced with underscores ( _ )
  • Revision characters (# and @) are prohibited
  • Slashes (/) are prohibited
  • Wildcards (... and *) are prohibited

SvrViewType - Server specification view type

Server specification view type

Value Explanation
0 ClientDataFilter
1 RevisionDataFilter
2 ArchiveDataFilter
3 AllowedAddresses

TamperCheck - Tamper-state of workspace file

Indicates the tamper-state of a file in a workspace. This is used to decide whether or not to check the file, and if checked, to hold the result.

Value Explanation
0 Do not check for tampering
1 Check for tampering
2 Tamper-check failed

Text - A string value

A text string value - used to hold longer blocks of text.

TraitLot - The id of a group of traits

An integer identifying a group of traits which may be shared by several revisions.

TraitType - A type of trait

The type of trait.

Value Explanation
0 Special trait for reference counting
1 Binary trait
2 Binary trait that gets propagated

Trigger - A type of trigger

The type of a trigger.

Value Explanation
0 change-submit (formerly pre-submit triggers)
1 change-content
2 change-commit
3 form-in
4 form-out
5 form-save
6 form-delete
7 form-commit
8 auth-check
9 auth-check-sso
10 auth-set
11 fix-add
12 fix-delete
13 archive
14 shelve-submit
15 shelve-commit
16 shelve-delete
17 service-check
18 edge-submit
19 edge-content
20 change-failed
21 command
22 push-submit
23 push-content
24 push-commit
25 journal-rotate
26 journal-rotate-lock
27 graph-push-start
28 graph-push-complete
29 graph-push-reference
30 graph-push-reference-complete
31 graph-lfs-push
32 graph-fork-repo
33 pull-archive
34 auth-pre-2fa
35 auth-init-2fa
36 auth-check-2fa
37 bgtask

User - A user or group name

The name of a Helix Server user or group.
See also:String

UserAuthType - User Authentication Type

The AuthMethod setting for the user.

Value Explanation
0 perforce
1 ldap
16 perforce+2fa
17 ldap+2fa

UserLevel - User functionality level

User functionality level

Value Explanation
0 standard
1 service
2 operator

UserType - The role of a user within a group

The role of a user (or group) within a group.

Bits used to store the role of a user in a group (Mask: 0x0007)

Value Explanation
0x0001 User is an ordinary user
0x0002 Group is a sub-group
0x0004 User is the owner of a group

UserWild - A user or group name with wildcards

A user/group name that may contain wildcards (*)
See also:User

Value - A number or a string

A number, stored in a string, or a string
Copyright 1999-2015, Perforce Software. All rights reserved.