[Pgsql-ayuda] Trigger y plpgsql

Alvaro Herrera alvherre@dcc.uchile.cl
Mon, 21 Apr 2003 21:03:41 -0400


On Mon, Apr 21, 2003 at 11:08:15PM +0000, fernando miguel villarroel noriel wrote:

>  Bueno mis problemas comienzan cuando trato de insertar un registro en una 
> tabla que posee un trigger (clientes); en concreto el error dice:
> 
> fmgr_info:function 16686: cache lookup failed.

Esto usualmente ocurre porque defines una funcion, creas el trigger, y
luego borras la funcion y la vuelves a crear.  En este escenario, el
sistema deja un cache del plan del trigger basado en el OID, pero cuando
botas la funcion y la creas de nuevo su OID cambia.

La solucion mas sencilla es botar el trigger y volver a crearlo; una
solucion mejor es usar CREATE OR REPLACE FUNCTION en lugar de DROP
FUNCTION - CREATE FUNCTION.

Creo que otra alternativa es volver a conectarte (el cache solo dura una
sesion), pero es incomodo.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
No dijo "Hello New Jersey\n", ni "Hello USA\n".