Re: Commenting a FK crashes ALTER TABLE statements

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Marko Elezovic <marko(dot)elezovic(at)oradian(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Commenting a FK crashes ALTER TABLE statements
Date: 2017-05-15 04:05:07
Message-ID: CAKJS1f9HdROUL+2OsSSeLfEgkFuxUnuySP_s0mLpHcVjjLESzQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 15 May 2017 at 03:43, Marko Elezovic <marko(dot)elezovic(at)oradian(dot)com> wrote:
> Script to reproduce:
>
> psql -Upostgres -c"DROP DATABASE IF EXISTS cod;" postgres
>
> psql -Upostgres -c"CREATE DATABASE cod;" postgres
>
> psql -Upostgres -c"CREATE TABLE foo(id int PRIMARY KEY);" cod
>
> psql -Upostgres -c"CREATE TABLE bar(id int CONSTRAINT baz REFERENCES
> foo);" cod
>
> psql -Upostgres -c"COMMENT ON CONSTRAINT baz ON bar IS 'Fubar';" cod
>
> psql -Upostgres -c"ALTER TABLE foo ALTER COLUMN id TYPE int;" cod

Thanks for detailing out the method to reproduce.

It can be simplified a bit to become:

CREATE TABLE foo(id int PRIMARY KEY);
CREATE TABLE bar(id int CONSTRAINT baz REFERENCES foo);
COMMENT ON CONSTRAINT baz ON bar IS 'Fubar';
\c
ALTER TABLE foo ALTER COLUMN id TYPE int;

It seems there's just some missing pstrdup() calls in
RebuildConstraintComment().

The attached should fix it.

--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachment Content-Type Size
recomment_fix.patch application/octet-stream 709 bytes

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2017-05-15 04:19:57 Re: Commenting a FK crashes ALTER TABLE statements
Previous Message Noah Misch 2017-05-15 03:50:36 Re: Concurrent ALTER SEQUENCE RESTART Regression