Re: Constraint check is missing value check ARRAY - Mailing list pgsql-docs

From Eugene Losowski-Gallagher
Subject Re: Constraint check is missing value check ARRAY
Date
Msg-id CAEgMDsRkj9uoMqRCUOpL5bv8m-owcx1gmrDDgb_fAb-42LXhdg@mail.gmail.com
Whole thread
List pgsql-docs
Hi Laurenz,

As far as I can tell:
https://www.postgresql.org/docs/current/ddl-constraints.html
Has nothing on a check array constraint, or an oracle example for previous "CHECK usage IN ('M', 'H', 'W', 'F')"
I.e this is an enum of values:

CHECK (usage = ANY (ARRAY['M'::character(1),'H'::character(1),'W'::character(1),'F'::character(1)])) NOT VALID

Please can it be added into the documentation, or a URL given by return that contains it.
I have been unable to find any in recent documentation. I am pretty sure it existed in old documentation, or I reverse engineered it from pgAdmin software.
I would be very useful to have it documented properly.

That URL above includes all the other value constraints (against comparator const, against comparator variable, unique and foreign key), but nothing for a fixed limited set of equals values.

In the above example I provided it is needed as not all letters are valid.
Another example would be "displayed = Y, N"

Postgres is a little more finicky than oracle, but the feature exists, and works nicely, just with awkward syntax.
All I am asking is the documentation to include it.

Many thanks

Eugene






On Sun, 13 Sept 2026 at 22:41, Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Fri, 2026-09-11 at 19:09 +0000, PG Doc comments form wrote:
> This page is missing the value check array.
> https://www.postgresql.org/docs/current/ddl-constraints.html
>
>
> Example:
> CREATE TABLE demo
> (
>  id bigint NOT NULL DEFAULT nextval('seq_ttelephone_id'::regclass),
>  usage character(1) NOT NULL  DEFAULT 'M',
>  CONSTRAINT ck_ttelephone_usage_1 CHECK (usage = ANY
> (ARRAY['M'::character(1),'H'::character(1),'W'::character(1),'F'::character(1)]))
> NOT VALID
> )
> );
>
> This is entirely missing from the documentation.
>
> Key thing to point out is the type cast must match:
> e.g. character(1) for type of character(1) etc

Which aspect of this requires more detailed documentation than already exists?
Can you be more descriptive?

Yours,
Laurenz Albe


--
Eugene Losowski-Gallagher
Mob: 07825160923
Attachment

pgsql-docs by date:

Previous
From: Fujii Masao
Date:
Subject: Fix primary status update WAL position description
Next
From: "David G. Johnston"
Date:
Subject: Re: Constraint check is missing value check ARRAY