· 4 min · PostgreSQL

All Your GUCs in a Row: default_transaction_isolation and default_transaction_read_only

PostgreSQL's isolation levels hold surprises: read uncommitted silently becomes read committed, repeatable read forbids phantom reads the standard permits, and…

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: default_transaction_deferrable

PostgreSQL's `DEFERRABLE` transaction mode only works with `SERIALIZABLE READ ONLY` transactions, where it waits for a safe snapshot to eliminate…

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: default_toast_compression

PostgreSQL 19 switches TOAST compression from pglz to lz4 by default—faster, more efficient, and finally the right call.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: default_text_search_config

PostgreSQL forbids indexing with the default text search configuration because it's mutable—change the setting, and your index silently disagrees with reality.

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: default_tablespace

Default_tablespace quietly routes tables and indexes to alternate storage — but three quirks can surprise you, and tablespaces themselves are mostly…

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: default_table_access_method

PostgreSQL's table access method interface lets you plug in alternative storage engines.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: default_statistics_target

Raise `default_statistics_target` from 100 to 500 and ANALYZE slows down forever — but sometimes that's the right call.

0 comments

· 13 min · PostgreSQL

How the Other Half Plans

Query planning is a two-job problem: rewrite your SQL into a better shape, then search billions of possible join orders for the cheapest one.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: the debug_* family

PostgreSQL's dozen `debug_` parameters are its own testing machinery, exposed as runtime settings.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: deadlock_timeout

PostgreSQL's `deadlock_timeout` controls how often deadlocks are searched for, not how long a deadlock will be tolerated.

0 comments