PostgreSQL states the operation names in a switch case in its source code. Some descriptions are copied from pgMustard.
Operation | Category | Reference | Description |
---|---|---|---|
Aggregate | Folder | Link | Combines rows together to produce result(s). This can be a combination of GROUP BY, UNION, or SELECT DISTINCT clauses, and/or functions like COUNT, MAX, or SUM. |
Append | Combinator | Link | Combines rows together to produce result(s). Append nodes are currently used for unions, and to support inheritance queries, where several relations need to be scanned. |
Bitmap Heap Scan | Producer | Link | The Bitmap Heap Scan reads pages from a bitmap created by the other operations, filtering out any rows that don’t match the condition. |
Bitmap Index Scan | Producer | Link | using an index to create a bitmap of rows that may* fulfill (at least part of) the condition. |
BitmapAnd | Executor | Link | Doing an operation on the bitmap in memory. |
BitmapOr | Executor | Link | Doing or operation on the bitmap in memory. |
CTE Scan | Producer | Link | Scan the result of a common table expression |
Custom Scan | Producer | Link | Postgres allows extensions to add new custom scan types to extend the ways in which it can read data. |
Foreign Scan | Producer | Link | Reads data from a remote data source. |
Function Scan | Producer | Link | Take the results of a set-returning function, and return them as if they were rows read from a table. |
Gather | Executor | Link | Combines the output of child nodes, which are executed by parallel workers. |
Gather Merge | Executor | Link | Combines the output of child nodes, which are executed by parallel workers with order guarantee. |
Group | Folder | Link | Groups rows together for a GROUP BY operation. |
Hash | Executor | Link | Hashes the query rows for use by its parent operation, usually used to perform a JOIN. |
Hash Join | Join | Link | An implementation of join in which one of the collections of rows to be joined is hashed on the join keys using a separate ‘Hash’ node. |
Incremental Sort | Combinator | Link | Incremental sort is an optimized variant of multikey sort for cases when the input is already sorted by a prefix of the sort keys. |
Index Only Scan | Producer | Link | When all the information needed is contained in the index, an index-only scan can read all the data from it, without referring to the table. |
Index Scan | Producer | Link | Scans the index for rows that match a particular condition, then reads them from the table. |
Limit | Combinator | Link | Take some rows and discard the remaining ones, for example as part of a LIMIT or FETCH clause. |
LockRows | Executor | Link | Row locking for UPDATE or SHARING. |
Materialize | Executor | Link | Stores the result of the child operation in memory, to allow fast, repeated access to it by parent operations. |
Memoize | Executor | Link | Memoize nodes are intended to sit above parameterized nodes in the plan tree in order to cache results from them |
Merge Append | Combinator | Link | Combines the sorted results of the child operations, in a way that preserves their sort order. |
Merge Join | Join | Link | A joining algorithm if the two lists of rows to be joined are already sorted on their join keys. |
ModifyTable | Consumer | Link | Writes or deletes data in a table. |
Named Tuplestore Scan | Producer | Link | an operation that scans a temporary table, called a tuplestore, that is created in memory to store query results. |
Nested Loop | Join | Link | An implementation of join or lookup where the first child node is run once, then for every row it produces, its partner is looked up in the second node. |
ProjectSet | Executor | Link | Executes set-returning functions. |
Recursive Union | Combinator | Link | Take the union of all steps of a recursive function. Usually caused by a WITH RECURSIVE statement. |
Result | Producer | Link | Result nodes return a value without a scan (like a hardcoded value). |
Sample Scan | Producer | Link | Scans the table to obtain samples. |
Seq Scan | Producer | Link | A Sequential Scan (or Seq Scan) reads the rows from the table, in order. |
SetOp | Combinator | Link | A set operation like INTERSECT or EXCEPT. |
Sort | Combinator | Link | Sorts rows into an order, usually as a result of an ORDER BY clause. |
Subquery Scan | Producer | Link | Read the results of a subquery. |
Table Function Scan | Producer | Link | Take the results of a set-returning function, and return them as if they were rows read from a table with a range. |
Tid Range Scan | Producer | Link | A scan of a table by TupleID with a range. |
Tid Scan | Producer | Link | A scan of a table by TupleID (or ctid). https://www.postgresql.org/docs/current/ddl-system-columns.html |
Unique | Combinator | Link | Removes duplicates from a sorted result set. |
Values Scan | Producer | Link | Read in constants as part of a VALUES command. |
WindowAgg | Folder | Link | WindowAgg nodes represent window functions, which are caused by OVER statements. |
WorkTable Scan | Producer | Link | Read in intermediate stages in an operation, usually a recursive operation declared using WITH RECURSIVE. |