Re: invalidating cached plans

Neil Conway <neilc@samurai.com>

From: Neil Conway <neilc@samurai.com>
To: Qingqing Zhou <zhouqq@cs.toronto.edu>
Cc: pgsql-hackers@postgresql.org
Date: 2005-03-15T05:53:06Z
Lists: pgsql-hackers
Qingqing Zhou wrote:
> I don't quite understand the difference between a SQL function and a
> PL/PgSQL function here - since there is a overlapped functionality that we
> could implement by SQL function or by PL/PgSQL function.

The difference is between an inlined function (which is integrated 
directly into the plan of the query that invokes it) and a function that 
is not inlined. Only SQL functions can be inlined, and only some SQL 
functions at that. With an out-of-line function, we just invoke the 
function via the fmgr infrastructure -- if it chooses to create any 
plans (e.g. via SPI), that is its own business, and they would be 
treated as distinct plans by the cache module.

-Neil