Re: some validate_relation_kind() tidying

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-02-23T16:44:07Z
Lists: pgsql-hackers
On 19.02.26 09:48, Ashutosh Bapat wrote:
> The || should be &&. The bug shows up as an initdb failure
> running bootstrap script ... 2026-02-19 14:06:43.411 IST [197482]
> FATAL:  cannot open relation "pg_type"
> 2026-02-19 14:06:43.411 IST [197482] DETAIL:  This operation is not
> supported for tables.
> 
> I think this is more future-proof. If a relkind gets added and needs
> to be in this list, we will notice it from the error. I think we
> should avoid mentioning specific relkinds in the comment as well since
> that list will need to be updated as the set of relkinds changes. Just
> mentioning the criteria should be enough. I have slightly improved the
> comment in the attached 0003.
> 
>> Secondly, the sequence.c one was probably copied from the table.c one,
>> but I think we can make the error message a bit more direct by just
>> saying "... is not a sequence" instead of "cannot open relation".
>>
> 
> +1.
> 
>> These are the two attached patches.  This is just something I found
>> while working on something else nearby.
> 
> Attached are your two patches + bug fix in 0002 + my suggestions in 0003.

Thanks, committed with your fixes.  (I fine-tuned the comment in patch 
0003 a bit further, since arguably you can "reference" a composite type 
in a query.)




Commits

  1. Sort out table_open vs. relation_open in rewriter

  2. Rename validate_relation_kind()

  3. Flip logic in table validate_relation_kind

  4. Change error message for sequence validate_relation_kind()