~/talk

The trouble with extensions

Talkat PGConf.dev 2025 · 2025-05-13..05-16· [databases, security]
github:marcoslot
slides:none on file

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

  1. 0:00Introduction to extensions
  2. 2:20Advanced extension examples
  3. 4:56Modern architecture patterns
  4. 7:40Extension development basics
  5. 11:48Challenges with SQL scripts
  6. 18:28Security in extension SQL
  7. 21:44Troubles with extension modules
  8. 25:50Metadata and lifecycle management
  9. 36:41Potential solutions and summary
  10. 39:22Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.