From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com>, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> |
Cc: | Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: cataloguing NOT NULL constraints |
Date: | 2023-07-25 12:35:54 |
Message-ID: | 20230725123554.ciodfxlkjubrpedg@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2023-Jul-24, Robert Haas wrote:
> I think I might want to retract my earlier -1 vote. I mean, I agree
> with former me that having the \d+ output get a whole lot longer is
> not super-appealing. But I also agree with Dean that having this
> information available somewhere is probably important, and I also
> agree with your point that inventing \d++ for this isn't necessarily a
> good idea. I fear that will just result in having to type an extra
> plus sign any time you want to see all of the table details, to make
> sure that psql knows that you really mean it. So, maybe showing it in
> the \d+ output as Dean proposes is the least of evils.
Okay then, I've made these show up in the footer of \d+. This is in
patch 0003 here. Please let me know what do you think of the regression
changes.
On 2023-Jul-24, Dean Rasheed wrote:
> To reproduce this error, try to create 2 constraints with the same
> name on different columns:
>
> create table foo(a int, b int);
> alter table foo add constraint nn not null a;
> alter table foo add constraint nn not null b;
Ah, of course. Fixed.
> I found another, separate issue:
>
> create table p1(a int not null);
> create table p2(a int);
> create table foo () inherits (p1,p2);
> alter table p2 add not null a;
>
> ERROR: column "a" of table "foo" is already NOT NULL
>
> whereas doing "alter table p2 alter column a set not null" works OK,
> merging the constraints as expected.
True. I made it a non-error. I initially changed the message to INFO,
as suggested by Vik nearby; but after noticing that SET NOT NULL just
does the same thing with no message, I removed this message altogether,
for consistence. Now that I did it, though, I wonder: if the user
specified a constraint name, and that name does not match the existing
constraint, maybe we should have an INFO or NOTICE or WARNING message
that the requested constraint name was not satisfied.
--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
Attachment | Content-Type | Size |
---|---|---|
v16-0001-Remember-PK-oid-for-partitioned-tables-even-when.patch | text/x-diff | 2.5 KB |
v16-0002-Add-pg_constraint-rows-for-NOT-NULL-constraints.patch | text/x-diff | 225.8 KB |
v16-0003-Have-psql-print-the-NOT-NULL-constraints-on-d.patch | text/x-diff | 29.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Ashutosh Bapat | 2023-07-25 13:18:27 | Re: logical decoding and replication of sequences, take 2 |
Previous Message | Tatsuo Ishii | 2023-07-25 12:35:04 | Re: Row pattern recognition |