| CREATE TABLE, ALTER TABLE, DROP TABLE, schema, sequence, generated column, identity column, IF NOT EXISTS |
[references/01-syntax-ddl.md](references/01-syntax-ddl.md) |
DDL syntax reference |
| SELECT, JOIN, LATERAL, subquery, UNION, INTERSECT, EXCEPT, DISTINCT ON, LIMIT, OFFSET, FETCH FIRST |
[references/02-syntax-dql.md](references/02-syntax-dql.md) |
Query (DQL) reference |
| INSERT, UPDATE, DELETE, RETURNING, ON CONFLICT, upsert, MERGE, DEFAULT VALUES |
[references/03-syntax-dml.md](references/03-syntax-dml.md) |
DML reference |
| WITH, CTE, recursive CTE, WITH RECURSIVE, MATERIALIZED, modifying CTE |
[references/04-ctes.md](references/04-ctes.md) |
Common Table Expressions |
| view, CREATE VIEW, updatable view, INSTEAD OF, securitybarrier, securityinvoker, materialized view, REFRESH MATERIALIZED VIEW CONCURRENTLY |
[references/05-views.md](references/05-views.md) |
Views and materialized views |
| CREATE FUNCTION, LANGUAGE, IMMUTABLE, STABLE, VOLATILE, PARALLEL SAFE, SECURITY DEFINER, RETURNS TABLE, polymorphic |
[references/06-functions.md](references/06-functions.md) |
Functions |
| CREATE PROCEDURE, CALL, transaction control in procedure, COMMIT in procedure |
[references/07-procedures.md](references/07-procedures.md) |
Procedures |
| PL/pgSQL, plpgsql, DECLARE, BEGIN, EXCEPTION, RAISE, FOR LOOP, cursor in plpgsql, GET STACKED DIAGNOSTICS |
[references/08-plpgsql.md](references/08-plpgsql.md) |
PL/pgSQL deep dive |
| plpython3u, plperl, plperlu, pltcl, plv8, procedural language, untrusted PL |
[references/09-procedural-languages.md](references/09-procedural-languages.md) |
Non-pgSQL procedural languages |
| EXECUTE, dynamic SQL, format(), quoteident, quoteliteral, SQL injection in plpgsql |
[references/10-dynamic-sql.md](references/10-dynamic-sql.md) |
Dynamic SQL |
| OVER, PARTITION BY, window function, ROWS BETWEEN, RANGE BETWEEN, GROUPS, LAG, LEAD, FIRSTVALUE, LASTVALUE, NTHVALUE, RANK, DENSERANK, ROW_NUMBER, NTILE |
[references/11-window-functions.md](references/11-window-functions.md) |
Window functions |
| aggregate, FILTER, GROUPING SETS, ROLLUP, CUBE, percentilecont, percentiledisc, ordered-set aggregate, CREATE AGGREGATE |
[references/12-aggregates-grouping.md](references/12-aggregates-grouping.md) |
Aggregates & grouping |
| DECLARE CURSOR, FETCH, MOVE, WITH HOLD, scrollable cursor, refcursor, PREPARE, EXECUTE, DEALLOCATE, plancachemode |
[references/13-cursors-and-prepares.md](references/13-cursors-and-prepares.md) |
Cursors & prepared statements |
| text, varchar, char, numeric, decimal, real, double precision, integer, boolean, bytea, inet, cidr, macaddr, bit, varbit |
[references/14-data-types-builtin.md](references/14-data-types-builtin.md) |
Built-in types |
| CREATE TYPE, composite type, CREATE DOMAIN, ENUM, ALTER TYPE ADD VALUE, range type, multirange |
[references/15-data-types-custom.md](references/15-data-types-custom.md) |
Custom types (composite/domain/enum/range) |
| array, ARRAY[], unnest, arrayagg, arrayposition, ANY, ALL, GIN on array |
[references/16-arrays.md](references/16-arrays.md) |
Arrays |
| JSON, JSONB, ->, ->>, #>, #>>, @>, jsonbset, jsonbinsert, jsonbpathquery, jsonpath, JSONTABLE, jsonbops, jsonbpathops |
[references/17-json-jsonb.md](references/17-json-jsonb.md) |
JSON / JSONB |
| uuid, genrandomuuid, uuidv7, uuid-ossp, NUMERIC precision, money, serial, bigserial, IDENTITY column |
[references/18-uuid-numeric-money.md](references/18-uuid-numeric-money.md) |
UUID, numeric, money, identity |
| timestamp, timestamptz, AT TIME ZONE, interval, datetrunc, datepart, timezone, DST, infinity timestamp |
[references/19-timestamp-timezones.md](references/19-timestamp-timezones.md) |
Timestamps & time zones |
| tsvector, tsquery, totsvector, totsquery, plaintotsquery, phrasetotsquery, websearchtotsquery, tsrank, tsheadline, FTS, full-text search |
[references/20-text-search.md](references/20-text-search.md) |
Full-text search |
| hstore |
[references/21-hstore.md](references/21-hstore.md) |
hstore extension |
| index decision, choose index type, multicolumn index, partial index, expression index, INCLUDE |
[references/22-indexes-overview.md](references/22-indexes-overview.md) |
Index decision matrix |
| B-tree, btree, deduplication, bottom-up index deletion, fillfactor, INCLUDE columns, covering index |
[references/23-btree-indexes.md](references/23-btree-indexes.md) |
B-tree indexes |
| GIN, GiST, KNN-GiST, jsonbops, jsonbpathops, EXCLUDE USING gist, fastupdate, ginpendinglistlimit |
[references/24-gin-gist-indexes.md](references/24-gin-gist-indexes.md) |
GIN & GiST indexes |
| BRIN, minmax_multi, bloom index, hash index, SP-GiST |
[references/25-brin-hash-spgist-bloom-indexes.md](references/25-brin-hash-spgist-bloom-indexes.md) |
BRIN, hash, SP-GiST, bloom |
| CREATE INDEX CONCURRENTLY, REINDEX CONCURRENTLY, INVALID index, pgrepack, pgsqueeze, index bloat |
[references/26-index-maintenance.md](references/26-index-maintenance.md) |
Index maintenance |
| MVCC, xmin, xmax, cmin, cmax, infomask, tuple visibility, snapshot, xip, MultiXact |
[references/27-mvcc-internals.md](references/27-mvcc-internals.md) |
MVCC internals |
| VACUUM, autovacuum, VACUUM FULL, VACUUM FREEZE, autovacuumvacuumscalefactor, pgstatprogressvacuum, visibility map, parallel vacuum |
[references/28-vacuum-autovacuum.md](references/28-vacuum-autovacuum.md) |
VACUUM & autovacuum |
| transaction id wraparound, XID wraparound, datfrozenxid, autovacuumfreezemax_age, MultiXact wraparound, 64-bit XID |
[references/29-transaction-id-wraparound.md](references/29-transaction-id-wraparound.md) |
TXID wraparound |
| HOT update, heap-only tuple, ntuphot_upd, HOT chain |
[references/30-hot-updates.md](references/30-hot-updates.md) |
HOT updates |
| TOAST, oversized attribute, storage strategy, PLAIN, EXTENDED, EXTERNAL, MAIN, pglz, lz4 compression |
[references/31-toast.md](references/31-toast.md) |
TOAST |
| sharedbuffers, buffer manager, clock sweep, bgwriter, pgbuffercache, ring buffer |
[references/32-buffer-manager.md](references/32-buffer-manager.md) |
Buffer manager |
| WAL, wallevel, fullpagewrites, archivecommand, archivelibrary, walcompression, walsegmentsize, pg_waldump |
[references/33-wal.md](references/33-wal.md) |
Write-Ahead Log |
| checkpoint, checkpointer, checkpointtimeout, maxwalsize, checkpointcompletiontarget, bgwriterlrumaxpages, pgstat_checkpointer |
[references/34-checkpoints-bgwriter.md](references/34-checkpoints-bgwriter.md) |
Checkpoints & bgwriter |
| partition, RANGE partition, LIST partition, HASH partition, partition pruning, ATTACH PARTITION, DETACH PARTITION, DEFAULT partition, partition-wise join |
[references/35-partitioning.md](references/35-partitioning.md) |
Declarative partitioning |
| inheritance, INHERITS, ONLY clause |
[references/36-inheritance.md](references/36-inheritance.md) |
Table inheritance |
| CHECK constraint, NOT NULL, UNIQUE, UNIQUE NULLS NOT DISTINCT, EXCLUDE constraint, NOT VALID, VALIDATE CONSTRAINT, deferrable |
[references/37-constraints.md](references/37-constraints.md) |
Constraints |
| foreign key, FOREIGN KEY, REFERENCES, ON DELETE CASCADE, ON DELETE SET NULL, deferrable FK, partitioned FK, circular FK |
[references/38-foreign-keys-deep.md](references/38-foreign-keys-deep.md) |
Foreign keys |
| CREATE TRIGGER, BEFORE trigger, AFTER trigger, INSTEAD OF, FOR EACH ROW, FOR EACH STATEMENT, NEW, OLD, transition table, REFERENCING NEW TABLE |
[references/39-triggers.md](references/39-triggers.md) |
Triggers |
| event trigger, CREATE EVENT TRIGGER, ddlcommandstart, ddlcommandend, sqldrop, tablerewrite, pgeventtriggerddlcommands |
[references/40-event-triggers.md](references/40-event-triggers.md) |
Event triggers |
| BEGIN, COMMIT, ROLLBACK, SAVEPOINT, subtransaction, PREPARE TRANSACTION, 2PC, idleintransactionsessiontimeout, autocommit |
[references/41-transactions.md](references/41-transactions.md) |
Transactions |
| Read Committed, Repeatable Read, Serializable, SSI, snapshot isolation, defaulttransactionisolation, serialization failure, retry pattern |
[references/42-isolation-levels.md](references/42-isolation-levels.md) |
Isolation levels |
| lock, FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE, FOR KEY SHARE, NOWAIT, SKIP LOCKED, AccessExclusiveLock, RowExclusiveLock, pglocks, pgblocking_pids, deadlock |
[references/43-locking.md](references/43-locking.md) |
Locking |
| advisory lock, pgadvisorylock, pgadvisoryxactlock, pgtryadvisorylock |
[references/44-advisory-locks.md](references/44-advisory-locks.md) |
Advisory locks |
| LISTEN, NOTIFY, UNLISTEN, pg_notify, notification queue |
[references/45-listen-notify.md](references/45-listen-notify.md) |
LISTEN/NOTIFY |
| CREATE ROLE, GRANT, REVOKE, ALTER DEFAULT PRIVILEGES, pgreadalldata, pgmonitor, SET ROLE, REASSIGN OWNED, INHERIT, NOINHERIT, BYPASSRLS |
[references/46-roles-privileges.md](references/46-roles-privileges.md) |
Roles & privileges |
| row-level security, RLS, CREATE POLICY, USING, WITH CHECK, FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY |
[references/47-row-level-security.md](references/47-row-level-security.md) |
Row-Level Security |
| pg_hba.conf, authentication method, scram-sha-256, md5, peer, trust, ident, ldap, gss, cert auth |
[references/48-authentication-pg-hba.md](references/48-authentication-pg-hba.md) |
pg_hba.conf & auth |
| SSL, TLS, sslmode, verify-full, channel binding, server cert, client certificate, ssl_ciphers |
[references/49-tls-ssl.md](references/49-tls-ssl.md) |
TLS/SSL |
| pgcrypto, encrypt, decrypt, pgpsymencrypt, digest, crypt, gen_salt, TDE |
[references/50-encryption-pgcrypto.md](references/50-encryption-pgcrypto.md) |
pgcrypto |
| pgaudit, audit log, session auditing, object auditing, compliance logging |
[references/51-pgaudit.md](references/51-pgaudit.md) |
pgaudit |
| CREATE RULE, rule system, ON SELECT DO INSTEAD |
[references/52-rules-system.md](references/52-rules-system.md) |
Rule system |
| postgresql.conf, postgresql.auto.conf, GUC, pgsettings, ALTER SYSTEM, reload, pgreload_conf, parameter context |
[references/53-server-configuration.md](references/53-server-configuration.md) |
Configuration |
| sharedbuffers, effectivecachesize, workmem, hashmemmultiplier, maintenanceworkmem, autovacuumworkmem, tempbuffers, walbuffers, huge_pages |
[references/54-memory-tuning.md](references/54-memory-tuning.md) |
Memory tuning |
| ANALYZE, pgstatistic, pgstats, defaultstatisticstarget, extended statistics, CREATE STATISTICS, ndistinct, dependencies, MCV |
[references/55-statistics-planner.md](references/55-statistics-planner.md) |
Statistics & planner input |
| EXPLAIN, EXPLAIN ANALYZE, EXPLAIN (BUFFERS), Seq Scan, Index Scan, Index Only Scan, Bitmap Heap Scan, Nested Loop, Hash Join, Merge Join, Memoize, Gather, Append, row estimate, plan node |
[references/56-explain.md](references/56-explain.md) |
EXPLAIN deep dive |
| pgstatstatements, query stats, top queries, calls, meanexectime, sharedblkshit |
[references/57-pg-stat-statements.md](references/57-pg-stat-statements.md) |
pgstatstatements |
| pgstatactivity, waitevent, pgstatusertables, pgstatuserindexes, pgstatdatabase, pgstatio, pgstatwal, pgstatprogress*, performance diagnostics |
[references/58-performance-diagnostics.md](references/58-performance-diagnostics.md) |
pgstat* diagnostics |
| randompagecost, seqpagecost, cputuplecost, effectiveioconcurrency, enableseqscan, enablehashjoin, joincollapselimit, geqo, planner tuning |
[references/59-planner-tuning.md](references/59-planner-tuning.md) |
Planner tuning |
| parallel query, maxparallelworkers, maxparallelworkerspergather, maxparallelmaintenanceworkers, parallel append, parallel hash join, forceparallel_mode |
[references/60-parallel-query.md](references/60-parallel-query.md) |
Parallel query |
| JIT, jitabovecost, jitinlineabove_cost, LLVM, just-in-time compilation |
[references/61-jit-compilation.md](references/61-jit-compilation.md) |
JIT compilation |
| tablespace, CREATE TABLESPACE, defaulttablespace, temptablespaces, SET TABLESPACE |
[references/62-tablespaces.md](references/62-tablespaces.md) |
Tablespaces |
| postmaster, backend process, autovacuum launcher, walwriter, walsender, walreceiver, archiver, bgwriter, checkpointer, logical replication worker, shared memory architecture, fork per connection |
[references/63-internals-architecture.md](references/63-internals-architecture.md) |
Process & memory architecture |
| pgcatalog, pgclass, pgattribute, pgindex, pgnamespace, pgconstraint, pgproc, pgtype, pgdepend, pginherits, pgpartitionedtable, pgpublication, pgsubscription, pgextension, pgauthid, pgroles, pgdatabase, pgtablespace, pgsettings, relkind, informationschema, ECHOHIDDEN, catalog exploration |
[references/64-system-catalogs.md](references/64-system-catalogs.md) |
System catalogs & exploration recipes |
| collation, ICU, libc, deterministic collation, nondeterministic collation, case-insensitive UNIQUE, collation version, encoding, UTF-8, client_encoding |
[references/65-collations-encoding.md](references/65-collations-encoding.md) |
Collations & encoding |
| COPY, \\copy, bulk load, CSV import, HEADER, DELIMITER, FREEZE, ONERROR, LOGVERBOSITY, parallel COPY |
[references/66-bulk-operations-copy.md](references/66-bulk-operations-copy.md) |
COPY / bulk |
| psql, \\d, \\dt, \\di, \\df, \\dn, \\dx, \\timing, \\watch, \\gexec, pg_isready, createdb, dropdb, vacuumdb, reindexdb, clusterdb |
[references/67-cli-tools.md](references/67-cli-tools.md) |
CLI tools |
| pgbench, benchmark, TPC-B, -c clients, -j threads, scaling factor, custom pgbench script |
[references/68-pgbench.md](references/68-pgbench.md) |
pgbench |
| CREATE EXTENSION, ALTER EXTENSION UPDATE, pg_extension, trusted extension, contrib |
[references/69-extensions.md](references/69-extensions.md) |
Extensions overview |
| FDW, foreign data wrapper, CREATE FOREIGN TABLE, postgresfdw, filefdw, IMPORT FOREIGN SCHEMA, dblink, pushdown |
[references/70-fdw.md](references/70-fdw.md) |
FDW |
| large object, locreate, loopen, loread, loexport, loimport, pglargeobject, vacuumlo, bytea vs LO |
[references/71-large-objects.md](references/71-large-objects.md) |
Large objects |
| extension development, PGXS, PGMODULEMAGIC, PGFUNCTIONINFO_V1, .control, hooks, C extension |
[references/72-extension-development.md](references/72-extension-development.md) |
Extension development |
| streaming replication, primaryconninfo, primaryslotname, standby.signal, recovery.signal, synchronousstandbynames, synchronouscommit, cascading replication, hotstandbyfeedback |
[references/73-streaming-replication.md](references/73-streaming-replication.md) |
Streaming replication |
| logical replication, CREATE PUBLICATION, CREATE SUBSCRIPTION, FOR ALL TABLES, FOR TABLES IN SCHEMA, row filter, column list, replication origin, DDL replication, two-phase decoding |
[references/74-logical-replication.md](references/74-logical-replication.md) |
Logical replication |
| replication slot, pgcreatephysicalreplicationslot, pgcreatelogicalreplicationslot, maxslotwalkeepsize, maxreplicationslots, maxwalsenders, pgreplicationslots, slot invalidation |
[references/75-replication-slots.md](references/75-replication-slots.md) |
Replication slots |
| logical decoding, pgoutput, wal2json, decoderbufs, testdecoding, CDC, REPLICA IDENTITY, STARTREPLICATION SLOT LOGICAL |
[references/76-logical-decoding.md](references/76-logical-decoding.md) |
Logical decoding |
| standby, hot standby, maxstandbystreamingdelay, hotstandbyfeedback, pgpromote, pg_rewind, timeline ID, failover, switchover |
[references/77-standby-failover.md](references/77-standby-failover.md) |
Standby & failover |
| HA, high availability, Patroni, repmgr, pgautofailover, Stolon, cluster manager, fencing, split brain, witness |
[references/78-ha-architectures.md](references/78-ha-architectures.md) |
HA architectures |
| Patroni, patroni.yml, DCS, etcd, consul, zookeeper, REST API, /failover, /switchover, watchdog |
[references/79-patroni.md](references/79-patroni.md) |
Patroni |
| connection pool, pool sizing, transaction pool, session pool, statement pool, process-per-connection |
[references/80-connection-pooling.md](references/80-connection-pooling.md) |
Connection pooling concepts |
| pgBouncer, poolmode, defaultpoolsize, reservepoolsize, serveridle_timeout, prepared statement pgbouncer, SHOW POOLS, SHOW STATS |
[references/81-pgbouncer.md](references/81-pgbouncer.md) |
pgBouncer |
| monitoring, postgresexporter, prometheus, pgstat_*, alerting thresholds, log-based metrics |
[references/82-monitoring.md](references/82-monitoring.md) |
Monitoring |
| pgdump, pgdumpall, pg_restore, custom format, directory format, parallel dump, --filter, --on-conflict-do-nothing |
[references/83-backup-pg-dump.md](references/83-backup-pg-dump.md) |
Logical backup |
| pgbasebackup, base backup, archivecommand, restorecommand, recoverytargettime, recoverytarget_xid, PITR, point-in-time recovery, continuous archiving |
[references/84-backup-physical-pitr.md](references/84-backup-physical-pitr.md) |
Physical backup & PITR |
| pgBackRest, Barman, WAL-G, incremental backup, retention policy, S3 backup |
[references/85-backup-tools.md](references/85-backup-tools.md) |
Backup tooling |
| pg_upgrade, --link, --clone, major upgrade, statistics preservation, preflight check |
[references/86-pg-upgrade.md](references/86-pg-upgrade.md) |
pg_upgrade |
| major version upgrade, blue-green upgrade, logical replication upgrade, near-zero downtime, catalog version |
[references/87-major-version-upgrade.md](references/87-major-version-upgrade.md) |
Major-version upgrade strategy |
| corruption, datachecksums, pgamcheck, pgchecksums, pgresetwal, single-user mode, zerodamagedpages |
[references/88-corruption-recovery.md](references/88-corruption-recovery.md) |
Corruption recovery |
| pgrewind, divergent timeline, wallog_hints, --source-server, --source-pgdata |
[references/89-pg-rewind.md](references/89-pg-rewind.md) |
pg_rewind |
| disaster recovery, RPO, RTO, DR drill, runbook, failover bookkeeping |
[references/90-disaster-recovery.md](references/90-disaster-recovery.md) |
Disaster recovery |
| docker postgres, docker-entrypoint-initdb.d, POSTGRES_PASSWORD, healthcheck postgres container, volume PGDATA |
[references/91-docker-postgres.md](references/91-docker-postgres.md) |
Docker postgres image |
| Kubernetes postgres, CloudNativePG, CNPG, postgres-operator, Zalando, Crunchy PGO, StatefulSet |
[references/92-kubernetes-operators.md](references/92-kubernetes-operators.md) |
K8s operators |
| pgtrgm, trigram, similarity, % operator, GIN trigram, LIKE acceleration, wordsimilarity |
[references/93-pg-trgm.md](references/93-pg-trgm.md) |
pg_trgm |
| pgvector, vector, embedding, HNSW, IVFFLAT, <->, <=>, <#>, halfvec, sparsevec, m, efconstruction, efsearch, lists, probes, ANN |
[references/94-pgvector.md](references/94-pgvector.md) |
pgvector |
| PostGIS, geometry, geography, SRID, STTransform, STDWithin, STIntersects, STBuffer, spatial index |
[references/95-postgis.md](references/95-postgis.md) |
PostGIS |
| TimescaleDB, hypertable, continuous aggregate, compression, retention policy, chunk |
[references/96-timescaledb.md](references/96-timescaledb.md) |
TimescaleDB |
| Citus, distributed table, reference table, coordinator, worker, shard, colocated join, columnar storage |
[references/97-citus.md](references/97-citus.md) |
Citus |
| pgcron, cron.schedule, cron.job, cron.jobrun_details, scheduled VACUUM, scheduled REFRESH MATERIALIZED VIEW |
[references/98-pg-cron.md](references/98-pg-cron.md) |
pg_cron |
| pgpartman, partman.createparent, runmaintenanceproc, partition retention, partman.part_config, sub-partition |
[references/99-pg-partman.md](references/99-pg-partman.md) |
pg_partman |
| PG14, PG15, PG16, PG17, PG18, release notes, version features, support policy |
[references/100-pg-versions-features.md](references/100-pg-versions-features.md) |
Per-major-version feature highlights |
| managed Postgres, managed PaaS, hosted Postgres, bare-metal, self-hosted, superuser restriction, extension allowlist, sharedpreloadlibraries restriction, vendor lock-in |
[references/101-managed-vs-baremetal.md](references/101-managed-vs-baremetal.md) |
Managed vs bare-metal trade-offs (provider-agnostic) |
| recipe, cookbook, bloat triage, slow-query investigation, deadlock investigation, replication lag investigation, PITR walkthrough, upgrade playbook, catalog exploration |
[references/102-skill-cookbook.md](references/102-skill-cookbook.md) |
Multi-file recipes & catalog exploration |