El día 3 de mayo de 2013 08:43, Oswaldo <lis...@soft-com.es> escribió: > Hola, > > Creo que he detectado un bug, pero antes de reportarlo os agradecería > comprobaseis si la demostración es correcta y si también sucede en otras > versiones de postgres. También desconozco si es un bug ya conocido. > [.....]
> 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; test1 no tiene filas, por lo tanto la consulta del sub-query "select dom from test1 where test1.id = test2.id" retornará 0 filas, insertando un NULL. Una de las cosas que debe saber cualquier desarrollador que trabaje con SQL es tener MUCHO cuidado con los valores Nulos ya que a veces son impredecibles. > 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. No. Con ese UPDATE, el valor debe ser NULL. -- Martín Marqués select 'martin.marques' || '@' || 'gmail.com' DBA, Programador, Administrador - 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