Neues vom PostgreSQL Planet
Greg Sabino Mullane: Postgres Troubleshooting: Fixing Duplicate Primary Key Rows
Someone recently asked on the Postgres mailing lists about how to remove unwanted duplicate rows from their table. They are “unwanted” in that sense that the same value appears more than once in a column designated as a primary key. We’ve seen an uptick in this problem since glibc was kind enough to change the way they sorted things. This can lead to invalid indexes when one upgrades their OS and modifies the underlying glibc library.
Dave Stokes: PostgreSQL's COPY and \COPY
Colin Copeland: How to Use regexp_matches and regexp_match in PostgreSQL
regexp_matches() and regexp_match() are two similar string functions that support regular expression matching directly in the PostgreSQL database.
Chris Ellis: PGDay UK 2025 - Call for Papers and Call for Sponsors Open!
We're happy to announce that the Call for Papers and Call for Sponsors is open for PGDay UK 2025!
Call for Papers is open from today until May 12, 2025 at 23:59:59 in London, UK. Selected speakers will be notified before May 26, 2025. We accept proposals from both established and new speakers on a range of PostgreSQL related topics. You don't need to have the talk written beforehand, we just need an abstract of your talk, so don't hold back and tell your friends. Find out more: https://2025.pgday.uk/call-for-papers/ .
Craig Kerstiens: Citus: The Misunderstood Postgres Extension
Citus is in a small class of the most advanced Postgres extensions that exist. While there are many Postgres extensions out there, few have as many hooks into Postgres or change the storage and query behavior in such a dramatic way. Most that come to Citus have very wrong assumptions. Citus turns Postgres into a sharded, distributed, horizontally scalable database (that's a mouthful), but it does so for very specific purposes.
Citus, in general, is fit for these type of applications and only these type:
Hans-Juergen Schoenig: Debugging PostgreSQL more easily
PostgreSQL is the foundation for thousands and thousands of applications. The system has long proven its worth and is operating reliably. However, the question people often ask is: What is the best way to actually debug a database application?
For a couple of years now, I have been using a simple method that greatly speeds up the debugging process of typical applications.
Andreas 'ads' Scherbaum: Emma Saroyan
Ian Barwick: PgPedia Week, 2025-03-16
CommitFest 52 (2025-03), the final CommitFest in the PostgreSQL 18 development cycle, is past the halfway stage, and this week has seen a number of new features.
Shayon Mukherjee: Selective asynchronous commits in PostgreSQL - balancing durability and performance
Dave Stokes: Can Artificial Intelligence Created Better Tables Than You?
Artificial Intelligence is one of those conundrums where the ability to have some tasks handled for you contrasts with a mix of ego and pride that it may be better than you at those tasks. I recently wrote a blog using another database about an AI-generated SQL that was quite sophisticated. But what about asking an AI to create a table with a specification like a DBA/SRE/Analyst might receive?
Cornelia Biacsics: Contributions for the week of 2025-03-03 (Week 9)
On March 6 and 7, PostgreSQL@SCaLE22x took place in Pasadena, California. The PostgreSQL team organized and volunteered at the event, with PGUS hosting the booth. The list of involved volunteers:
Henrietta Dombrovskaya: PG Day Chicago: The talks I am most excited about. Part II
Now – to the afternoon sessions (see Part I for morning sessions)
Paul Ramsey: Pi Day PostGIS Circles
What's your favourite infinite sequence of non-repeating digits? There are some people who make a case for e, but to my mind nothing beats the transcendental and curvy utility of π, the ratio of a circle's circumference to its diameter.
Drawing circles is a simple thing to do in PostGIS -- take a point, and buffer it. The result is circular, and we can calculate an estimate of pi just by measuring the perimeter of the unit circle.
SELECT ST_Buffer('POINT(0 0)', 1.0);
Jeremy Schneider: Testing loadBalancerSourceRanges with CloudNativePG on Azure Kubernetes
This option didn’t seem super widely documented from my initial searches online; it should be able to basically enforce layer 4 ingress/firewall rules at the individual service level. This is a quick test to check if it works.
Hans-Juergen Schoenig: PostgreSQL: 1 trillion rows in Citus
"PostgreSQL scales" - we have all heard this phrase over and over again. However, the question is: What does this actually mean? Does it mean 1 million rows? Or maybe even 1 billion rows? So, on a rainy weekend, I decided to do a little experiment to figure out if it is possible to squeeze 1 trillion rows (= 1000 billion rows) into my local personal computer.
For those of you who don't believe this to be possible - here is proof:
Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 18 – Allow json{b}_strip_nulls to remove null array elements
Henrietta Dombrovskaya: Chicago PUG February Meetup recording
Hi Postgres community, apologies for the delay one more time – here is the recording of our February meetup! If you didn’t have a chance to attend in person or virtual, please take a moment to watch! You won’t be disappointed!
Also, one more reminder that our March meetup will take place later in the month than usual: on March 25. That will be the last meetup before PG Day Chicago, and I hope you will be able to attend!
Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 18 – Allow parallel CREATE INDEX for GIN indexes
Laurenz Albe: stats_fetch_consistency: caching PostgreSQL monitoring statistics?
I have worked with PostgreSQL since 2006. Still, I keep learning about new aspects of PostgreSQL regularly. Sometimes it feels like the more I know, the better I see that I have yet a lot to learn. Often, beginners' questions in a training session make me learn something new! Today, my co-worker Pavlo told be about the PostgreSQL parameter stats_fetch_consistency. Probably not a parameter that you want to tune every day, but you never know.