When a database sees a query, it translates it into a logical plan. This plan is a Directed Acyclic Graph of these operations described below.
When you ask Postgres to *EXPLAIN* a query, you can use this to better understand each query
# Table Operations
## ![[SeqScan]]
## ![[TableFuncScan]]
# Index Operations
## ![[BitmapAndBitmapOr]]
## ![[BitmapIndexScan]]
## ![[IndexOnlyScan]]
## ![[IndexScan]]
# Page Operations
## ![[BitmapHeapScan]]
# Result Set Operations
## ![[Aggregate]]
## ![[Append]]
## ![[GatherMerge]]
## ![[Hash]]
## ![[HashJoin]]
## ![[Limit]]
## ![[Materialize]]
## ![[MergeAppend]]
## ![[MergeJoin]]
## ![[NestedLoop]]
## ![[ProjectSet]]
## ![[RecursiveUnion]]
## ![[SetOp]]
## ![[Sort]]
## ![[Unique]]
# Concurrent/Distributed Result Set Operations
## ![[Broadcast]]
## ![[Redistribute]]
## ![[Gather]]
# Tuple Operations
## ![[LockRows]]
## ![[ModifyTable]]
## ![[Result]]
## ![[SampleScan]]
## ![[TidScan]]
# Other Result Set Operations
## ![[CTEScan]]
## ![[CustomScanForeignScan]]
## ![[FunctionScan]]
## ![[SubqueryScan]]
## ![[ValuesScan]]