Re: fmgr_info: cache lookup for language 311719522 failed

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Guillermo Schulman <gschulman_ml(at)yahoo(dot)com(dot)ar>
Cc: lista de correo de postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: fmgr_info: cache lookup for language 311719522 failed
Date: 2004-08-06 22:49:49
Message-ID: 20040806224949.GA7825@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Aug 06, 2004 at 05:38:05PM -0300, Guillermo Schulman wrote:
> Hola a todos.
> Por cierta situación se borró el lenguaje procedural 'plpgsql' en una de
> nuestras bases de datos al correr, quizás por error, lo siguiente:
> DROP PROCEDURAL LANGUAGE 'plpgsql';
>
> Luego se volvió a crear con este comando (la función handler no se borró
> en ningún momento):
> CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER
> "plpgsql_call_handler" LANCOMPILER 'PL/pgSQL';
>
> Y funcionó sin problemas.
> Pero ahora, cada vez que alguna función creada en ese lenguaje antes de
> todo esto, se genera el siguiente error:
>
> fmgr_info: cache lookup for language 311719522 failed

Haz lo siguiente:

begin;
update pg_proc set prolang = (select oid from pg_language where lanname='plpgsql')
where prolang=311719522;
select alguna_funcion_en_plpgsql(...);
-- si funciona bien:
commit;

eso actualiza la funcion para que use el nuevo manejador de plpgsql.
Ojo, jugar con los catalogos de sistema siempre es mala idea a menos que
uno sepa muy bien lo que esta haciendo y como deshacerlo ;-)

Suerte,

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Uno puede defenderse de los ataques; contra los elogios se esta indefenso"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message tgutierrez 2004-08-06 23:05:29 Re: Postgres tiene alguna recomendacion para la
Previous Message Patricio Muñoz 2004-08-06 22:12:48 Re: fmgr_info: cache lookup for language 311719522 failed