Re: cataloguing NOT NULL constraints

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: cataloguing NOT NULL constraints
Дата
Msg-id 20230725123554.ciodfxlkjubrpedg@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: cataloguing NOT NULL constraints  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Ответы Re: cataloguing NOT NULL constraints
Re: cataloguing NOT NULL constraints
Список 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/

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: Re: Row pattern recognition
Следующее
От: Ashutosh Bapat
Дата:
Сообщение: Re: logical decoding and replication of sequences, take 2