Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.

Поиск
Список
Период
Сортировка
От Srinath Reddy Sadipiralla
Тема Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
Дата
Msg-id CAFC+b6pA+zGmt_WoEMqHNRaAGVOU7KPyUuAFKnEdzeLW1KzzjQ@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.  (PG Bug reporting form <noreply@postgresql.org>)
Ответы Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
Список pgsql-bugs
Hi,

On Wed, Dec 10, 2025 at 8:52 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      19351
Logged by:          yanliang lei
Email address:      msdnchina@163.com
PostgreSQL version: 18.1
Operating system:   Linux
Description:       

postgres=# create table test_null_20251210(c1 int not null,c2 text);
CREATE TABLE
postgres=# \d+ test_null_20251210
                       数据表 "public.test_null_20251210"
 栏位 |  类型   | 校对规则 |  可空的  | 预设 |   存储   | 压缩 | 统计目标 | 描述
------+---------+----------+----------+------+----------+------+----------+------
 c1   | integer |          | not null |      | plain    |      |          |
 c2   | text    |          |          |      | extended |      |          |
Not-null constraints:
    "test_null_20251210_c1_not_null" NOT NULL "c1"
访问方法 heap

postgres=# alter table test_null_20251210 add  constraint xyzxyz not null
c1;
ALTER TABLE
<<<--- above  alter table statement should report 'not null constraint
exists',
<<<---- Maybe this problem is a bug ?
postgres=# \d+ test_null_20251210
                       数据表 "public.test_null_20251210"
 栏位 |  类型   | 校对规则 |  可空的  | 预设 |   存储   | 压缩 | 统计目标 | 描述
------+---------+----------+----------+------+----------+------+----------+------
 c1   | integer |          | not null |      | plain    |      |          |
 c2   | text    |          |          |      | extended |      |          |
Not-null constraints:
    "test_null_20251210_c1_not_null" NOT NULL "c1"
访问方法 heap

postgres=# select version();
                                      version
-----------------------------------------------------------------------------------
 PostgreSQL 18.1 on aarch64-unknown-linux-gnu, compiled by gcc (GCC) 7.3.0,
64-bit
(1 行记录)

postgres=#


It's an expected behavior; you can check here [0],
but i am curious ,why it's not treated as normal
constraint and why we are not throwing an error
like the constraint already exists?

[0] https://www.postgresql.org/docs/18/ddl-alter.html?utm_source=chatgpt.com#DDL-ALTER-ADDING-A-CONSTRAINT

--
Thanks,
Srinath Reddy Sadipiralla
EDB: https://www.enterprisedb.com/

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