Helix Server Schema Documentation

Release: 2023.2

Contents

Alphabetical List of Tables

Filename Lock Order Vers. Description
db.bodresolve 97 2 Resolve data for stream specifications
db.bodresolvex 98 1 Pending integration records for shelved stream specifications
db.bodtext 99 1 Job data for job attributes
db.bodtextcx 100 1 Versioned openable spec fields
db.bodtexthx 101 0 Head revision of spec fields
db.bodtextsx 102 2 Shelved openable spec fields
db.bodtextwx 103 2 Open openable spec fields
db.change 78 7 Changelists
db.changeidx 80 2 Secondary index of db.change/db.changex
db.changex 79 7 Subset of db.change: records for pending changelists only
db.ckphist 0 Stores history of checkpoint events
db.config 1 1 Server configurations table
db.configh 2 1 Server configuration history
db.counters 3 1 Counters table
db.depot 21 2 Depot specifications
db.desc 81 1 Change descriptions
db.domain 28 8 Domains: depots, clients, labels, branches, streams, and typemap
db.excl 72 1 Exclusively locked (+l) files: enables coordinated file locking in commit/edge server environments
db.exclg 73 0 Graph depot LFS locks
db.exclgx 74 0 Graph depot LFS locks indexed by lockId
db.fix 94 2 Fix records: indexed by job
db.fixrev 95 2 Fix records: indexed by change
db.graphindex 87 2 Graph depot repository index data
db.graphperm 88 0 Graph depot permissions
db.group 19 10 Group specifications
db.groupx 20 2 Per-group data to support group membership controlled by AD/LDAP group membership
db.have 39 4 Contains the 'have-list' for all clients
db.have.pt 38 4 Placeholder for read-only clients
db.have.rp 37 4 Contains the 'have-list' for clients of build-server replicas
db.haveg 71 0 Contains the 'have-list' for graph depot files that are not at the same revision as defined by the client's have reference
db.haveview 34 1 Stores mapping changes for clients mapping graph depot content
db.integed 41 1 Permanent integration records
db.integedss 27 3 Stream specification integration history
db.integtx 42 1 Temporary integration records used by task streams
db.ixtext 105 0 Indexing data for generic and job attributes
db.ixtexthx 106 0 Indexing data for head revision of all spec fields
db.jnlack 113 2 Tracks journal positions of all replicas
db.job 91 1 Job records
db.label 36 0 Revisions of files in labels
db.ldap 8 0 LDAP specifications
db.locks 66 3 Locked/Unlocked files
db.locksg 67 3 Lock records for clients of type graph
db.logger 7 0 Support for 'p4 logger' command. Logs any changes to changelists and jobs.
db.message 110 0 System messages
db.monitor 114 3 Helix Server process information
db.nameval 4 1 A table to store key/value pairs
db.object 86 1 Object storage for graph depots
db.property 109 1 Properties
db.protect 108 6 The protections table
db.pubkey 90 1 SSH Public keys
db.ref 84 0 Reference content for graph depots
db.refcntadjust 85 0 Graph depot reference count adjustments
db.refhist 83 1 Reference history for graph depots
db.remote 12 2 Remote specifications
db.repo 82 5 Repository specifications
db.resolve 43 2 Pending integration records
db.resolveg 45 0 Resolve records for clients of type graph
db.resolvex 44 2 Pending integration records for shelved files
db.rev 62 10 Revision records
db.revbx 59 10 Revision records for archived files
db.revcx 61 1 Secondary index of db.rev
db.revdx 54 10 Revision records for revisions deleted at the head revision
db.revfs 65 1 Client filesystem file sizes
db.revhx 55 10 Revision records for revisions NOT deleted at the head revision
db.review 35 1 User's review mappings
db.revpx 56 10 Pending revision records
db.revsh 58 10 Revision records for shelved files
db.revstg 64 10 Temporary revision records for storage upgrade process
db.revsx 57 10 Revision records for spec depot files
db.revtr 76 10 Rev table for huge traits
db.revtx 63 10 Task stream revision records
db.revux 60 10 Revision records for unload depot files
db.rmtview 13 1 View data for remote specifications
db.scanctl 49 0 ScanCtl
db.scandir 48 0 Scandir
db.sendq 111 5 Parallel file transmission work queue
db.sendq.pt 112 5 Per Client transmission work queue
db.server 10 3 Server specifications
db.stash 14 1 Stash data
db.storage 51 2 Track references to archive files
db.storageg 52 1 Track references to Graph Depot archive files (for future use)
db.storagesh 50 2 Track references to shelved archive files
db.storagesx 53 0 Digest and filesize based index for db.storagesh, for finding shelved files with identical content
db.stream 22 3 Stream specifications
db.streamq 26 0 Track streams for which the stream views should be regenerated
db.streamrelation 23 0 Relationships between streams
db.streamview 24 1 Precomputed stream views
db.streamviewx 25 2 Indexing for precomputed stream views
db.submodule 89 0 Submodule configuration data
db.svrview 11 0 View data for servers specifications
db.template 29 3 Streams templates
db.templatesx 30 3 Shelved stream templates
db.templatewx 31 3 Pending stream templates
db.ticket 18 1 Second factor authentication state on a per user/host basis
db.ticket.rp 17 1 Second factor authentication state on a per user/host basis (replica)
db.topology 9 3 Topology information
db.traits 75 1 Attributes associated with file revisions
db.trigger 77 3 Trigger specifications
db.upgrades 6 1 Store server upgrade info
db.upgrades.rp 5 1 Store replica upgrade info
db.user 16 8 User specifications
db.user.rp 15 8 Used by replica server's to store login information
db.uxtext 107 0 Indexing data for Swarm
db.view 33 1 View data for domain records
db.view.rp 32 1 View data for clients of build-server replicas
db.working 68 11 Records for work in progress
db.workingg 70 1 Working records for clients of type graph
db.workingx 69 11 Records for shelved open files
pdb.lbr 4 Proxy server pending archive transfer table
rdb.lbr 4 Replica server pending archive transfer table
tiny.db 0 Records content data for tiny 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.configh 1 Server configuration history
3 db.counters 1 Counters table
4 db.nameval 1 A table to store key/value pairs
5 db.upgrades.rp 1 Store replica upgrade info
6 db.upgrades 1 Store server upgrade info
7 db.logger 0 Support for 'p4 logger' command. Logs any changes to changelists and jobs.
8 db.ldap 0 LDAP specifications
9 db.topology 3 Topology information
10 db.server 3 Server specifications
11 db.svrview 0 View data for servers specifications
12 db.remote 2 Remote specifications
13 db.rmtview 1 View data for remote specifications
14 db.stash 1 Stash data
15 db.user.rp 8 Used by replica server's to store login information
16 db.user 8 User specifications
17 db.ticket.rp 1 Second factor authentication state on a per user/host basis (replica)
18 db.ticket 1 Second factor authentication state on a per user/host basis
19 db.group 10 Group specifications
20 db.groupx 2 Per-group data to support group membership controlled by AD/LDAP group membership
21 db.depot 2 Depot specifications
22 db.stream 3 Stream specifications
23 db.streamrelation 0 Relationships between streams
24 db.streamview 1 Precomputed stream views
25 db.streamviewx 2 Indexing for precomputed stream views
26 db.streamq 0 Track streams for which the stream views should be regenerated
27 db.integedss 3 Stream specification integration history
28 db.domain 8 Domains: depots, clients, labels, branches, streams, and typemap
29 db.template 3 Streams templates
30 db.templatesx 3 Shelved stream templates
31 db.templatewx 3 Pending stream templates
32 db.view.rp 1 View data for clients of build-server replicas
33 db.view 1 View data for domain records
34 db.haveview 1 Stores mapping changes for clients mapping graph depot content
35 db.review 1 User's review mappings
36 db.label 0 Revisions of files in labels
37 db.have.rp 4 Contains the 'have-list' for clients of build-server replicas
38 db.have.pt 4 Placeholder for read-only clients
39 db.have 4 Contains the 'have-list' for all clients
41 db.integed 1 Permanent integration records
42 db.integtx 1 Temporary integration records used by task streams
43 db.resolve 2 Pending integration records
44 db.resolvex 2 Pending integration records for shelved files
45 db.resolveg 0 Resolve records for clients of type graph
48 db.scandir 0 Scandir
49 db.scanctl 0 ScanCtl
50 db.storagesh 2 Track references to shelved archive files
51 db.storage 2 Track references to archive files
52 db.storageg 1 Track references to Graph Depot archive files (for future use)
53 db.storagesx 0 Digest and filesize based index for db.storagesh, for finding shelved files with identical content
54 db.revdx 10 Revision records for revisions deleted at the head revision
55 db.revhx 10 Revision records for revisions NOT deleted at the head revision
56 db.revpx 10 Pending revision records
57 db.revsx 10 Revision records for spec depot files
58 db.revsh 10 Revision records for shelved files
59 db.revbx 10 Revision records for archived files
60 db.revux 10 Revision records for unload depot files
61 db.revcx 1 Secondary index of db.rev
62 db.rev 10 Revision records
63 db.revtx 10 Task stream revision records
64 db.revstg 10 Temporary revision records for storage upgrade process
65 db.revfs 1 Client filesystem file sizes
66 db.locks 3 Locked/Unlocked files
67 db.locksg 3 Lock records for clients of type graph
68 db.working 11 Records for work in progress
69 db.workingx 11 Records for shelved open files
70 db.workingg 1 Working records for clients of type graph
71 db.haveg 0 Contains the 'have-list' for graph depot files that are not at the same revision as defined by the client's have reference
72 db.excl 1 Exclusively locked (+l) files: enables coordinated file locking in commit/edge server environments
73 db.exclg 0 Graph depot LFS locks
74 db.exclgx 0 Graph depot LFS locks indexed by lockId
75 db.traits 1 Attributes associated with file revisions
76 db.revtr 10 Rev table for huge traits
77 db.trigger 3 Trigger specifications
78 db.change 7 Changelists
79 db.changex 7 Subset of db.change: records for pending changelists only
80 db.changeidx 2 Secondary index of db.change/db.changex
81 db.desc 1 Change descriptions
82 db.repo 5 Repository specifications
83 db.refhist 1 Reference history for graph depots
84 db.ref 0 Reference content for graph depots
85 db.refcntadjust 0 Graph depot reference count adjustments
86 db.object 1 Object storage for graph depots
87 db.graphindex 2 Graph depot repository index data
88 db.graphperm 0 Graph depot permissions
89 db.submodule 0 Submodule configuration data
90 db.pubkey 1 SSH Public keys
91 db.job 1 Job records
94 db.fix 2 Fix records: indexed by job
95 db.fixrev 2 Fix records: indexed by change
97 db.bodresolve 2 Resolve data for stream specifications
98 db.bodresolvex 1 Pending integration records for shelved stream specifications
99 db.bodtext 1 Job data for job attributes
100 db.bodtextcx 1 Versioned openable spec fields
101 db.bodtexthx 0 Head revision of spec fields
102 db.bodtextsx 2 Shelved openable spec fields
103 db.bodtextwx 2 Open openable spec fields
105 db.ixtext 0 Indexing data for generic and job attributes
106 db.ixtexthx 0 Indexing data for head revision of all spec fields
107 db.uxtext 0 Indexing data for Swarm
108 db.protect 6 The protections table
109 db.property 1 Properties
110 db.message 0 System messages
111 db.sendq 5 Parallel file transmission work queue
112 db.sendq.pt 5 Per Client transmission work queue
113 db.jnlack 2 Tracks journal positions of all replicas
114 db.monitor 3 Helix Server process information

Table Details

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 Key To Key
attr Int The attribute value
fromKey Key From key
fromChange Change From change
baseKey Key Base Key
baseChange Change Base change
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete
state ResolveState How the user performed the resolve

db.bodresolvex - Pending integration records for shelved stream specifications

Indexed on:type, shelf, toKey, attr, fromKey, fromChange
Name Type Description
type SpecType The spec type
shelf Change Shelf change ID
toKey Key To Key
attr Int The attribute value
fromKey Key From key
fromChange Change From change
baseKey Key Base Key
baseChange Change Base change
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete
state ResolveState How the user performed the resolve
client Domain The client used for the resolve

db.bodtext - Job data for job attributes

Indexed on:key, attr
Name Type Description
key Key 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

Indexed on:type, key, change, attr
Name Type Description
type Int The type of spec
key Key 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

Indexed on:type, key, attr
Name Type Description
type Int The type of spec
key Key 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

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 Key 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
user User The user that created the change
action Action The Action that created the change

db.bodtextwx - Open openable spec fields

Indexed on:type, client, key, attr
Name Type Description
type Int The type of spec
client Domain The client the spec is opened on
key Key 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
user User The user that created the change
action Action The action that created the 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 User The user who fetched or pushed this change to this server
identity Key Identifier for this change
access Date Shelve last access
update Date Shelve last update
stream Domain Stream spec name in changelist

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

Indexed on:identity
Name Type Description
identity Key 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 User The user who fetched or pushed this change to this server
identity Key Identifier for this change
access Date Shelve last access
update Date Shelve last update
stream Domain Stream spec name in changelist
Note:contains records for pending changelists only.

db.ckphist - Stores history of checkpoint events

Indexed on:start, jnum, type, who
Name Type Description
start Date Event start time
jnum Int Journal Number
who Int Pid which created the event
type CheckpointEventType Type of event
end Date Event end time
flags Key Flags: usage depends on CheckpointEventType
jfile File Journal Filename
jdate Date Journal Date
jdigest Digest Journal Digest
jsize FileSize Journal File Size
jtype FileType Journal File Type
failed Int Non-zero on failure
errmsg Octet String Error Message

db.config - Server configurations table

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

db.configh - Server configuration history

Indexed on:sName, name, version, date, server
Name Type Description
sName Key Server name where configurable applies
name Key variable name
version Int configuration version
date Date date
server Key server ID where the configurable was set
user User user
ovalue Value old value
nvalue Value new value
comment Text Comment

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, a suffix to append to the filename. For stream depots, stream depth.
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.
objAddr Text Native object store configuration information. Used to locate archives in S3 or other cloud providers

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 Key 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.exclg - Graph depot LFS locks

Indexed on:repo, ref, file
Name Type Description
repo Key The name of the repository on which the lock is applied
ref Text The reference on which the lock is applied
file File The git file path
lockId String The git LFS lock identifier
user User The user for which the file is locked
created String The lock creation date stored in git data format

db.exclgx - Graph depot LFS locks indexed by lockId

Indexed on:lockId
Name Type Description
lockId String The git LFS lock identifier
repo Key The name of the repository on which the lock is applied
ref Text The reference on which the lock is applied
file File The git file path
user User The user for which the file is locked
created String The lock creation date stored in git data format

db.fix - Fix records: indexed by job

Indexed on:job, change
Name Type Description
job Key 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 Key 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
name File File name (minus the repo name)
date Date Descending historical commit sequence
blobSha SHA1 SHA of blob
commitSha SHA1 SHA of commit that added/edited this file
flags Int Miscellaneous flags
size FileSize The size of the file (or target LFS file)
type FileType The filetype of the graph file
lfsoid 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 Mapping Repository name
ref Mapping Reference
type UserType Type of user
user UserWild 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
maxMemory MaxMemory Maximum memory setting for 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
description String Group Description

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 file
time Date The sync time of the synced revision

db.have.pt - Placeholder for read-only 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 file
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
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 file
time Date The sync time of the synced revision

db.haveg - Contains the 'have-list' for graph depot files that are not at the same revision as defined by the client's have reference

Indexed on:repo, clientFile
Name Type Description
repo Key Repository name
clientFile File The file in its location on the client
depotFile File The git file path
client Domain Domain (client) in which file is synced
type FileType The filetype of the synced revision
action Action Action file is open for: add, edit, delete, branch, integrate, or import
blobSha SHA1 SHA of blob
commitSha SHA1 SHA of commit that added/edited this file
flags Int Miscellaneous flags

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

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.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.integedss - Stream specification integration history

Indexed on:toKey, attr, fromKey, endfromChange, endtoChange
Name Type Description
toKey Key Stream specification to which integration is being performed (target)
attr Int The specification field id which is being integrated
fromKey Key Stream specification from which integration is being performed (source)
endfromChange Change The ending change of the from stream spec.
endtoChange Change The ending change of the to stream spec
startfromChange Change The starting change of the from stream spec.
starttoChange Change The starting change of the to stream spec
baseKey Key The base stream specification from which the integration is being performed (source)
baseChange Change The base changelist number of the baseKey
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete
change Change End changelist number of the toKey into which integration was performed

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 Key The word being indexed
attr Int The attribute number to which this word belongs. For job data, the attribute number from the jobspec.
value Key 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

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

db.jnlack - Tracks journal positions of all replicas

Indexed on:serverId
Name Type Description
serverId Key The serverId of the replica for whom this record applies
lastUpdate Date The date and time of last update
serverType ServerServiceType The server services offered by this replica
persistedJnl Int The last journal number persisted by this replica
appliedJnl Int The last journal number applied by this replica
persistedPos Int64 The last journal position persisted by this replica
appliedPos Int64 The last journal position applied by this replica
jcflags JournalCopyFlags Journalcopy Flags
isAlive Int 1 = alive
serverOptions ServerOptionsType Server Options
failoverSeen Text Failover was seen

db.job - Job records

Indexed on:job
Name Type Description
job Key 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 Key The LDAP configuration name
host String The FQDN of the directory server
port Int The port number on which to connect to the directory server
ssl Int The encryption method to use when connecting to the The FQDN of the directory server. Options are: 0='none', 1='ssl' and 2='tls'.
type Int The bind method to use with this directory. Options are: 0='simple', 1='search' and 2='sasl'.
pattern Text The DN used to bind against to validate the user's credentials.
baseDN Text The DN from which to start the search for the user object
filter Text The LDAP query filter to use to identify the user object which will be used to bind against
scope Int 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 Text The DN to bind against in order to search the directory
bindpass Text The password for the BindDN record
realm Text The optional realm to use when authenticating the user via SASL
groupBaseDN Text The search base for performing the group search. If unset this will default to the SearchBaseDN
groupFilter Text The filter to use for the group search
groupScope Int 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 Int LDAP options bitmask: 1=[no]downcase, 2=[no]getattrs and 4=[no]realminusername
attrUid Text The name of the attribute in the directory's user records that contain the users' UIDs
attrEmail Text The name of the attribute in the directory's user records that contain the users' email addresses
attrName Text 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 LockedType Bitmask of locked flags
change Change 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 LockedType Bitmask of locked flags
change Change 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 Key Either the word 'change' or the word 'job'
attr Key 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 Key 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 The SHA1 of the object
type ObjectType The object type
data Octet String The object content
refCount Int Reference Count

db.property - Properties

Indexed on:name, seq, type, scope
Name Type Description
name Key The property name
seq Int Sequence number of property
type UserType Only uses 1=user or 2=group and only applies when scope is set
scope User The user or group the property applies to (may be empty)
value Value The property value
date Date The date/time the property was last updated
user User 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 Mapping 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 User User
scope Key Scope
key Text Key
digest Digest Digest
update Date Update date

db.ref - Reference content for graph depots

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

db.refcntadjust - Graph depot reference count adjustments

Indexed on:walked, sha
Name Type Description
walked Int A flag that when set to 1 indicates that the object for sha is already walked, otherwise is set to 0
sha SHA1 The sha of the object, subject to ref-count adjustment
adjustment Int The ref-count adjustment to be applied to the object table
adjustObject Int A flag that if set it means the calculated adjustment will be applied to the object and the RefCntAdjust record will be deleted, otherwise it will be kept in a walked record

db.refhist - Reference history for graph depots

Indexed on:repo, type, name, date, action, user, ref
Name Type Description
repo Key Repository name
name Key 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 Text 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 bitmask: 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 Key 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 Key Name of the repo from which this repo was forked
desc Text Repo Description
branch Text Default branch to clone from the repo
mirror Text Upstream URL that this repo is mirrored (readonly) from
options Int Repo options: 0 = nolfs, 1 = lfs
id Int Repo index ID
gcmrrserver Text gconn mirror Server ID
gcmrrsecrettoken Text gconn mirror secret token
gcmrrstatus Int Indicates whether (1), or not (0) gconn mirror is enabled
gcmrrexcludedbranches Text gconn Excluded Branches
gcmrrhidefetchurl Int Indicates whether (1), or not (0) the gconn mirror fetch URL should be hidden

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 Integration method: variations on merge/branch/copy/ignore/delete
state ResolvedStatus State

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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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.revfs - Client filesystem file sizes

Indexed on:depotFile, rev, clientType
Name Type Description
depotFile File The file name
rev Rev The revision number
clientType VfsClientType The client type of the file
clientSize FileSize The size of the file in bytes

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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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.revstg - Temporary revision records for storage upgrade process

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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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.revtr - Rev table for huge traits

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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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, 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 or shelved
modTime Date The timestamp on the file in the user's workspace when the revision was submitted or shelved
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.scanctl - ScanCtl

Indexed on:file
Name Type Description
depotPath File name of scanner task
state ScanState scan state
seq Int Next internal sequence number of working directories
dirs Int directories processed
files Int files processed
zeros Int orphaned revisions
dirserr Int directories skipped due to errors
pri Int Priority (unused)
reqpause Int request paused
err Text background process error

db.scandir - Scandir

Indexed on:lskey, seq
Name Type Description
lskey File library scan key
seq Int The sequence of the work directory
file File The path of the pending work directory

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 String The librarian revision number
lbrType FileType The file type of the librarian revision
flags Int Miscellaneous flags
clientType FileType The client file type of the revision
depotRev Rev The revision number of depotFile
change Change The changelist that created the depotRev of depotFile
date Date The date/time when the changelist that created depotRev of depotFile was submitted
blobSha SHA1 The Blob SHA
repoSlot Int The repo slot (internal repo ordering)
shelveDigest Digest Digest of previous shelved revision

db.sendq.pt - Per Client 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 String The librarian revision number
lbrType FileType The file type of the librarian revision
flags Int Miscellaneous flags
clientType FileType The client file type of the revision
depotRev Rev The revision number of depotFile
change Change The changelist that created the depotRev of depotFile
date Date The date/time when the changelist that created depotRev of depotFile was submitted
blobSha SHA1 The Blob SHA
repoSlot Int The repo slot (internal repo ordering)
shelveDigest Digest Digest of previous shelved revision

db.server - Server specifications

Indexed on:id
Name Type Description
id Key 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
options ServerOptionsType Server options
rplFrom Key Replication from Server ID
failoverSeen Text Mark failover as seen

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.storage - Track references to archive files

Indexed on:file, rev, type
Name Type Description
file File Librarian file
rev String Librarian revision
type FileType The file type of the librarian revision
refCount Int Reference count
digest Digest MD5 of librarian file (ktext collapsed)
size FileSize Size of file
serverSize FileSize Size of librarian file on server at time of submit / shelve operation
compCksum Digest Digest of compressed librarian file
date Date Date of last update to the storage record
Note: Supersedes db.archmap in 2019.1

db.storageg - Track references to Graph Depot archive files (for future use)

Indexed on:repo, sha, type
Name Type Description
repo Key Repository name
sha Key Digest of the file in type appropriate format
type ObjectType Type of graph object
refCount Int Reference count
date Date Date of last update to the storage record

db.storagesh - Track references to shelved archive files

Indexed on:file, rev, type
Name Type Description
file File Librarian file
rev String Librarian revision
type FileType The file type of the librarian revision
refCount Int Reference count
digest Digest MD5 of librarian file (ktext collapsed)
size FileSize Size of file
serverSize FileSize Size of librarian file on server at time of submit / shelve operation
compCksum Digest Digest of compressed librarian file
date Date Date of last update to the storage record

db.storagesx - Digest and filesize based index for db.storagesh, for finding shelved files with identical content

Indexed on:digest,size,file,rev,type
Name Type Description
digest Digest digest
size FileSize file size
file Key lbrFile
rev lbrRev lbrRev
type FileType lbrType

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
copyChange Change Parent change at last copy
mergeChange Change Parent change at last merge
highChange Change Highest change at last merge
hash Int Hash value of dynamic branch
status StreamStatus Flow status
parentview StreamSpecParentView Parent view inheritance mode

db.streamq - Track streams for which the stream views should be regenerated

Indexed on:stream
Name Type Description
stream Domain Stream

db.streamrelation - Relationships between streams

Indexed on:independentStream, dependentStream
Name Type Description
independentStream Domain Independent Stream
dependentStream Domain Dependent Stream
type StreamRelationshipType Type of the relationship between the streams
parentView StreamSpecParentView Parent View

db.streamview - Precomputed stream views

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.streamviewx - Indexing for precomputed stream views

Indexed on:depotPath, viewPath, mapFlag, stream
Name Type Description
depotPath File Depot Path
viewPath File View Path
mapFlag MapFlag Type of Mapping
stream domain Stream Name
change Value Change ID
pathSource Domain Path Source
pathType StreamPathType Stream Path Type
componentPrefixes Text Component Folder Prefixes for the viewPath. A concatenation of all the component folders which prefix the view path, separated by '%' characters. If a stream mainC has an import path "import oRead/... //other/oRead/...", and a stream mainB defines a component "readonly dirC //stream/mainC", and stream mainA defines a component "readonly dirB //stream/mainB", then mainA will have a view path "dirB/dirC/oRead/..." and the component prefixes will be "dirB%dirC".
effectiveComponentType Text Effective Component Type. This is the component type which a consuming stream will effectively see for a component at the end of a chain of components. It is the most restrictive component type in the chain. For instance, suppose a stream A defines a readonly component B, which in turn defines a writeall component C. The views which stream A gets from stream C will effectively be readonly. Component types, in order of most restrictive to least restrictive are: "readonly", "writeimport+", "writeall".

db.submodule - Submodule configuration data

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

db.svrview - View data for servers specifications

Indexed on:id, type, seq
Name Type Description
id Key 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, seq
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, seq
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'.
changeAtOpen Change Base change at time of opening
user User The user that created the change
action Action The action that created the change

db.templatewx - Pending stream templates

Indexed on:client, name, seq
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'.
changeAtOpen Change Base change at time of opening
user User The user that created the change
action Action The action that created the change

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 Key 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 Key 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.topology - Topology information

Indexed on:address, destAddress, serverID, date
Name Type Description
address Text The P4PORT used by this server
destAddress Text The P4PORT used by the target server
serverID Key The server identifier
date Date Date of the initial stamping of the record
type ServerServiceType Service provided by this server
encryption Text If the protocol value of P4PORT is 'ssl', set to 'encrypted'. Otherwise, this field is empty.
svcUser User The service user of this server
lastSeenDate Date Timestamp of the latest update of the record
svrRecType TopologyRecordType Topology Record Type
taddr Text targetAddress: The address of the targetServer, such as the P4TARGET of a replica
tdaddr Text targetDestAddress: The destination address of the targetServer
tid Key targetServerID: The serverID of the targetAddress

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 Key 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 Key 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.upgrades - Store server upgrade info

Indexed on:seq
Name Type Description
seq Int zero-based sequence
name Text name of upgrade
state UpgradeState current state
startdate Date upgrade started
enddate Date upgrade ended
info Text optional information specific to the upgrade step

db.upgrades.rp - Store replica upgrade info

Indexed on:seq
Name Type Description
seq Int zero-based sequence
name Text name of upgrade
state UpgradeState current state
startdate Date upgrade started
enddate Date upgrade ended
info Text optional information specific to the upgrade step

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 Key The word being indexed
attr Int The attribute number to which this word belongs. For job data, the attribute number from the jobspec.
value Key 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 LockedType Bitmask of locked flags
digest Digest MD5 digest of working file
size FileSize File size
traitLot TraitLot Group of traits associated with file revision
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace
clientType FileType Type of the file in the client workspace
movedFile File Moved from filename
status WorkStatus Working status

db.workingg - Working records for clients of type graph

Indexed on:clientFile
Name Type Description
clientFile File File on the client
depotFile File File in the depot
client Domain The client on which the file is opened
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 LockedType Bitmask of locked flags
digest Digest MD5 digest of working file
size FileSize File size
traitLot TraitLot Group of traits associated with file revision
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace
clientType FileType Type of the file in the client workspace
movedFile File Moved from filename
status WorkStatus Working status
blobSha SHA1 Blob SHA
repo Key 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 LockedType Bitmask of locked flags
digest Digest MD5 digest of working file
size FileSize File size
traitLot TraitLot Group of traits associated with file revision
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace
clientType FileType Type of the file in the client workspace
movedFile File Moved from filename
status WorkStatus Working status

pdb.lbr - Proxy server pending archive transfer table

Indexed on:file, rev
Name Type Description
file File The file name
rev String The librarian revision
type FileType The file type of the revision
status PullStatus The status of the archive transfer
who Int The process / thread id ID of the pull process
when Int The timestamp from when the transfer was scheduled
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
retries Int Error retry count
errmsg Octet String Last Error Message
change Change The changelist that created the revision
date Date Librarian date
modTime Date Librarian modtime
origin Int The revision type that this transfer originates from: 1 = db.rev 2 = db.revsh 3 = db.revsx 4 = db.revux 5 = db.object
target Text Edge server to transfer from (reverse replication only)
retryMissing Int 0 or 1: 1 indicates that pull should retry the fetch if this archive is missing. Set when background submit is used.

rdb.lbr - Replica server pending archive transfer table

Indexed on:file, rev
Name Type Description
file File The file name
rev String The librarian revision
type FileType The file type of the revision
status PullStatus The status of the archive transfer
who Int The process / thread id ID of the pull process
when Int The timestamp from when the transfer was scheduled
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
retries Int Error retry count
errmsg Octet String Last Error Message
change Change The changelist that created the revision
date Date Librarian date
modTime Date Librarian modtime
origin Int The revision type that this transfer originates from: 1 = db.rev 2 = db.revsh 3 = db.revsx 4 = db.revux 5 = db.object
target Text Edge server to transfer from (reverse replication only)
retryMissing Int 0 or 1: 1 indicates that pull should retry the fetch if this archive is missing. Set when background submit is used.

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

Indexed on:key
Name Type Description
key Key The file name and revision
value Octet String The (encoded) file content

Data Types

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. This is an IntV datatype.
See also:IntV

ChangeStatus - The status of a change

A bit mask representing the status of a change

Value Explanation
0x0001 committed
0x0002 shelved
0x0004 restricted
0x0008 hidden
0x0010 elsewhere
0x0012 promoted: elsewhere, shelved
0x0020 unsubmitted
0x0040 hasgraph

CheckpointEventType - Type of checkpoint event

The type of a checkpoint event

Value Explanation
1 journal: 'p4d -jj' or 'p4 admin journal'
2 checkpoint: 'p4d -jc' or 'p4 admin checkpoint'
3 replay: 'p4d -jr' or 'p4 admin import'
4 dump: 'p4d -jd'
5 schedule: scheduled a replica checkpoint
6 seed: replica seed created
7 seed-schedule: scheduled a replica seed
8 checkpoint-para: 'p4d -jcp'
9 checkpoint-para-multi: 'p4d -jcpm'
10 dump-para: 'p4d -jdp'
11 dump-para-multi: 'p4d -jdpm'
12 dump-replay-para: 'p4d -jrp'

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. This is an IntV data type.
See also:IntV

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
8 extension
9 trait

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
0x1010000 AutoWild
0x1040000 utf8
0x1050000 submodule
0x1080000 utf16 client utf8 server (2007.2)

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

IntV - A variable length integer

The representation of an IntV in a database table changes from a fixed length 32 bit word to a variable length one, either one or two 32 bit words. Old numbers <= 2147483647 remain unchanged within existing tables. Numbers exceeding 2147483647 are stored as 8 bytes. In checkpoints all Int types are represented as Decimal Integer Strings.

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
26 integration treats conversion of stream spec to noinherit ParentView as a copy
27 integration treats conversion of stream spec to noinherit ParentView as a reverse copy
28 integration ignores conversion of stream spec to inherit ParentView
29 integration in reverse direction ignores conversion of stream spec to inherit ParentView
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

JournalCopyFlags - "Journal Copy State"

Used to maintain Journal Copy State

Value Explanation
1 Durable Only
2 Non Acknowledging
4 Journal Wait

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)
See also:String

LockedType - Bitmask of lock types

A bitmask of locked flags

Bits used to store lock types (Mask: 0x0003)

Value Explanation
0x0000 Unlocked
0x0001 Locked
0x0002 Global

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 '@')
5 dittoMap (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'.

MaxMemory - Maximum memory use permitted

Maximum megabytes of memory a command may use. Commands that take more than this will be aborted. The value 0 means 'unlimited'.

MaxOpenFiles - Maximum number of files opened

The number of files which a command may open. Commands that take more than this will be aborted. 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: 0x1F01FF )

Value Explanation
0x000000 none
0x000001 Grants list access
0x000002 Grants read access
0x000004 Grants ability to branch/integ from
0x000008 Grants open access
0x000010 Grants write access
0x000020 Grants review access
0x000080 Grants admin access
0x000040 Grants super-user access
0x000100 Grants owner access
0x010000 Grants stream list access
0x020000 Grants stream read access
0x040000 Grants stream branch access
0x080000 Grants stream open access
0x100000 Grants stream write 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 state

A bitmask of resolve state This is an IntV data type.

All flags (Mask: None)

Value Explanation
0x000001 need content
0x000002 done content
0x000004 need filetype
0x000008 done filetype
0x000010 need branch
0x000020 done branch
0x000040 need delete
0x000080 done delete
0x000100 need move
0x000200 done move
0x000400 need trait
0x000800 done trait
0x001000 need charset
0x002000 done charset
See also:IntV

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: 0x00FFFFFF)

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). Values below have been shifted right 24 bits (Mask: 0x7F000000)

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

ScanState - The state of the scan

The state of the scan

Value Explanation
0 unset
1 run
2 paused
3 done
4 error
5 busy

ServerOptionsType - Options for server definitions

Option Flags for server definitions.

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

Value Explanation
0x0001 mandatory

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 )
0x0945 replica ( db-read | db-replication | file-replication | rmt-depot | rmt-journal )
0x0030 broker ( brokering | forwarding )
0x00A0 proxy ( forwarding | file-cacheing )
0x09E5 forwarding-replica ( db-read | db-replication | forwarding | file-replication | file-cacheing | rmt-depot | rmt-journal )
0x094D 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
0x200000 distribution

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
0x100000 git-connector
0x200000 distribution

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
69 (ASCII 'E') extension
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
82 (ASCII 'R') repo
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, a type which is generated internally
7 import+
8 inclusive+, a type which is generated internally
9 a line comment in the paths field
10 a continuation comment in the paths field
11 a line comment in the remapped field
12 a continuation comment in the remapped field
13 a line comment in the ignored field
14 a continuation comment in the ignored field
15 imported ditto mapping
16 inclusive ditto mapping
17 component readonly
18 component writeall
19 component line comment
20 component continuation comment
21 component template import type converted to import ditto in view only
22 component template import plus type converted to import ditto in view only
23 import stream templates, writable access to files in import+ paths

StreamRelationshipType - Stream relationship type

Defines the relationship between two streams

Value Explanation
0 Parent is independent, child is dependent
1 Independent stream is a component of the dependent stream

StreamSpecParentView - Stream Spec Parent View

Stream Spec Parent View

Value Explanation
0 noinherit
1 inherit

StreamStatus - Stream integration status

The stream integration status.

Bits used to store the stream integration status (Mask: Copy: 0x0003, Merge: 0x000C, Spec copy: 0x0030, Spec merge: 0x00C0)

Value Explanation
0x0000 Clear cache
0x0001 Needs copy
0x0002 Copy up-to-date
0x0004 Needs merge
0x0008 Merge up-to-date
0x0010 Spec needs copy
0x0020 Spec copy up-to-date
0x0040 Spec needs merge
0x0080 Spec merge up-to-date

StreamType - Type of stream

The type of stream.

Value Explanation
-1 invalid
0 mainline
1 release
2 development
3 virtual
4 task
5 task - unloaded
6 sparse - release
7 sparse - development

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 Client Data Filter
1 Revision Data Filter
2 Archive Data Filter
3 Authorized Addresses
4 Repos that should be polled to keep their caches up-to-date

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.

TopologyRecordType - Topology Record Type

Tracks where topology record came from

Value Explanation
1 startup: created during server startup
2 connect: created during crypto exchange
3 delete: mark record as deleted
4 moveto: mark record as moved to
5 movefrom: mark record as moved from

TraitLot - The id of a group of traits

An integer identifying a group of traits which may be shared by several revisions. This is an IntV data type.
See also:IntV

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
3 Clone of
4 Huge
5 Huge 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
38 auth-invalidate
39 global-extcfg
40 auth-pre-sso
41 failed-over
42 extension-run
43 heartbeat-missing
44 heartbeat-resumed
45 heartbeat-dead
46 failed-back
47 pressure-pause

UpgradeState - Upgrade State

Upgrade State

Bits used to store the upgrade state (Mask: 0x010F)

Value Explanation
0x0000 Upgrade Needed
0x0001 Upgrade Needed on replica; change to counter seen
0x0002 Upgrade currently executing (or abruptly terminated)
0x0003 Upgrade completed on this and all upstream servers
0x0004 Manually triggered upgrade success on replica
0x0005 Upgrade step has failed on this server
0x0100 Upgrade step was run in isolation (modifier bit)

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

VfsClientType - An ASCII string sequence

Must match this pattern: 123KBU[charset]
  • 1: 0-Q for filetype and executable flag, see VfsFileTypeEncoding
  • 2: 0-4 for line ending
  • 3: 1 for compressed, 0 for uncompressed
  • Optional K: +k keywords expanded(without K, +k keywords collapsed or not ktext)
  • Optional B: utf8 filetype with BOM (without B, utf8 types with no BOM)
  • Optional U[charset]: unicode type file, translated to the charset in the brackets (e.g. U[shiftjis])

VfsFileTypeEncoding - An ASCII character representing the client filetype

Used as the first character in a VfsClientType string.

Value Explanation
0 text
1 binary
2 text+x
3 binary+x
4 symlink
5 resource
6 unicode
8 unicode
9 rtext
A unicode+x
B rtext+x
C appletext
D applefile
E applefile+x
F applefile+x
K utf8
M utf8+x
O utf16
Q utf16+x

WorkStatus - Working table charset and status

Working State Flags and Charset

Working table status flags, WorkStatus Flags defined below (Mask: 0x00FFFFFF)

Value Explanation
0x0001 resolved merged ktext

Bits used to store working charset (high 8 bits). Values below have been shifted right 24 bits (Mask: 0x7F000000)

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

Upgrades

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

The 2023.2 release has 52 upgrades.
Upgrade Release ID 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 Removed in 2019.1
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 remove db.graphindex
30 2018.2 Initialize Extensions depot and server.extensions.dir
31 2018.2 Normalize a field in the triggers table
32 2019.1 Build db.storage from db.rev, db.revsh and db.revtx, remove db.archmap
33 2019.1 Add default namespace to Extension configurations
34 2019.2 Upgrade git-connector server specs
35 2019.2 Correct configurationVersion server names
36 2020.1 perform upgrade checks for 2020.1
37 2020.2 installation running 2020.2 release
38 2020.2 build db.storagesx index from db.storagesh
39 2020.2 purge the server.locks directory of stale lock files
40 2021.1 installation running 2021.1 release
41 2021.2 installation running 2021.2 release
42 2021.2 compute graph object refcount
43 2021.2 populate stream relation table
44 2021.2 run stream queue worker to populate db.streamview and db.streamviewx
45 2022.1 installation running 2022.1 release
46 2022.1 move object refcounts from db.object to db.refcntadjust
47 2022.1 populate db.streamview and db.streamviewx with views at each change
48 2022.2 installation running 2022.2 release
49 2022.2 rebuild database keys for db.integedss
50 2023.1 installation running 2023.1 release
51 2023.2 installation running 2023.2 release
52 2023.2 initialize .p4-traits depot

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 specification 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.

Helix Core Server Releases

The following table provides a link to the release notes for each release and a link to the schema for that release. It also shows the Server and Client protocol versions and indicates if any tables were added, removed, or modified for that release.

Release Notes Schema Server Client Tables Added Tables Removed Tables Modified
2023.2 2023.2 57 95 db.revtr db.configh db.depot
2023.1 2023.1 56 94 db.revfs
2022.2 2022.2 55 93 db.group db.integdss db.streamviewx db.topology
2022.1 2022.1 54 92 db.groupx db.streamviewx db.topology
2021.2 2021.2 53 91 db.refcntadjust db.topology db.streamq db.streamrelation db.streamview db.streamviewx db.object
2021.1 2021.1 52 90 db.repo
2020.2 2020.2 51 89 db.storagesx db.storageg db.stream db.integdss
2020.1 2020.1 50 88 db.integedss db.bodresolvex db.bodresolve db.bodtextsx db.bodtextwx db.templatesx db.templatewx
2019.2 2019.2 49 87 db.configh db.upgrades db.upgrades.rp db.scandir db.scanctl db.changeidx db.repo db.storage db.storagesh
2019.1 patch 2 48
2019.1 2019.1 47 86 db.exclg db.exclgx db.storage db.storagesh db.storageg db.revstg db.archmap db.change db.changex db.templatesx db.templatewx db.haveview db.locksg db.repoview
2018.2 2018.2 46 85 db.sendq.pt db.change db.jnlack db.server
2018.1 2018.1 45 84 db.haveg db.user.rp db.view.rp db.templatesx dt.templatewx db.graphindex db.sendq
2017.2 2017.2 44 83 db.ticket db.ticket.rp db.graphindex db.repo db.sendq
2017.1 2017.1 43 82 db.haveview db.locksg db.resolveg db.workingg db.repoview db.submodule db.domain db.repo db.sendq
2016.2 2016.2 42 81 db.graphperm db.object db.pubkey db.ref db.refhist db.repo db.repoview db.groupx db.protect db.sendq
2016.1 2016.1 41 80 db.bodresolve db.bodtextcx db.bodtexthx db.bodtextsx db.bodtextwx db.ixtexthx db.templatesx db.templatewx db.change db.changex db.group db.protect db.rmtview
2015.2 2015.2 40 79 db.changeidx db.have.pt db.ldap db.change db.remote db.template
2015.1 2015.1 39 78 db.remote db.rmtview db.stash db.groupx db.have db.server
2014.2 2014.2 38 77 db.jnlack db.monitor db.server db.user db.sendq
2014.1 2014.1 37 76 db.ckphist db.sendq db.sendq.pt db.uxtext db.template db.trigger
2013.3 36 75
2013.2 35 74 db.excl db.working
2013.1 34 73 db.srvview db.integtx db.property db.revtx db.user
2012.2 33 72 db.revux db.user
2012.1 32 71 db.server db.view.rp db.have.rp
2011.1 31 70 db.user.rp db.domain db.resolve db.stream
2011.1 (early) 69
2010.2 30 68 db.config db.template db.revbx db.group db.user db.change db.rev
2010.1 29 67 db.nameval
2009.2 28 66 db.resolvex db.revsh db.workingx db.boddate db.ixdate db.bodtext db.group
2009.1 27 65 db.stream db.domain db.working db.rev
2008.2 26 64
2008.1 25 63 db.change db.counters
2007.3 24 62 db.group
2007.2 23 61 db.working
2006.2 22 60 db.archmap db.archive
2006.1 21 59
2005.2 20 58 db.revdx db.revsx
2005.1 19
2004.2 18
2004.1 57
2003.2 17 56
2003.1 16
2003.1 (early) 15
2002.2 14 55
2002.1 13 53
2001.2 12 52
2001.1 11 51 db.jobpend db.jobdesc
2000.2 10
2000.1 9
99.2 8 8
99.1 7 7
99.1 (early) 6 6
98.2 5 5
98.2 (early) 4
98.1 4
97.3 3 3
97.2 2 2
97.1 1 1
Copyright 1999-2022, Perforce Software. All rights reserved.