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"
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 |