· 5 min · PostgreSQL

All Your GUCs in a Row: enable_material and enable_memoize

Materialize buffers rows unconditionally; Memoize caches them by key. Same goal, opposite mechanisms—and both deserve a closer look.

0 comments

· 5 min · PostgreSQL

All Your GUCs in a Row: enable_indexonlyscan

The third way to use an index, after the plain index scan and bitmap scan of enable_indexscan and enable_bitmapscan — and the one with the most-misunderstood ca

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: enable_incremental_sort

Incremental sort exploits presorted data to avoid expensive full sorts, but cost estimation errors on skewed data can backfire.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: enable_hashjoin

Diagnose spilling hash joins with `enable_hashjoin = off`.

0 comments

· 5 min · PostgreSQL

All Your GUCs in a Row: enable_hashagg

PostgreSQL 13 made hash aggregation memory-safe by allowing it to spill to disk — but that safety introduced a surprise regression for some queries on upgrade.

0 comments

· 3 min · PostgreSQL, Python, Tools

coddpiece: Watch Relational Algebra Become SQL

Learn relational algebra by building expressions that compile to real SQL.

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: enable_gathermerge

Disable `enable_gathermerge` to diagnose whether a slow parallel query's bottleneck is the leader-side merge step or something deeper—like worker memory…

0 comments

· 3 min · Python, Tools

checked: Constraints That Outlive the Constructor

Enforce constraints on every assignment, not just at construction.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: enable_distinct_reordering and enable_group_by_reordering

Reorder GROUP BY and DISTINCT keys to cut comparison costs and skip sorts—new optimizations in PostgreSQL 17 and 18 that usually stay invisible but…

0 comments

· 4 min · PostgreSQL, Python, Tools

cygnet: A small but fierce ORM

Cygnet is a PostgreSQL ORM for async Python that refuses to hide the SQL.

0 comments