Re: Do away with a few backwards compatibility macros

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-11-21T04:58:40Z
Lists: pgsql-hackers
On Thu, Nov 16, 2023 at 09:46:22AM -0600, Nathan Bossart wrote:
> On Thu, Nov 16, 2023 at 07:11:41PM +0530, Bharath Rupireddy wrote:
>> After a recent commit 6a72c42f (a related discussion [1]) which
>> removed MemoryContextResetAndDeleteChildren(), I think there are a
>> couple of other backward compatibility macros out there that can be
>> removed. These macros are tuplestore_donestoring() which was
>> introduced by commit dd04e95 21 years ago and SPI_push() and friends
>> which were made no-ops macros by commit 1833f1a 7 years ago. Debian
>> code search shows very minimal usages of these macros. Here's a patch
>> attached to remove them.
> 
> I'm fine with this because all of these macros are no-ops for all supported
> versions of Postgres.  Even if an extension is using them today, you'll get
> the same behavior as before if you remove the uses and rebuild against
> v12-v16.

Barring objections, I'll plan on committing this in the next week or so.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



Commits

  1. Retire a few backwards compatibility macros.

  2. Retire MemoryContextResetAndDeleteChildren() macro.

  3. Simplify code by getting rid of SPI_push, SPI_pop, SPI_restore_connection.

  4. tuplestore_donestoring() isn't needed anymore, but provide a no-op