From: | Oswaldo <listas(at)soft-com(dot)es> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Posible Bug |
Date: | 2013-05-03 16:10:13 |
Message-ID: | 5183E165.7030604@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 03/05/2013 17:12, Jaime Casanova escribió:
> 2013/5/3 Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>:
>> Oswaldo escribió:
>>
>>>
>>> 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.
>>
>
> Saludos,
>
> El caso parece que ya es conocido, por ejemplo en
> http://www.postgresql.org/docs/9.2/static/sql-createdomain.html dice:
> """
> NOT NULL
>
> Values of this domain are normally prevented from being null. However,
> it is still possible for a domain with this constraint to take a null
> value if it is assigned a matching domain type that has become null,
> e.g. via a LEFT OUTER JOIN, or INSERT INTO tab (domcol) VALUES
> ((SELECT domcol FROM tab WHERE false)).
> """
Eso es exactamente lo que esta pasando.
También sucede si desde una funcion normal o trigger se intenta esto:
select into v_rec * from test2 where false;
update test2 set dom=v_rec.dom;
El declarar en el dominio explícitamente un check tampoco vale:
create domain t_dom as varchar default '' CONSTRAINT "dominio no nulo"
check (value is not null);
Da la impresión de que al provenir el valor de una columna del mismo
tipo se omiten los chequeos.
>
> Sin embargo, concuerdo en que debería reportarse para ver si eso
> conlleva a alguna resolución
>
Ok, lo reportaré. De momento seguiré el consejo de Álvaro y revisaré
todas las declaraciones de tablas agregándole el not null a las columnas
aunque ya esté definido en el dominio.
Gracias por vuestra ayuda.
--
Oswaldo
-
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 | Martín Marqués | 2013-05-03 16:14:41 | Re: Posible Bug |
Previous Message | Omar Beltrán Cano | 2013-05-03 16:00:25 | Re: Problema con consulta compleja |