---
title: "Why a DBA said no to one column"
publication: "Postgres Weekly"
issue: 671
published_at: "2026-10-28"
canonical_url: "https://postgresweekly.com/issues/671"
---

Plus 31.7TB of WAL for one lagging replica, the case against ON DELETE CASCADE, and an 'undo' for bad UPDATEs.        

#​671 — October 28, 2026 

[Web Version](https://postgresweekly.com/issues/671)  

Together with [![Tiger Data logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_282/e_make_transparent/co_white,e_outline:30/px1u7kjyvz7xnbm6ytir.png)](https://www.tigerdata.com/blog/announcing-pg_vectorsearch-scalable-open-source-vector-search-postgresql?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/fjmq5nbgoygs2qyhpggn.jpg)](https://mydbanotebook.org/posts/region-a-lesson-in-data-integrity/)  

['Region': A Lesson in Data Integrity](https://mydbanotebook.org/posts/region-a-lesson-in-data-integrity/) — One of Lætitia's coworkers added a free-text `region` column and planned to validate it in app code, but Lætitia wouldn't approve it. Here she makes a case for keeping rules in the database with a look at domains, enums, `CHECK` constraints and lookup tables, and how to add constraints on large tables without blocking traffic. 

Lætitia Avrot   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/9dac2441.png)](https://www.tigerdata.com/blog/announcing-pg_vectorsearch-scalable-open-source-vector-search-postgresql?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter) 

[CREATE INDEX on 100M Vectors in Under Two Hours](https://www.tigerdata.com/blog/announcing-pg_vectorsearch-scalable-open-source-vector-search-postgresql?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter) — HNSW indexes on large pgvector tables use lots of memory and can take days to build. Meet pg_vectorsearch: an open-source alternative for existing vector columns. At 100M vectors: a 25 GB index and 6 ms queries at 95% recall. [See the benchmarks](https://www.tigerdata.com/blog/announcing-pg_vectorsearch-scalable-open-source-vector-search-postgresql?utm_source=content-syndication&utm_medium=referral&utm_campaign=postgres-weekly-newsletter). 

Tiger Data (creators of TimescaleDB) sponsor   

📖 [PostgreSQL 18 Query Optimization: A Free 199-Page Book](https://postgrespro.com/community/books/qptbook) — Postgres Pro's query tuning course, reshaped into a compact book that's now in English. It covers how the planner works, access methods, join strategies, statistics, reading execution plans and tuning approaches. [Here's the PDF](https://edu.postgrespro.com/qptbook-18-en.pdf). 

Pavel Tolmachev (PostgresPro)   

**IN BRIEF:** 

- Microsoft [has started pitching SQL Server](https://devblogs.microsoft.com/azure-sql/pg-to-sql-connections/) to Postgres developers as an _'upgrade'_, touting its 32,767-connection limit. SQL Server expert [Brent Ozar isn't buying it](https://www.brentozar.com/archive/2026/10/fact-checking-microsofts-postgresql-to-sql-field-notes-connections/), and Microsoft's author pops up in the comments to argue back.
- 🇺🇸 [PgDay Boston 2027](https://2027.pgdayboston.org/) takes place on April 10, 2027 at Tufts University. [Registration is open](https://2027.pgdayboston.org/registration/), as is the [CFP](https://2027.pgdayboston.org/call-for-papers/) (until January 15).
- 🇺🇸 [Postgres Day SF](https://luma.com/haxfnzo1) is a free meetup (registration needs approval) at PlanetScale's San Francisco office on November 4, celebrating 30 years of Postgres with Bruce Momjian and Fabrizio Mello.
- 📅 [POSETTE 2027](https://posetteconf.com/2027/), Microsoft's annual virtual Postgres event, returns on March 30-31, 2027. No CFP yet.   

[Why I Don't Trust `ON DELETE CASCADE`](https://planetscale.com/blog/i-dont-like-delete-cascade) — One big cascading `DELETE` plus a routine migration can freeze writes to a table. Tom explains the lock queue behind it, some replication traps, and why he prefers soft deletes. 

Tom Pang (PlanetScale)   

[How a Read Replica Almost Took Down Its Primary Database](https://www.photoroom.com/inside-photoroom/how-a-read-replica-almost-took-down-its-primary-database) — Google Cloud grows disks automatically so Photoroom wasn't worried about space. Then a backfill left a BI replica so far behind that the primary held 31.7TB of WAL for it. The disk grew close to a hard limit, and shrinking it meant downtime. 

Marek Zaremba-Pike (Photoroom)   

[Moving 74GB Off RDS with a Week-Long Rollback Window](https://www.prisma.io/blog/moving-prismas-control-plane-to-prisma-postgres) — Prisma moved its console's database off RDS with logical replication and no write pause, then ran replication in _reverse_ so it could fall back to RDS for a week. 

Siket and Datta (Prisma)   

📄 [Your App Doesn't Need Postgres Superuser](https://stormatics.tech/blogs/your-app-does-not-need-postgresql-superuser) – Superuser can run commands on the server, so here's what to grant apps and agents instead. Umair Shahid (Stormatics) 

📄 [Postgres 19 is Late, and It's AI's Fault](https://neon.com/blog/postgres-19-is-late-and-its-ais-fault) Robert Haas 

📄 [Tuning Postgres for Analytics](https://karenjex.blogspot.com/2026/10/tuning-postgres-for-analytics-pgconfeu.html) – Slides and transcript from PGConf.EU on running reports against your app's database without slowing it. Karen Jex  

🎙️ Karen also joined Claire Giordano on the _Talking Postgres_ podcast to talk about [her path from Oracle DBA to Postgres contributor](https://talkingpostgres.com/episodes/from-oracle-dba-to-postgres-contributor-with-karen-jex).      

📰 Classifieds   

⚡ [Rebase](https://rebase.pro/?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=2026-10-28) turns your Postgres into an API and an admin panel your team can use. Our own CRM: 23 tables, zero hand-written admin screens. 

--- 

⏱️ One 5-row lookup table turned a 0.3 ms Postgres query into 467 ms. [Find yours before prod does](https://exobench.ai/blog/how-one-extra-join-reliably-breaks-postgres?utm_source=postgresweekly&utm_medium=newsletter&utm_campaign=pgw-2026-10-28-classified). Now in preview.      

**RELEASES AND CODE:**  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ey5jp6aqzwln1cm4yc4d.jpg)](https://www.pgedge.com/blog/undo-for-postgres-without-losing-the-rest-of-your-day)  

[pgVolvra: Flashback-Style 'Undo' for Bad `UPDATE`s and `DELETE`s](https://www.pgedge.com/blog/undo-for-postgres-without-losing-the-rest-of-your-day) — Trigger-based row history that lets you preview and reverse a bad statement or migration by transaction ID. Plain SQL with no superuser needed, so it works on managed Postgres too. [GitHub repo](https://github.com/pgEdge/pgvolvra). 

Muhammad Aqeel (pgEdge)   

[pgrust 0.4 Beta: The Rust Rewrite of Postgres Opens Up](https://pgrust.com/blog/pgrust-v0-4-beta/) — The experimental Rust reimplementation of Postgres adds a new JIT engine, transactional columnar tables and automatic memory sizing (no more `work_mem`tuning?). 

Michael Malis  

💡 ClickHouse [pulled pgrust from ClickBench](https://github.com/ClickHouse/ClickBench/pull/2165) in September over per-query code and caching. With v0.4's source public, it's [back in](https://github.com/ClickHouse/ClickBench/pull/2751), and central to a [benchmark-overfitting debate](http://databasearchitects.blogspot.com/2026/10/the-benchmarking-crisis.html).  

[pg_pinecone: Pinecone's Vector Index for pgvector Columns](https://www.pinecone.io/blog/introducing-pg-pinecone/) — A new extension that indexes existing pgvector columns using IVF and RaBitQ quantization, applying filters during the search. Its native engine runs locally on Postgres 17 and 18, and Pinecone reports a 136MB index vs 2GB for HNSW on 1M vectors. [GitHub repo](https://github.com/pinecone-io/pg_pinecone). 

Daddala and Mahanna (Pinecone)   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yerrrdxckhvcxirfirjy.jpg)](https://github.com/vovcke/pg_hdr_histogram)  

- [pg_hdr_histogram 1.0](https://github.com/vovcke/pg_hdr_histogram) _(above)_ – Store value distributions (e.g. latencies) as compact HDR histograms, then query p99-style percentiles and merge them losslessly across time windows or servers, say.
- [mcdview](https://github.com/Gheop/mcdview) – Turn a Postgres schema dump (or a Prisma, pgModeler or Rails schema) into a searchable, shareable interactive ER diagram. You can [try it online](https://mcdview.dev/) or see [an example of its output here](https://gheop.github.io/mcdview/exemples/mediatheque.html).
- [Citus 14.3](https://github.com/citusdata/citus/releases/tag/v14.3.0) – The distributed Postgres extension adds sorted-merge execution for multi-shard `ORDER BY` queries and per-shard pruning of `OR`clauses.
- [SPQR 3.2](https://github.com/pg-sharding/spqr/releases/tag/3.2.0) – Yandex's Postgres sharding router adds `spqrmigrate`, a schema migration tool.    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter](https://postgresweekly.com/leave/*|UID|*).
