Re: Identity columns should own only one sequence - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Identity columns should own only one sequence
Date
Msg-id 20190425005544.GE8552@paquier.xyz
Whole thread Raw
In response to Identity columns should own only one sequence  (Laurenz Albe <laurenz.albe@cybertec.at>)
Responses Re: Identity columns should own only one sequence
List pgsql-hackers
On Sun, Apr 14, 2019 at 05:51:47PM +0200, Laurenz Albe wrote:
> test=> INSERT INTO ser (id) VALUES (DEFAULT);
> ERROR:  more than one owned sequence found

Yes this should never be user-triggerable, so it seems that we need to
fix and back-patch something if possible.

> I propose that we check if there already is a dependent sequence
> before adding an identity column.

That looks awkward.  Souldn't we make sure that when dropping the
default associated with a serial column then the dependency between
the column and the sequence is removed instead?  This implies more
complication in ATExecColumnDefault().

> The attached patch does that, and also forbids setting the ownership
> of a sequence to an identity column.
>
> I think this should be backpatched.

Could you add some test cases with what you think is adapted?
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Calling PrepareTempTablespaces in BufFileCreateTemp
Next
From: Amit Langote
Date:
Subject: Re: set relispartition when attaching child index