From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Oswaldo <listas(at)soft-com(dot)es> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Posible Bug |
Date: | 2013-05-03 15:10:22 |
Message-ID: | 20130503151021.GC2467@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2013-05-03 15:12:53 | Re: Posible Bug |
Previous Message | Oswaldo | 2013-05-03 14:57:36 | Re: Posible Bug |