Skip to content

Instantly share code, notes, and snippets.

@SahAssar
Forked from mjf/Postgres.md
Created March 26, 2024 15:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SahAssar/144313e1aae0c26cc1d10deb12c0daf8 to your computer and use it in GitHub Desktop.
Save SahAssar/144313e1aae0c26cc1d10deb12c0daf8 to your computer and use it in GitHub Desktop.
Postgres

⚠️ WARNING
The ordering of listed projects or documents is random and has no connection to relevance or maturity levels!

Postgres

Extensions

Extension Description
pgaudit Postgres auditing extension
pg_auto_failover Postgres extension for failover without distributed consensus (by Citus Data)
pgextwlist Postgres extension whitelist allows superuser actions with non-superuser
pg_hibernator Save/restore buffers across Postgres restarts (unique feature!)
pglogical logical replication for Postgres
pg_plan_advsr Postgres plan automatical advisor
pgq Postgres Queue
pgroonga Full-text search engine for Postgres
pg_show_plans shows query plans in Postgres (by CyberTec)
pg_store_plan store query plans in Postgres (by OSSC-DB)
pg_statement_rollback Postgres extension for rollback to "as if a transaction never occured" (by LZLabs)
pg_stats collect Postgres statistics
pg_stat_statements collect Postgres statistics on statements
pg_timetable cron for Postgres and more (by CyberTec)
pgmodemx monitoring extension for Postgres
pgspider multi-tenancy (by Toshiba techs)
pgdd Postgres Data Dictionary (by Rust-proof Labs)
pg_wait_sampling Statistics based on waits (by PostgresPro)
pg_similarity Computes "distances" between strings (i.e. Levenstein)
pg_proctab Provides functions to read basic stats from /proc
login_hook Login hook (what else?)
pgulid ULID support (requires pgcrypto extension)
pg_ivm Incremental View Maintenance (auto-refresh materialized views)
unit Units of Measure for Postgres (similar to unit(1))
preprepare Seamlessly handle prepared statements for PgBouncer
pg_ivm Postgres incremental view (IVM) maintenance extension
sequential_uuids Sequential (time-based) UUIDs for Postgres (by Tomáš Vondra)
plpgsql_check Extension to avoid issues with PL/PgSQL (by Pavel Stěhule)
postgres-decoderbufs Postgres to Protobuf (by Debezium)
anon Anonymize, anonymize, anonymize... (by Dalibo Labs)
pg_spider_ext Distributed queries (by Toshiba)
pg_idkit Generate many types of UUID replacements...
pg_eventserv LISTEN/NOTIFY via WebSockets (by CrunchyData)
pgsql-tweaks Miscellaneous useful functions/views for Postgres
set_user Role transitions
pg_rowalesce Coalesce for rows
pg_subtrans_infos Provide information about sub-transactions (!)
pgvector Vector similarity search for Postgres
pg_quack DuckDB extension for Postgres
acl Access Control Lists (ACL) Extension
PgMemento Audit trail with schema versioning for Postgre using txn-based logging
MobilityDB An open source geospatial trajectory data management & analysis platform
E-maj Fine-grained write logging and time travel on subsets of the database
PgMQ Message queue in Postgres
Extension Description
hydra Columnar store
citus Transforms Postgres into a distributed database (by CitusData)
timescaledb Transforms Postgres into a time-series database (by Timescale)
orioledb storage engine, MVCC based on UNDO log, 64bit XIDs
aqo Automatic Query Optimizer for Postgres (by PortgresPro)
multicorn Foreign Data Wrappers (FDW)
age Apache Age Graph Database
omnigres Postgres as a Platform (!)
ferretdb Postgres serves as platform for document store database
pgroll Postgres schema migrations

API, REST, RESTful, WebSockets, etc.

API Description
RapidRows Provides Postgres HTTP REST API
pg_eventserv LISTEN/NOTIFY via WebSockets (by CrunchyData), client included
PostGraphile Extensible high-performance automatic GraphQL API for PostgresSQL

Utilities

Tool Description
PgXN PostgreSQL Extension Network
PgBouncer Postgres proxy and connection pooler
PgCat Posgres connection pooler with some unique features
PgPool-II connection pooler and loadbalancer for Postgres
Odyssey another excellent connection pooler by Yandex
PgAgroal yet another connection pooler (single-host only but performant)
pg_basebackup Postgres backup ("native")
PgBackrest Postgres backup (advanced)
PgBackrest Auto PgBackrest backup validation etc.
pgloader ingest data from miscellaneous foreign sources into Postgres
PgBarman Postgres backup/restore (supports PiTR/DR)
PgMoneta Postgres backup/restore
PgRepack repack (optimize) Postgres tables (like non-locking VACUUM or CLUSTER)
PgCompactTable tool for reducing size of bloated tables and indexes without heavy locks
PgActivity htop(1)-like utility for Postgres (by Dalibo)
PgMetrics show statistic on Postgres databases (can be run from Docker too)
PgTune Postgres performance tuning
RepMgr Postgres replication manager (Slony I/logical replication)
Patroni Postgres replication manager (streaming replication) by Zalando
PgWatch2 gather Postgres metrices (by CyberTec)
PgShark analyze Postgres protocol v2 and v3
PgMock observe Postgres wire protocol traffic
pg_catcheck check Postgres catalogue for inconsistencies or errors by EnterpriseDB
PgDiff get difference between database schemas
pg_flame generate Brendan Gregg's flame graphs for EXPLAINs
pg_repack Get rid of table and index bloat without exclusive locking and online (alternative to cluster or vacuum full)
SQLFluff SQL linter (Postgres' SQL too, of course)
PgSpider High-performance Postgres clustering engine
PL/PgSQL Debugger Debugger for PL/PgSQL by OmniDB
PostgresML Machine Learning? for Postgres
FlameExplain Flame graphs for Postgres explain ...
PgBranch Branch Postgres as if using git(1)
PgSync Sync data from one Postgres database to another
SQLancer Find logic bugs
uSQL Multi-SQL shell

Backup/restore/copy/replication etc. tools

Tool Description
PgBackrest Backup (preferred)
pg_rman Backup
pgcopydb Backup
PgPreFaulter Streaming replication helper (!)
BackMan Cloud-native backup tool for misc. databases (including Postgres)
pg_easy_replicate Setup logical replication
Greenmask Postgres data obsfucation

Miscellaneous tools

Tool Description
Debezium Stream your data from Postgres (eg. using Protocol Buffers etc.)
PgTyped Typesafe SQL in TypeScript
Mathesar Quickly enter and analyze your data (F/OSS)
Wireshark Postgres dissector for Wireshark/Tshark

Application building tools

Tool Description
Evidence Build data application using Postgres
Omnigres Make application using Postgres
SQLPage Build websites using Postgres
AppSmith Build internal website using (not only) Postgres

APIs

API Description
PostgREST Postgres REST API

Programming

Name Language Description
Cornucopia Rust Generate type-checked Rust from your PostgreSQL

K8s Operators

Operator Description
CloudNativePG Open source K8s Postgres operator
Postgres Operator Postgres operator (by Zalando)
Postgres Operator Postgres operator (by Crunchy Data)
Postgres Operator Postgres operator (by Percona; based on operator by Crunchy Data)
Kubegres Kubernetes Postgres operator (by Reactive Tech)
StackGres Kubernetes Postgres operator (by OnGres)
Posgres Operators at Operator Hub all of them

DBA Toolkits

Toolkit Description
Toolkit #1 Postgres DBA toolkit for psql(1) (well-done)
Toolkit #2 Postgres DBA toolkit for psql(1) (with menu - needs some rework)
Toolkit #3 Postgres DBA tools (including shell scripts)
Bloat Estimation helps to understand where's the bloat
DBA Scripts collection of SQL "scripts" for DBAs
Checks primarily Nagios check by Bucardo

Development

Tool Description
PgX Write Postgres extensions (more) easily in Rust
GDBPG Make GDB debugging of Postgres easier (by Tomas Vondra)
PgType Implements Postgres types for Golang

Testing

Tool Description
PgVM Postgres version manager
PgEnv Postgres binary manager

Postgres-based tools etc.

Tool Description
Neon Separates Postgres from it's storage

Knowledge Bases and Online Tools

Knowledge Base Description
pgPedia Postgres wiki collecting extremely useful information
pgStats nice overview of Postgres statistics for every release version
pgXn source of Postgres extensions
pgConfigurator Postgres configuration tuning helper (by CyberTec)
PostgreSQLCo.nf Postgres configuration reference including external links to discussions and more
PgConfig Postgres configuration options diff

Books and more

Book Online Free Description
PostgreSQL Internals yes yes a must to read book on Postgres internals (may be a bit outdated but still very relevant)
Postgres 14 Internals yes yes a must to read book on Postgres (by PostgresPro)
Postgres - The First Experience yes yes Postgres introduction (by PostgresPro)
Postgres Hooks yes yes Postgres' hooks description

Blogs

Blog Commercial Description
Planet PostgreSQL no aggregates blog posts on Postgres
Cybertec PostgreSQL yes excellent blog on Postgres
2ndQuadrant yes blog posts on Postgres
PostgresPro yes blog posts on Postgres
PostgresPro yes the same as the previous (?)
Stefan Fercot's Blog no very good blog posts on pgBackRest
Command Prompt yes blog posts on Postgres
PostgreSQL Live no blog on Postgres community members
Hubert "depesz" Lubaczewski no many excellent articles on Postgres
DBI Services yes blog posts on Postgres
Keith Fiske no blog posts on Postgres
Adrien Nayrat no blog posts on Postgres
Julien Rouhaud no blog posts on Postgres
Marcus Hagander no blog posts on Postgres
Michał Mackiewicz no the "Elephant Tamer"'s blog posts
Bo Peng no author of PgPool-II
RustProofLabs yes Rust extensions to Postgres et al.

Postgres Conferences

Country/State Type Remark
Swiss PgDay
Russian PgConf

SQL for Fun (or Profit)

Miscellaneous

Resource Media Commercial Description
PostgreSQL TV Video no Postgres video channels (including companies etc.)

Unrelated

Resource Description
Anchor Modeling Online tool can generate Postgres model SQL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment