Skip to content
Opensource internals
  • Posts

Postgres

How PostgreSQL Stores a Row

Oct 20, 2026 25 min read Jay Hubbert

Every database gives you a row and every database lies a little about what that row is. MySQL gives you a record copied into a row buffer. SQLite gives you a record in a b-tree …

PostgresStorageInternals

Read more →

How PostgreSQL Implements time and timetz in C

Oct 12, 2026 7 min read Jay Hubbert

A PostgreSQL time is a 64-bit integer counting microseconds since midnight. A timetz is the same integer plus a 4-byte timezone offset. So far so simple. The interesting part is …

PostgresInternalsTimeTimetz

Read more →

How PostgreSQL Speeds Up Hash Joins

Oct 11, 2026 31 min read Jay Hubbert

A hash join is the simplest join algorithm in the database: build a hash table from the inner relation, then probe it once per outer row. There is no sort, no merge, no nested loop …

PostgresPerformanceExecutorInternals

Read more →

How PostgreSQL Implements numeric in C

Oct 8, 2026 10 min read Jay Hubbert

numeric is PostgreSQL’s exact decimal type: arbitrary precision, no rounding surprises, no binary-vs-decimal conversion error. It is also the type where the storage format and the …

PostgresInternalsNumericDecimal

Read more →

How PostgreSQL Waits for Locks

Oct 6, 2026 49 min read Jay Hubbert

Every lock in PostgreSQL is a bet. When a backend wants a resource that somebody else has, it has to choose: burn CPU waiting, or go to sleep and let the kernel schedule somebody …

PostgresPerformanceConcurrencyInternals

Read more →

← Newer Page 1 of 7 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·