Re: future of PQfn()
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Jacob Champion <jacob.champion@enterprisedb.com>
Cc: pgsql-hackers@postgresql.org
Date: 2026-05-29T16:42:27Z
Lists: pgsql-hackers
For future reference in the archives, I'm moving the discussion about 0001 (the prepared statement deallocation notification mechanism) to a new thread: https://postgr.es/m/ahm_4eOKkkKJ3Gds%40nathan On Fri, May 29, 2026 at 09:33:03AM -0700, Jacob Champion wrote: > On Fri, May 29, 2026 at 9:11 AM Nathan Bossart <nathandbossart@gmail.com> wrote: >> I'm certainly open to other ideas, but I'm afraid this is the best I've >> come up with in my admittedly limited time thinking about the problem. > > No worries -- I hadn't meant to block progress here on protocol > design. I think keeping PQnfn() for the immediate future is a good > plan. I just wanted to plant a seed for getting away from this problem > eventually. > > (As for pie-in-the-sky alternative ideas, the ability for middleware > to separate contexts or streams of packets has come up before. libpq > could theoretically mark its own "context" of server-side allocations > that are not touched by an application-context DISCARD.) Along these lines, I did consider "pinning" statements or even having "built-in" ones for libpq. I didn't like the "pinning" idea because that seemed problematic for connection poolers. And the "built-in" idea seemed too libpq-centric for what I'd argue is a general problem. The other ideas involved guessing at what's happening based on the queries or somehow trying to handle failures due to missing/wrong prepared statements, none of which felt viable. -- nathan