Mark Hollomon <mhh@mindspring.com> writes:
> plpgsql. plperl and pltcl all cache the result of a compile of prosrc.
plpgsql does, but I didn't think the other two do.
> I would like to propose that a new attribute be added to pg_proc
> 'proserial'. 'CREATE FUNCTION' will set proserial to 0. 'ALTER
> FUNCTION' will increment it each time. It would be up to the
> individual PL handlers to check to make sure that their cache is not
> out of date.
This is completely inadequate for plpgsql, if not for the others,
because plpgsql also caches query plans --- which depend on more than
the text of the function. I don't think it's worth our time to put
in a partial solution; we need to think about a generic cache
invalidation mechanism.
Jan Wieck has posted some comments about this, and I think there was
also some discussion in connection with Karel Zak's proposed cross-
backend query plan cache. Check the archives...
regards, tom lane