Lister Learning and Teaching Centre
This week: #PostgreSQL #Edinburgh #meetup on π
Thurs, March 12th! Join @boringsql.com and @vyruss.org for talks on making sure your queries don't break production & on how easy it is to run #Postgres on #Kubernetes with @cloudnativepg.bsky.social
π
luma.com/5pglgx8h
#CloudNativePG #k8s #TechMeetups
10.03.2026 13:15
π 2
π 2
π¬ 0
π 0
Major progress for RegreSQL 2.0. It can now force pretty much any statistics.
Yesterday I highlighted the current limitation of overriding statistics. Today I can show you planner being completely independent and choosing Bitmap Index Scan on table with 1 tuple.
09.03.2026 20:03
π 2
π 0
π¬ 0
π 0
Production query plans without production data
PostgreSQL 18 makes optimizer statistics portable. Export them from production and inject them into test databases to get realistic query plans without the data.
What happens when you inject production statistics into a 10,000-row PostgreSQL test table? The query plan flips.β¨β¨
PostgreSQL 18 makes this a one-liner.
pg_dump --statistics-onlyβ¨
Plain SQL, under 1MB, no data needed.
Learn the mechanics in my latest blog post.
β¨β¨boringsql.com/posts/portab...
09.03.2026 08:44
π 2
π 0
π¬ 0
π 0
You just might be onto something π€£ I've been looking for something for the back of the t-shirts and I think we have a strong candidate
Equality: 0.5%
Ranges: 33%
May your indexes be with you
27.02.2026 21:38
π 1
π 0
π¬ 0
π 0
Or what about cases where there are no statistics at all? Like materialized CTEs, temporary tables, or computed expressions in WHERE clauses. The planner falls back to hardcoded constants. 0.5% selectivity for equality. 33% for ranges. Good luck.
27.02.2026 19:03
π 1
π 0
π¬ 1
π 0
It's not magic. It's called SQL query regression testing. π» as postmortem π
24.02.2026 20:11
π 3
π 0
π¬ 0
π 0
Step 1: "LGTM, this query is fine"
Step 2: Deploy to production
Step 3: Pray π
Step 4: SRE - "This query is definitely NOT fine"
Step 5: "But... it worked on MY database" π₯
No ifs. No buts. On 12 March @postgresedi.bsky.social find out how to become an atheist when it comes to your SQL queries.
24.02.2026 20:11
π 5
π 2
π¬ 2
π 0
Busted :) These are the ones I'm speaking at - next time I'll have to do better proposal so Paris find me worthy π
21.02.2026 10:33
π 0
π 0
π¬ 0
π 0
#postgresql season is officially on. I'll be on the ground at
πͺπΊ Nordic pgDay in Helsinki (March)
πͺπΊ German pgConf in Essen (April)
πΊπΈ PGDATA in Chicago (June)
π¬π§ pgDay in London (September)
Iβm looking forward to all the chats and fun that's ahead.
21.02.2026 09:10
π 1
π 0
π¬ 1
π 0
The Alchemy of Shared Buffers: Balancing Concurrency and Performance
Josef Machytka: Speaker portfolio
"The Alchemy of Shared Buffers" must have been amazing presentation by Josef Machytka during CERN pgDay (had to skip that one unfortunately). It's worth checking the slides.
medium.com/@josef.machy...
10.02.2026 09:52
π 1
π 0
π¬ 0
π 0
While this led to 2748 lines dropped from RegreSQL it gets things done. Stay tuned for 2.0 release!
05.02.2026 20:20
π 1
π 0
π¬ 0
π 0
But it's not bad news. Agonising over fixtures forced me to look at the problem from another direction - how to quickly and securely use production data. Gave up on sampling, only to find a better solution:
graph-traversal based data extraction with masking to strip customer data and PII.
05.02.2026 20:20
π 1
π 0
π¬ 1
π 0
While other changes leading up to v2.0 are strong quality-of-life improvements, I've decided to pull generated fixture support out of RegreSQL entirely for now.
05.02.2026 20:20
π 0
π 0
π¬ 1
π 0
There are weeks of full wins, and those where it's time to eat the humble cake. RegreSQL has been making great progress, but I've been fighting the fixture system more and more. After many conversations and endless evenings - it's time to admit:
fixtures are a genuinely hard problem
05.02.2026 20:20
π 1
π 0
π¬ 1
π 0
Still recharging after this week. But it's that good kind of tired - the one you get when something actually matters.
@praguepgdevday.bsky.social was my first time speaking at a bigger Postgres event. The RegreSQL session went well, but honestly? The conversations afterwards were the real thing
31.01.2026 08:24
π 1
π 0
π¬ 0
π 0
Thatβs a wrap at #P2D2! π Huge thanks to our amazing speakers, organizers, and attendees for making it unforgettable.
PostgreSQL, people, and Pragueβwhat a combo. We canβt wait to do it again next year. See you soon β brzy na vidΔnou! π¨πΏπ
29.01.2026 08:15
π 3
π 2
π¬ 0
π 0
Introduction to Buffers in PostgreSQL
How PostgreSQL actually manages memory, from shared_buffers and dirty pages to the OS page cache sitting underneath it all.
Buffers came up during Postgres FM chat and people asked why they matter so much. So I wrote about it - with interactive demos to make it click.
Introduction to Buffers: boringsql.com/posts/introd...
Do the visuals help you to grasp the concept easier? Let me know.
24.01.2026 18:56
π 0
π 0
π¬ 0
π 0
First testing of RegreSQL integration with Rails / ActiveRecord via `rake regresql:export`.
18.01.2026 11:16
π 1
π 0
π¬ 0
π 0
Postgres FM | RegreSQL
Nik and Michael are joined by Radim Marek from boringSQL to talk about RegreSQL, a regression testing tool for SQL queries they forked and improved recently.Β Here are some links to things they ment...
I got myself talking about the motivation behind RegreSQL on Postgres FM ποΈ
We nerded out a bit about why timing is a terrible metric, why buffers actually matter, statistics, performance β and why all of this is more relevant in the age of agentic coding.
postgres.fm/episodes/reg...
16.01.2026 20:12
π 1
π 0
π¬ 1
π 0
Test if queries hit the right indexes at production scale β without needing to have production data.
I'll show you exactly how during @praguepgdevday.bsky.social - Session "It works on my database - Regression testing of SQL queries" is last of the day, but I intend to make it worth staying for.
14.01.2026 22:27
π 3
π 2
π¬ 0
π 0
Writing about instant clones of PostgreSQL databases was not a clever move. Now I have to keep repeating to myself:
I will NOT rewrite the whole control plane
I will NOT scrap everything for #freebsd jails
I will NOT rebuild everything with native ZFS snapshots
28.12.2025 10:17
π 0
π 0
π¬ 0
π 0
Introducing pg-storage-visualizer
YouTube video by boringSQL
Introducing pg-storage-visualiser - tool made for EDUCATIONAL purposes to help you better understand how hashtag #postgresql stores data (both tables and indexes).
The repository is available at GitHub github.com/boringSQL/pg...
www.youtube.com/watch?v=fRz1...
26.12.2025 11:30
π 0
π 0
π¬ 0
π 0
Instant database clones with PostgreSQL 18
Learn how to clone PostgreSQL databases instantly using reflinks. Turn slow template copies into milliseconds with PostgreSQL 18's new file copy options.
Ha! Wanted to write about #postgresql 18's new features, but most got covered already. One I haven't seen mentioned yet is file_copy_method.
It's foundation for some SQL Labs features I'm building, so let's spread the word.
Instant database clones with PostgreSQL 18
boringsql.com/posts/instan...
23.12.2025 06:55
π 1
π 1
π¬ 0
π 0
It's gonna be cold, grey, and dark, but thanks to Postgres community events, there's something to look forward to. My evenings are busy next week, but in a good way - are you going to join me?
Mon, 24 Nov in Prague - lnkd.in/dP5es2Nc
Thu, 27 Nov in Malmo - www.meetup.com/malmo-postgr...
20.11.2025 19:28
π 2
π 0
π¬ 0
π 0