Oswaldo escribió: > Para reproducirlo ejecutar esta secuencia: > > begin; > > create domain t_dom as varchar default '' not null; > > create table test1 (id int, dom t_dom); > create table test2 (id int, dom t_dom); > > insert into test2 (id) values (1); > update test2 set dom = (select dom from test1 where test1.id = test2.id); > select * from test2; > > > En el resultado final la columna 'dom' tiene un valor NULL cuando > según las reglas definidas esto no deberia ser posible y se deberia > haber producido una excepción.
Hola, no tengo claro que esto sea un bug, pero como es un caso de borde, siéntete libre de reportarlo y ver qué opinan los desarrolladores. El problema es que la idea de poner restricciones NOT NULL a un dominio no está muy bien definida. Si en cambio pones un NOT NULL en la definición de la columna de la tabla, no hay falla: create domain t_dom2 as varchar default ''; create table test3 (id int, dom t_dom2 not null); create table test4 (id int, dom t_dom2 not null); insert into test4 (id) values (1); update test4 set dom = (select dom from test3 where test3.id = test4.id); -- el update da un error select * from test4; -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda