Add support for invoking parser callback hooks via SPI and in cached plans.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 9bedd128d6ed83798004b3c7ddc33f33703ccf23
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2009-11-04T22:26:08Z
Releases: 9.0.0
Add support for invoking parser callback hooks via SPI and in cached plans.

As proof of concept, modify plpgsql to use the hooks.  plpgsql is still
inserting $n symbols textually, but the "back end" of the parsing process now
goes through the ParamRef hook instead of using a fixed parameter-type array,
and then execution only fetches actually-referenced parameters, using a hook
added to ParamListInfo.

Although there's a lot left to be done in plpgsql, this already cures the
"if (TG_OP = 'INSERT' and NEW.foo ...)"  problem, as illustrated by the
changed regression test.

Files