Re: Posible Bug

From: Martín Marqués <martin(dot)marques(at)gmail(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 14:40:28
Message-ID: CABeG9Lui2ei-5KRosW53nBh3767ORNFCykrg59kyjDJ_wWaxyA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 3 de mayo de 2013 08:43, Oswaldo <listas(at)soft-com(dot)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(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo 2013-05-03 14:57:36 Re: Posible Bug
Previous Message marcosrios 2013-05-03 13:55:28 Re: COPY TO a filename dinamico