The trouble with extensions
summary
Extensions add features like PG DocumentDB, PG Parquet, Citus and pg_cron but introduce real hazards: binary vs extension version mismatches cause segmentation faults, hook chains and load-ordering break when multiple extensions interact (paper finds ~16% failing pairs), search_path overloading enables privilege escalation via init SQL that calls attacker-supplied functions, dependency upgrades are non‑deterministic, and there is no safe way to run a persistent background-worker per database across restarts; DuckDB/DuckDB offload and Iceberg+DuckDB examples work but require heavy engineering to avoid these pitfalls.
AI-written summary · about
chapters (10)
- 0:00Introduction to extensions
- 2:20Advanced extension examples
- 4:56Modern architecture patterns
- 7:40Extension development basics
- 11:48Challenges with SQL scripts
- 18:28Security in extension SQL
- 21:44Troubles with extension modules
- 25:50Metadata and lifecycle management
- 36:41Potential solutions and summary
- 39:22Q&A session
related talks
58mPushing boundaries with extensions, for extension
28mBeyond Postgres: Insights about the PostgreSQL Extensibility
27mDuckDB Extensions: The Past, the Present, and the Future
52mAnarchy in the Database: A Survey and Evaluation of Database Management System Extensibility
18mDuckDB Extensions
42mPostgreSQL Extensions: A Deep Dive
47mWhat does it take to onboard an extension?
26mState of the Postgres Extension Ecosystem
