FK constraints "NOT VALID" by default? - Mailing list pgsql-hackers

From Alvaro Herrera
Subject FK constraints "NOT VALID" by default?
Date
Msg-id 1300396759-sup-3063@alvh.no-ip.org
Whole thread Raw
Responses Re: FK constraints "NOT VALID" by default?
List pgsql-hackers
I just ran this quick test in HEAD:

alvherre=# create table study (id int primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY creará el índice implícito «study_pkey» para la tabla «study»
CREATE TABLE
alvherre=# insert into study select a from generate_series(1, 1000000) as a;
INSERT 0 1000000
alvherre=# create table studyform (id int primary key, study_id int not null references study);
NOTICE:  CREATE TABLE / PRIMARY KEY creará el índice implícito «studyform_pkey» para la tabla «studyform»
CREATE TABLE
alvherre=# insert into studyform select a, 1 + a * random() from generate_series(1, 100000) a;
INSERT 0 100000

and was very surprised to see that the foreign key is marked as NOT
VALID:

alvherre=# \d studyform     Tabla «public.studyform»Columna  │  Tipo   │ Modificadores 
──────────┼─────────┼───────────────id       │ integer │ not nullstudy_id │ integer │ not null
Índices:   "studyform_pkey" PRIMARY KEY, btree (id)
Restricciones de llave foránea:   "studyform_study_id_fkey" FOREIGN KEY (study_id) REFERENCES study(id) NOT VALID


Is this really intended?

-- 
Álvaro Herrera <alvherre@alvh.no-ip.org>


pgsql-hackers by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: 2nd Level Buffer Cache
Next
From: Robert Haas
Date:
Subject: Re: really lazy vacuums?