Appendix M. Glossary
This is a list of terms and their meaning in the context ofPostgreSQL and relational database systems in general.
- ACID
Atomicity,Consistency,Isolation, andDurability. This set of properties of database transactions is intended to guarantee validity in concurrent operation and even in event of errors, power failures, etc.
- Aggregate function (routine)
Afunction that combines (aggregates) multiple input values, for example by counting, averaging or adding, yielding a single output value.
For more information, seeSection 9.21.
See AlsoWindow function (routine).
- Access Method
Interfaces whichPostgreSQL use in order to access data in tables and indexes. This abstraction allows for adding support for new types of data storage.
For more information, seeChapter 61 andChapter 62.
- Analytic function
- Analyze (operation)
The act of collecting statistics from data intables and otherrelations to help thequery planner to make decisions about how to executequeries.
(Don't confuse this term with the
ANALYZE
option to theEXPLAIN command.)For more information, seeANALYZE.
- Atomic
In reference to adatum: the fact that its value cannot be broken down into smaller components.
- Atomicity
The property of atransaction that either all its operations complete as a single unit or none do. In addition, if a system failure occurs during the execution of a transaction, no partial results are visible after recovery. This is one of theACID properties.
- Attribute
An element with a certain name and data type found within atuple.
- Autovacuum (process)
A set of background processes that routinely performvacuum andanalyze operations. Theauxiliary process that coordinates the work and is always present (unless autovacuum is disabled) is known as theautovacuum launcher, and the processes that carry out the tasks are known as theautovacuum workers.
For more information, seeSection 24.1.6.
- Auxiliary process
A process within aninstance that is in charge of some specific background task for the instance. The auxiliary processes consist of theautovacuum launcher (but not the autovacuum workers), thebackground writer, thecheckpointer, thelogger, thestartup process, theWAL archiver, theWAL receiver (but not theWAL senders), theWAL summarizer, and theWAL writer.
- Backend (process)
Process of aninstance which acts on behalf of aclient session and handles its requests.
(Don't confuse this term with the similar termsBackground Worker orBackground Writer).
- Background worker (process)
Process within aninstance, which runs system- or user-supplied code. Serves as infrastructure for several features inPostgreSQL, such aslogical replication andparallel queries. In addition,Extensions can add custom background worker processes.
For more information, seeChapter 46.
- Background writer (process)
Anauxiliary process that writes dirtydata pages fromshared memory to the file system. It wakes up periodically, but works only for a short period in order to distribute its expensiveI/O activity over time to avoid generating largerI/O peaks which could block other processes.
For more information, seeSection 19.4.5.
- Base Backup
A binary copy of alldatabase cluster files. It is generated by the toolpg_basebackup. In combination with WAL files it can be used as the starting point for recovery, log shipping, or streaming replication.
- Bloat
Space in data pages which does not contain current row versions, such as unused (free) space or outdated row versions.
- Bootstrap superuser
The firstuser initialized in adatabase cluster.
This user owns all system catalog tables in each database. It is also the role from which all granted permissions originate. Because of these things, this role may not be dropped.
This role also behaves as a normaldatabase superuser, and its superuser status cannot be removed.
- Buffer Access Strategy
Some operations will access a large number ofpages. ABuffer Access Strategy helps to prevent these operations from evicting too many pages fromshared buffers.
A Buffer Access Strategy sets up references to a limited number ofshared buffers and reuses them circularly. When the operation requires a new page, a victim buffer is chosen from the buffers in the strategy ring, which may require flushing the page's dirty data and possibly also unflushedWAL to permanent storage.
Buffer Access Strategies are used for various operations such as sequential scans of large tables,
VACUUM
,COPY
,CREATE TABLE AS SELECT
,ALTER TABLE
,CREATE DATABASE
,CREATE INDEX
, andCLUSTER
.- Cast
A conversion of adatum from its current data type to another data type.
For more information, seeCREATE CAST.
- Catalog
TheSQL standard uses this term to indicate what is called adatabase inPostgreSQL's terminology.
(Don't confuse this term withsystem catalog).
For more information, seeSection 22.1.
- Check constraint
A type ofconstraint defined on arelation which restricts the values allowed in one or moreattributes. The check constraint can make reference to any attribute of the same row in the relation, but cannot reference other rows of the same relation or other relations.
For more information, seeSection 5.5.
- Checkpoint
A point in theWAL sequence at which it is guaranteed that the heap and index data files have been updated with all information fromshared memory modified before that checkpoint; acheckpoint record is written and flushed to WAL to mark that point.
A checkpoint is also the act of carrying out all the actions that are necessary to reach a checkpoint as defined above. This process is initiated when predefined conditions are met, such as a specified amount of time has passed, or a certain volume of records has been written; or it can be invoked by the user with the command
CHECKPOINT
.For more information, seeSection 28.5.
- Checkpointer (process)
Anauxiliary process that is responsible for executingcheckpoints.
- Class (archaic)
SeeRelation.
- Client (process)
Any process, possibly remote, that establishes asession byconnecting to aninstance to interact with adatabase.
- Cluster owner
The operating system user that owns thedata directory and under which the
postgres
process is run. It is required that this user exist prior to creating a newdatabase cluster.On operating systems with a
root
user, said user is not allowed to be the cluster owner.- Column
- Commit
The act of finalizing atransaction within thedatabase, which makes it visible to other transactions and assures itsdurability.
For more information, seeCOMMIT.
- Concurrency
The concept that multiple independent operations happen within thedatabase at the same time. InPostgreSQL, concurrency is controlled by themultiversion concurrency control mechanism.
- Connection
An established line of communication between a client process and abackend process, usually over a network, supporting asession. This term is sometimes used as a synonym for session.
For more information, seeSection 19.3.
- Consistency
The property that the data in thedatabase is always in compliance withintegrity constraints. Transactions may be allowed to violate some of the constraints transiently before it commits, but if such violations are not resolved by the time it commits, such a transaction is automaticallyrolled back. This is one of theACID properties.
- Constraint
A restriction on the values of data allowed within atable, or in attributes of adomain.
For more information, seeSection 5.5.
- Cumulative Statistics System
A system which, if enabled, accumulates statistical information about theinstance's activities.
For more information, seeSection 27.2.
- Data area
SeeData directory.
- Database
A named collection oflocal SQL objects.
For more information, seeSection 22.1.
- Database cluster
A collection of databases and global SQL objects, and their common static and dynamic metadata. Sometimes referred to as acluster. A database cluster is created using theinitdb program.
InPostgreSQL, the termcluster is also sometimes used to refer to an instance. (Don't confuse this term with the SQL command
CLUSTER
.)See alsocluster owner, the operating-system owner of a cluster, andbootstrap superuser, thePostgreSQL owner of a cluster.
- Database server
SeeInstance.
- Database superuser
A role havingsuperuser status (seeSection 21.2).
Frequently referred to assuperuser.
- Data directory
The base directory on the file system of aserver that contains all data files and subdirectories associated with adatabase cluster (with the exception oftablespaces, and optionallyWAL). The environment variable
PGDATA
is commonly used to refer to the data directory.Acluster's storage space comprises the data directory plus any additional tablespaces.
For more information, seeSection 65.1.
- Data page
The basic structure used to store relation data. All pages are of the same size. Data pages are typically stored on disk, each in a specific file, and can be read toshared buffers where they can be modified, becomingdirty. They become clean when written to disk. New pages, which initially exist in memory only, are also dirty until written.
- Datum
The internal representation of one value of anSQL data type.
- Delete
AnSQL command which removesrows from a giventable orrelation.
For more information, seeDELETE.
- Domain
A user-defined data type that is based on another underlying data type. It acts the same as the underlying type except for possibly restricting the set of allowed values.
For more information, seeSection 8.18.
- Durability
The assurance that once atransaction has beencommitted, the changes remain even after a system failure or crash. This is one of theACID properties.
- Epoch
SeeTransaction ID.
- Extension
A software add-on package that can be installed on aninstance to get extra features.
For more information, seeSection 36.17.
- File segment
A physical file which stores data for a givenrelation. File segments are limited in size by a configuration value (typically 1 gigabyte), so if a relation exceeds that size, it is split into multiple segments.
For more information, seeSection 65.1.
(Don't confuse this term with the similar termWAL segment).
- Foreign data wrapper
A means of representing data that is not contained in the localdatabase so that it appears as if were in localtable(s). With a foreign data wrapper it is possible to define aforeign server andforeign tables.
For more information, seeCREATE FOREIGN DATA WRAPPER.
- Foreign key
A type ofconstraint defined on one or morecolumns in atable which requires the value(s) in thosecolumns to identify zero or onerow in another (or, infrequently, the same)table.
- Foreign server
A named collection offoreign tables which all use the sameforeign data wrapper and have other configuration values in common.
For more information, seeCREATE SERVER.
- Foreign table (relation)
Arelation which appears to haverows andcolumns similar to a regulartable, but will forward requests for data through itsforeign data wrapper, which will returnresult sets structured according to the definition of theforeign table.
For more information, seeCREATE FOREIGN TABLE.
- Fork
Each of the separate segmented file sets in which a relation is stored. Themain fork is where the actual data resides. There also exist two secondary forks for metadata: thefree space map and thevisibility map.Unlogged relations also have aninit fork.
- Free space map (fork)
A storage structure that keeps metadata about each data page of a table's main fork. The free space map entry for each page stores the amount of free space that's available for future tuples, and is structured to be efficiently searched for available space for a new tuple of a given size.
For more information, seeSection 65.3.
- Function (routine)
A type of routine that receives zero or more arguments, returns zero or more output values, and is constrained to run within one transaction. Functions are invoked as part of a query, for example via
SELECT
. Certain functions can returnsets; those are calledset-returning functions.Functions can also be used fortriggers to invoke.
For more information, seeCREATE FUNCTION.
- GMT
SeeUTC.
- Grant
AnSQL command that is used to allow auser orrole to access specific objects within thedatabase.
For more information, seeGRANT.
- Heap
Contains the values ofrow attributes (i.e., the data) for arelation. The heap is realized within one or morefile segments in the relation'smain fork.
- Host
A computer that communicates with other computers over a network. This is sometimes used as a synonym forserver. It is also used to refer to a computer whereclient processes run.
- Index (relation)
Arelation that contains data derived from atable ormaterialized view. Its internal structure supports fast retrieval of and access to the original data.
For more information, seeCREATE INDEX.
- Incremental backup
A specialbase backup that for some files may contain only those pages that were modified since a previous backup, as opposed to the full contents of every file. Like base backups, it is generated by the toolpg_basebackup.
To restore incremental backups the toolpg_combinebackup is used, which combines incremental backups with a base backup. Afterwards, recovery can useWAL to bring thedatabase cluster to a consistent state.
For more information, seeSection 25.3.3.
- Insert
AnSQL command used to add new data into atable.
For more information, seeINSERT.
- Instance
A group ofbackend andauxiliary processes that communicate using a common shared memory area. Onepostmaster process manages the instance; one instance manages exactly onedatabase cluster with all its databases. Many instances can run on the sameserver as long as theirTCP ports do not conflict.
The instance handles all key features of aDBMS: read and write access to files and shared memory, assurance of theACID properties,connections toclient processes, privilege verification, crash recovery, replication, etc.
- Isolation
The property that the effects of a transaction are not visible toconcurrent transactions before it commits. This is one of theACID properties.
For more information, seeSection 13.2.
- Join
An operation andSQL keyword used inqueries for combining data from multiplerelations.
- Key
A means of identifying arow within atable or otherrelation by values contained within one or moreattributes in that relation.
- Lock
A mechanism that allows a process to limit or prevent simultaneous access to a resource.
- Log file
Log files contain human-readable text lines about events. Examples include login failures, long-running queries, etc.
For more information, seeSection 24.3.
- Logged
Atable is consideredlogged if changes to it are sent to theWAL. By default, all regular tables are logged. A table can be specified asunlogged either at creation time or via the
ALTER TABLE
command.- Logger (process)
Anauxiliary process which, if enabled, writes information about database events into the currentlog file. When reaching certain time- or volume-dependent criteria, a new log file is created. Also calledsyslogger.
For more information, seeSection 19.8.
- Log record
Archaic term for aWAL record.
- Log sequence number (LSN)
Byte offset into theWAL, increasing monotonically with each newWAL record.
For more information, see
pg_lsn
andSection 28.6.- LSN
- Master (server)
SeePrimary (server).
- Materialized
The property that some information has been pre-computed and stored for later use, rather than computing it on-the-fly.
This term is used inmaterialized view, to mean that the data derived from the view's query is stored on disk separately from the sources of that data.
This term is also used to refer to some multi-step queries to mean that the data resulting from executing a given step is stored in memory (with the possibility of spilling to disk), so that it can be read multiple times by another step.
- Materialized view (relation)
Arelation that is defined by a
SELECT
statement (just like aview), but stores data in the same way that atable does. It cannot be modified viaINSERT
,UPDATE
,DELETE
, orMERGE
operations.For more information, seeCREATE MATERIALIZED VIEW.
- Merge
AnSQL command used to conditionally add, modify, or removerows in a giventable, using data from a sourcerelation.
For more information, seeMERGE.
- Multi-version concurrency control (MVCC)
A mechanism designed to allow severaltransactions to be reading and writing the same rows without one process causing other processes to stall. InPostgreSQL, MVCC is implemented by creating copies (versions) oftuples as they are modified; after transactions that can see the old versions terminate, those old versions need to be removed.
- Null
A concept of non-existence that is a central tenet of relational database theory. It represents the absence of a definite value.
- Optimizer
SeeQuery planner.
- Parallel query
The ability to handle parts of executing aquery to take advantage of parallel processes on servers with multipleCPUs.
- Partition
One of several disjoint (not overlapping) subsets of a larger set.
In reference to apartitioned table: One of the tables that each contain part of the data of the partitioned table, which is said to be theparent. The partition is itself a table, so it can also be queried directly; at the same time, a partition can sometimes be a partitioned table, allowing hierarchies to be created.
In reference to awindow function in aquery, a partition is a user-defined criterion that identifies which neighboringrows of thequery's result set can be considered by the function.
- Partitioned table (relation)
Arelation that is in semantic terms the same as atable, but whose storage is distributed across severalpartitions.
- Postmaster (process)
The very first process of aninstance. It starts and manages theauxiliary processes and createsbackend processes on demand.
For more information, seeSection 18.3.
- Primary key
A special case of aunique constraint defined on atable or otherrelation that also guarantees that all of theattributes within theprimary key do not havenull values. As the name implies, there can be only one primary key per table, though it is possible to have multiple unique constraints that also have no null-capable attributes.
- Primary (server)
When two or moredatabases are linked viareplication, theserver that is considered the authoritative source of information is called theprimary, also known as amaster.
- Procedure (routine)
A type of routine. Their distinctive qualities are that they do not return values, and that they are allowed to make transactional statements such as
COMMIT
andROLLBACK
. They are invoked via theCALL
command.For more information, seeCREATE PROCEDURE.
- Query
A request sent by a client to abackend, usually to return results or to modify data on the database.
- Query planner
The part ofPostgreSQL that is devoted to determining (planning) the most efficient way to executequeries. Also known asquery optimizer,optimizer, or simplyplanner.
- Record
SeeTuple.
- Recycling
SeeWAL file.
- Referential integrity
A means of restricting data in onerelation by aforeign key so that it must have matching data in anotherrelation.
- Relation
The generic term for all objects in adatabase that have a name and a list ofattributes defined in a specific order.Tables,sequences,views,foreign tables,materialized views, composite types, andindexes are all relations.
More generically, a relation is a set of tuples; for example, the result of a query is also a relation.
InPostgreSQL,Class is an archaic synonym forrelation.
- Replica (server)
Adatabase that is paired with aprimary database and is maintaining a copy of some or all of the primary database's data. The foremost reasons for doing this are to allow for greater access to that data, and to maintain availability of the data in the event that theprimary becomes unavailable.
- Replication
The act of reproducing data on oneserver onto another server called areplica. This can take the form ofphysical replication, where all file changes from one server are copied verbatim, orlogical replication where a defined subset of data changes are conveyed using a higher-level representation.
- Restartpoint
A variant of acheckpoint performed on areplica.
For more information, seeSection 28.5.
- Result set
Arelation transmitted from abackend process to aclient upon the completion of anSQL command, usually a
SELECT
but it can be anINSERT
,UPDATE
,DELETE
, orMERGE
command if theRETURNING
clause is specified.The fact that a result set is a relation means that a query can be used in the definition of another query, becoming asubquery.
- Revoke
A command to prevent access to a named set ofdatabase objects for a named list ofroles.
For more information, seeREVOKE.
- Role
A collection of access privileges to theinstance. Roles are themselves a privilege that can be granted to other roles. This is often done for convenience or to ensure completeness when multipleusers need the same privileges.
For more information, seeCREATE ROLE.
- Rollback
A command to undo all of the operations performed since the beginning of atransaction.
For more information, seeROLLBACK.
- Routine
A defined set of instructions stored in the database system that can be invoked for execution. A routine can be written in a variety of programming languages. Routines can befunctions (including set-returning functions andtrigger functions),aggregate functions, andprocedures.
Many routines are already defined withinPostgreSQL itself, but user-defined ones can also be added.
- Row
SeeTuple.
- Savepoint
A special mark in the sequence of steps in atransaction. Data modifications after this point in time may be reverted to the time of the savepoint.
For more information, seeSAVEPOINT.
- Schema
A schema is a namespace forSQL objects, which all reside in the samedatabase. Each SQL object must reside in exactly one schema.
All system-defined SQL objects reside in schema
pg_catalog
.More generically, the termschema is used to mean all data descriptions (table definitions,constraints, comments, etc.) for a givendatabase or subset thereof.
For more information, seeSection 5.10.
- Segment
SeeFile segment.
- Select
TheSQL command used to request data from adatabase. Normally,
SELECT
commands are not expected to modify thedatabase in any way, but it is possible thatfunctions invoked within the query could have side effects that do modify data.For more information, seeSELECT.
- Sequence (relation)
A type of relation that is used to generate values. Typically the generated values are sequential non-repeating numbers. They are commonly used to generate surrogateprimary key values.
- Server
A computer on whichPostgreSQLinstances run. The termserver denotes real hardware, a container, or avirtual machine.
This term is sometimes used to refer to an instance or to a host.
- Session
A state that allows a client and a backend to interact, communicating over aconnection.
- Shared memory
RAM which is used by the processes common to aninstance. It mirrors parts ofdatabase files, provides a transient area forWAL records, and stores additional common information. Note that shared memory belongs to the complete instance, not to a single database.
The largest part of shared memory is known asshared buffers and is used to mirror part of data files, organized into pages. When a page is modified, it is called a dirty page until it is written back to the file system.
For more information, seeSection 19.4.1.
- SQL object
Any object that can be created with a
CREATE
command. Most objects are specific to one database, and are commonly known aslocal objects.Most local objects reside in a specificschema in their containing database, such asrelations (all types),routines (all types), data types, etc. The names of such objects of the same type in the same schema are enforced to be unique.
There also exist local objects that do not reside in schemas; some examples areextensions,data type casts, andforeign data wrappers. The names of such objects of the same type are enforced to be unique within the database.
Other object types, such asroles,tablespaces, replication origins, subscriptions for logical replication, and databases themselves are not local SQL objects since they exist entirely outside of any specific database; they are calledglobal objects. The names of such objects are enforced to be unique within the whole database cluster.
For more information, seeSection 22.1.
- SQL standard
A series of documents that define theSQL language.
- Standby (server)
SeeReplica (server).
- Startup process
Anauxiliary process that replays WAL during crash recovery and in aphysical replica.
(The name is historical: the startup process was named before replication was implemented; the name refers to its task as it relates to the server startup following a crash.)
- Superuser
As used in this documentation, it is a synonym fordatabase superuser.
- System catalog
A collection oftables which describe the structure of allSQL objects of the instance. The system catalog resides in the schema
pg_catalog
. These tables contain data in internal representation and are not typically considered useful for user examination; a number of user-friendlierviews, also in schemapg_catalog
, offer more convenient access to some of that information, while additional tables and views exist in schemainformation_schema
(seeChapter 35) that expose some of the same and additional information as mandated by theSQL standard.For more information, seeSection 5.10.
- Table
A collection oftuples having a common data structure (the same number ofattributes, in the same order, having the same name and type per position). A table is the most common form ofrelation inPostgreSQL.
For more information, seeCREATE TABLE.
- Tablespace
A named location on the server file system. AllSQL objects which require storage beyond their definition in thesystem catalog must belong to a single tablespace. Initially, a database cluster contains a single usable tablespace which is used as the default for all SQL objects, called
pg_default
.For more information, seeSection 22.6.
- Temporary table
Tables that exist either for the lifetime of asession or atransaction, as specified at the time of creation. The data in them is not visible to other sessions, and is notlogged. Temporary tables are often used to store intermediate data for a multi-step operation.
For more information, seeCREATE TABLE.
- TOAST
A mechanism by which large attributes of table rows are split and stored in a secondary table, called theTOAST table. Each relation with large attributes has its own TOAST table.
For more information, seeSection 65.2.
- Transaction
A combination of commands that must act as a singleatomic command: they all succeed or all fail as a single unit, and their effects are not visible to othersessions until the transaction is complete, and possibly even later, depending on the isolation level.
For more information, seeSection 13.2.
- Transaction ID
The numerical, unique, sequentially-assigned identifier that each transaction receives when it first causes a database modification. Frequently abbreviated asxid. When stored on disk, xids are only 32-bits wide, so only approximately four billion write transaction IDs can be generated; to permit the system to run for longer than that,epochs are used, also 32 bits wide. When the counter reaches the maximum xid value, it starts over at
3
(values under that are reserved) and the epoch value is incremented by one. In some contexts, the epoch and xid values are considered together as a single 64-bit value; seeSection 66.1 for more details.For more information, seeSection 8.19.
- Transactions per second (TPS)
Average number of transactions that are executed per second, totaled across all sessions active for a measured run. This is used as a measure of the performance characteristics of an instance.
- Trigger
Afunction which can be defined to execute whenever a certain operation (
INSERT
,UPDATE
,DELETE
,TRUNCATE
) is applied to arelation. A trigger executes within the sametransaction as the statement which invoked it, and if the function fails, then the invoking statement also fails.For more information, seeCREATE TRIGGER.
- Tuple
A collection ofattributes in a fixed order. That order may be defined by thetable (or otherrelation) where the tuple is contained, in which case the tuple is often called arow. It may also be defined by the structure of a result set, in which case it is sometimes called arecord.
- Unique constraint
A type ofconstraint defined on arelation which restricts the values allowed in one or a combination of columns so that each value or combination of values can only appear once in the relation — that is, no other row in the relation contains values that are equal to those.
Becausenull values are not considered equal to each other, multiple rows with null values are allowed to exist without violating the unique constraint.
- Unlogged
The property of certainrelations that the changes to them are not reflected in theWAL. This disables replication and crash recovery for these relations.
The primary use of unlogged tables is for storing transient work data that must be shared across processes.
- Update
AnSQL command used to modifyrows that may already exist in a specifiedtable. It cannot create or remove rows.
For more information, seeUPDATE.
- User
Arole that has thelogin privilege (seeSection 21.2).
- User mapping
The translation of login credentials in the localdatabase to credentials in a remote data system defined by aforeign data wrapper.
For more information, seeCREATE USER MAPPING.
- UTC
Universal Coordinated Time, the primary global time reference, approximately the time prevailing at the zero meridian of longitude. Often but inaccurately referred to as GMT (Greenwich Mean Time).
- Vacuum
The process of removing outdatedtuple versions from tables or materialized views, and other closely related processing required byPostgreSQL's implementation ofMVCC. This can be initiated through the use of the
VACUUM
command, but can also be handled automatically viaautovacuum processes.For more information, seeSection 24.1 .
- View
Arelation that is defined by a
SELECT
statement, but has no storage of its own. Any time a query references a view, the definition of the view is substituted into the query as if the user had typed it as a subquery instead of the name of the view.For more information, seeCREATE VIEW.
- Visibility map (fork)
A storage structure that keeps metadata about each data page of a table's main fork. The visibility map entry for each page stores two bits: the first one (
all-visible
) indicates that all tuples in the page are visible to all transactions. The second one (all-frozen
) indicates that all tuples in the page are marked frozen.- WAL
SeeWrite-ahead log.
- WAL archiver (process)
Anauxiliary process which, if enabled, saves copies ofWAL files for the purpose of creating backups or keepingreplicas current.
For more information, seeSection 25.3.
- WAL file
Also known asWAL segment orWAL segment file. Each of the sequentially-numbered files that provide storage space forWAL. The files are all of the same predefined size and are written in sequential order, interspersing changes as they occur in multiple simultaneous sessions. If the system crashes, the files are read in order, and each of the changes is replayed to restore the system to the state it was in before the crash.
Each WAL file can be released after acheckpoint writes all the changes in it to the corresponding data files. Releasing the file can be done either by deleting it, or by changing its name so that it will be used in the future, which is calledrecycling.
For more information, seeSection 28.6.
- WAL record
A low-level description of an individual data change. It contains sufficient information for the data change to be re-executed (replayed) in case a system failure causes the change to be lost. WAL records use a non-printable binary format.
For more information, seeSection 28.6.
- WAL receiver (process)
Anauxiliary process that runs on areplica to receive WAL from theprimary server for replay by thestartup process.
For more information, seeSection 26.2.
- WAL segment
SeeWAL file.
- WAL sender (process)
A specialbackend process that streams WAL over a network. The receiving end can be aWAL receiver in areplica,pg_receivewal, or any other client program that speaks the replication protocol.
- WAL summarizer (process)
Anauxiliary process that summarizes WAL data forincremental backups.
For more information, seeSection 19.5.7.
- WAL writer (process)
Anauxiliary process that writesWAL records fromshared memory toWAL files.
For more information, seeSection 19.5.
- Window function (routine)
A type offunction used in aquery that applies to apartition of the query'sresult set; the function's result is based on values found inrows of the same partition or frame.
Allaggregate functions can be used as window functions, but window functions can also be used to, for example, give ranks to each of the rows in the partition. Also known asanalytic functions.
For more information, seeSection 3.5.
- Write-ahead log
The journal that keeps track of the changes in thedatabase cluster as user- and system-invoked operations take place. It comprises many individualWAL records written sequentially toWAL files.