Re: Reject negative max_retention_duration values

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Cc: 'Chao Li' <li.evan.chao@gmail.com>, PostgreSQL-development <pgsql-hackers@lists.postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Date: 2026-06-10T05:40:41Z
Lists: pgsql-hackers
On Wed, Jun 10, 2026 at 05:12:26AM +0000, Hayato Kuroda (Fujitsu) wrote:
> Dear Chao,
> 
> > Yes, this patch rejects negative values at CREATE/ALTER SUBSCRIPTION time,
> > so in theory the if (MySubscription->maxretention <= 0) change is not strictly
> > necessary. I made that change for a few reasons (from strong do weak):
> 
> I personal preference is to use Assert() for detecting cannot-happen case,
> but it's not very strong opinion. Let's see how others say.

An assertion offers less protection than an elog(ERROR) if a value is
read from catalogs, which could be the case here?  Think for example
corrupted catalog data.  (I did not read the patch in details, so I
may have missed something, of course, but I was under the impression
that this could apply for this case with MySubscription.) 
--
Michael

Commits

  1. Disallow negative values for max_retention_duration.