Internals: Planner/Optimizer
  • References/Database/PostgreSQL/Internals

The task of the planner/optimizer is to create an optimal execution plan. A given SQL query (and hence, a query tree) can be actually executed in a

2025-01-10 15:47:30
Internals//Index Access Method: Index Uniqueness Checks
  • References/Database/PostgreSQL/Internals/Index Access Method

PostgreSQL enforces SQL uniqueness constraints using unique indexes, which are indexes that disallow multiple entries

2025-01-10 15:47:30
Internals//SP-GiST Indexes: Built-in Operator Classes
  • References/Database/PostgreSQL/Internals/SP-GiST Indexes

The core PostgreSQL distribution includes the SP-GiST operator classes shown in Table 62-1.

2025-01-10 15:47:30
Internals//BRIN Indexes
  • References/Database/PostgreSQL/Internals/BRIN Indexes

BRIN stands for Block Range Index. BRIN is designed for handling very large tables in which certain columns

2025-01-10 15:47:30
Internals: Executor
  • References/Database/PostgreSQL/Internals

The executor takes the plan created by the planner/optimizer and recursively processes it to extract the required set of rows. This is essentially

2025-01-10 15:47:30
Internals//GiST Indexes: Examples
  • References/Database/PostgreSQL/Internals/GiST Indexes

The PostgreSQL source distribution includes several examples of index methods implemented using GiST. The

2025-01-10 15:47:30
Internals//Index Access Method: Index Locking Considerations
  • References/Database/PostgreSQL/Internals/Index Access Method

Index access methods must handle concurrent updates of the index by multiple processes. The core PostgreSQL system obtains

2025-01-10 15:47:30
Internals//Index Access Method: Index Scanning
  • References/Database/PostgreSQL/Internals/Index Access Method

In an index scan, the index access method is responsible for regurgitating the TIDs of all the tuples it has been told about that match the scan keys

2025-01-10 15:47:30
Internals: Row Estimation Examples
  • References/Database/PostgreSQL/Internals

The examples shown below use tables in the PostgreSQL regression test database. The outputs shown are taken from version 8.3. The behavior

2025-01-10 15:47:30
Internals//GiST Indexes: Extensibility
  • References/Database/PostgreSQL/Internals/GiST Indexes

Traditionally, implementing a new index access method meant a lot of difficult work. It was necessary to understand the inner workings of the database, such as the lock manager

2025-01-10 15:47:30