Re: cataloguing NOT NULL constraints - Mailing list pgsql-hackers

From Marcos Pegoraro
Subject Re: cataloguing NOT NULL constraints
Date
Msg-id CAB-JLwYu3+M+CK3HTbBHMip2PDEPGP4NF52Yf_tiHH5d1KKOcg@mail.gmail.com
Whole thread Raw
In response to Re: cataloguing NOT NULL constraints  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List pgsql-hackers
I started this time around from the newest of my patches in those
threads, but the implementation has changed considerably from what's
there.
 
I don´t know exactly what will be the scope of this process you're working on, but there is a gap on foreign key constraint too.
It is possible to have wrong values on a FK constraint if you disable checking of it with session_replication_role or disable trigger all
I know you can create that constraint with "not valid" and it'll be checked when turned on. But if I just forgot that ... 
So would be good to have validate constraints which checks, even if it's already valid

drop table if exists tb_pk cascade;create table tb_pk(key integer not null primary key);
drop table if exists tb_fk cascade;create table tb_fk(fk_key integer);
alter table tb_fk add constraint fk_pk foreign key (fk_key) references tb_pk (key);
insert into tb_pk values(1);
alter table tb_fk disable trigger all; --can be with session_replication_role too.
insert into tb_fk values(5); --wrong values on that table

Then, you could check 

alter table tb_fk validate constraint fk_pk
or
alter table tb_fk validate all constraints
 

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: static libpq (and other libraries) overwritten on aix
Next
From: Tom Lane
Date:
Subject: Re: Making Vars outer-join aware