Re: BUG: pg_class.relchecks overflow, making table undroppable - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: BUG: pg_class.relchecks overflow, making table undroppable
Date
Msg-id arY5KKfzODnXJ-eG@paquier.xyz
Whole thread
In response to Re: BUG: pg_class.relchecks overflow, making table undroppable  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
Responses Re: BUG: pg_class.relchecks overflow, making table undroppable
List pgsql-hackers
On Fri, Sep 25, 2026 at 08:41:38AM +0000, Bertrand Drouvot wrote:
> Just a few comments:
>
> === 1
>
> It needs a rebase due to 926627bf902
>
> === 2
>
> +                    ereport(ERROR,
> +                            errmsg("too many check constraints on relation \"%s\"",
> +                                   RelationGetQualifiedRelationName(rel)));
>
>
> I think ERRCODE_PROGRAM_LIMIT_EXCEEDED would be appropriate here?

An error record would be appropriate, yes.  That's reachable with SQL.

>                  numchecks++;
> +
> +                if (numchecks >= PG_INT16_MAX)
> +                    ereport(ERROR,
> +                            errmsg("too many check constraints on relation \"%s\"",
> +                                   RelationGetQualifiedRelationName(rel)));
>
> I wonder if it wouldn't make more sense to check numchecks >= PG_INT16_MAX before
> calling StoreRelCheck()? That would avoid inserting the constraint, recording its
> dependencies and invoking the post create hook for an object that will be rejected.

Yeah, let's do that.  That's unlikely but it would just be a waste and
that's just switching the order of things.

If somebody is willing to send an updated patch, feel free, I don't
have the energy for that today..  Jian also mentioned
pg_add_s16_overflow(), which is a good idea for this case.  :D
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Andrew Bille
Date:
Subject: [PATCH] Fix TAP tests with recent IPC::Run on Windows
Next
From: Nazir Bilal Yavuz
Date:
Subject: Re: [PATCH] Fix TAP tests with recent IPC::Run on Windows