Inconsistencias con el catálogo?

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

Responses

Browse pgsql-es-ayuda by date

  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