From: | "Alejandro D(dot) Burne" <alejandro(dot)dburne(at)gmail(dot)com> |
---|---|
To: | PostgreEs <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Inconsistencias con el catálogo? |
Date: | 2008-08-16 02:30:36 |
Message-ID: | 8398dc6d0808151930j4e2b44d2o7e7f11390e2d0a4b@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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). En bases de datos complejas de
muchos objetos muchas veces a uno se les puede escapar alguna
referencia y puede ser un dolor de cabeza.
Es un postgres 8.2.6 compilado para linux 64 bits.
Welcome to psql 8.1.4 (server 8.2.6), the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
WARNING: You are connected to a server with major version 8.2,
but your psql client is major version 8.1. Some backslash commands,
such as \d, might not work properly.
A=> CREATE TABLE _test AS SELECT 1::SMALLINT;
SELECT
A=> CREATE OR REPLACE VIEW _vtest AS SELECT * FROM _test;
CREATE VIEW
A=> CREATE FUNCTION _ftest() RETURNS void AS
A-> $BODY$
A$> BEGIN
A$> PERFORM 1 FROM _vtest;
A$> RETURN;
A$> END
A$> $BODY$
A-> LANGUAGE 'plpgsql' VOLATILE;
CREATE FUNCTION
A=> SELECT * FROM _ftest();
_ftest
--------
(1 row)
A=> DROP VIEW _vtest;
DROP VIEW
A=> CREATE VIEW _vtest AS SELECT *, 2 FROM _test;
CREATE VIEW
A=> SELECT * FROM _ftest();
ERROR: relation with OID 4566408 does not exist
CONTEXT: SQL statement "SELECT 1 FROM _vtest"
PL/pgSQL function "_ftest" line 2 at perform
Saludos, Alejandro
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-08-16 14:56:52 | Re: Inconsistencias con el catálogo? |
Previous Message | Cesar Erices | 2008-08-15 23:28:29 | Re: problemas con el servidor postgresql |