From: | Pierre Ducroquet <pierre(dot)ducroquet(at)people-doc(dot)com> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: ALTER TABLE does not check for column existence before starting operations |
Date: | 2018-03-02 15:01:34 |
Message-ID: | 22030847.OqDsyWLdma@pierred-pdoc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Friday, March 2, 2018 2:44:16 PM CET David Steele wrote:
> Hi Pierre,
>
> On 3/2/18 6:36 AM, Pierre Ducroquet wrote:
> > While working on a big table recently, I noticed that ALTER TABLE does not
> > check for column existence in operations like SET NOT NULL before starting
> > working on the table, for instance adding a primary key.
> > It is thus possible, if a typo has been made, to generate a long lock and
> > a
> > lot of WAL that will serve no purpose since the whole transaction will be
> > discarded.
> >
> > For example :
> >
> > toto=# alter table test add primary key(i), alter column typo set not
> > null;
> > ERROR: column "typo" of relation "test" does not exist
> > Time: 10.794 s
> >
> > The attached patch fixes this behaviour by adding a small check in the
> > first pass of alter table to make sure that a column referenced by an
> > alter command exists first. It also checks if the column is added by
> > another alter sub- command. It does not handle every scenario (dropping a
> > column and then altering it for instance), these are left to the exec
> > code to exclude. The patch has been checked with make check, and I see no
> > documentation change to do since this does not alter any existing
> > documented behaviour.
> This looks like a good idea. However, the last CF for PG11 is in
> progress so it might be difficult to attract much comment/review right now.
>
> I recommend entering this patch in the 2018-09 CF so it doesn't get lost.
Hi
Thanks for the answer.
I saw that bug two days ago but I had no time then to do the patch. Had I seen
the CF window was that close I would have hurried up… Heh, this will just wait
a few months. I will enter it in the 2018-09 CF as soon as it opens.
Regards
Pierre
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-03-02 15:12:33 | Re: ALTER TABLE does not check for column existence before starting operations |
Previous Message | Magnus Hagander | 2018-03-02 15:01:13 | Re: perltidy version |