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

PG Bug reporting form <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: msdnchina@163.com
Date: 2025-12-10T14:51:20Z
Lists: pgsql-bugs
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=#