Re: Inconsistencias con el catálogo?

From: "Alejandro D(dot) Burne" <alejandro(dot)dburne(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: PostgreEs <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Inconsistencias con el catálogo?
Date: 2008-08-16 15:08:23
Message-ID: 8398dc6d0808160808i5f9ef123m71b21061f897e90d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/8/16 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
> Alejandro D. Burne escribió:
>> Probablemente se haya planteado anteriormente el caso. Algunas veces
>> uno modifica estructuras de una vista remota, para ello (cuando
>> cambian los campos que la componen, por ejemplo) necesita eliminarla y
>> volver a crearla. El problema se presenta si esa vista es utilizada en
>> una función, ya que al borrarla no genera ninguna advertencia y luego
>> al ejecutar la función nos devuelve un error sobre un objeto
>> inexistente (adjunto un ejemplo).
>
> Esto fue corregido hasta cierto punto en 8.3. Tu ejemplo funciona:
>
> alvherre=> CREATE TABLE _test AS SELECT 1::SMALLINT;
> SELECT
> alvherre=> CREATE OR REPLACE VIEW _vtest AS SELECT * FROM _test;
> CREATE VIEW
> alvherre=> CREATE FUNCTION _ftest() RETURNS void AS
> alvherre-> $BODY$ BEGIN PERFORM 1 FROM _vtest; RETURN; END $BODY$ LANGUAGE 'plp
> sql' VOLATILE;
> CREATE FUNCTION
> alvherre=> SELECT * FROM _ftest();
> _ftest
> --------
>
> (1 ligne)
>
> alvherre=> DROP VIEW _vtest;
> DROP VIEW
> alvherre=> CREATE VIEW _vtest AS SELECT *, 2 FROM _test;
> CREATE VIEW
> alvherre=> SELECT * FROM _ftest();
> _ftest
> --------
>
> (1 ligne)
>

Ok, vamos a montar un nuevo equipo en el cual instalaremos 8.3; por
qué hablas de "corregido hasta cierto punto"? existe algún problema
pendiente?

Gracias y saludos, Alejandro

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marco Castillo 2008-08-16 18:33:58 Re: Postgres Vs. MySQL
Previous Message Alvaro Herrera 2008-08-16 15:06:05 Re: funcion que desde postgres se conecte a bd de informix