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>