Peter Eisentraut wrote:
> If you upgrade from PostgreSQL 8.0 to 8.1 you effectively also upgrade
> from "PL/pgSQL 8.0" to "PL/pgSQL 8.1". That's why we can and should
> and do alter the installation parameters of that language at the same
> time. But you don't necessarily upgrade from PL/foo 0.77 to PL/foo
> 0.78 at that time (instead you just recompile 0.77), which is why we
> cannot really randomly include information on PL/foo in pltemplate
> unless we make very particular arrangements with that development team,
> which I don't see being done in any proposed case.
Well, since I'm the development team of PL/php, I can make arrangements
with myself that the information on pg_pltemplate about PL/php is
correct :-) In particular, PL/php provides a call handler called
"plphp_call_handler" and a validator called plphp_validator.
In general, the validator may be a stub, which means that if a
particular PL team does not have a validator but wants to build one
eventually, then they provide a function that does nothing. This is not
a particularly hard requisite to fulfill. (In the particular case of
PL/php, we already provide a non-stub validator so this point is moot.)
(Oh, also note that the previous version of PL/php is so hard to install
and so generally broken, that I wouldn't even worry about it not
providing the necessary validator function. In practice you do need the
as-of-yet unreleased PL/php 1.1 to do any serious work anyway.)
> pltemplate would more or less contain a hidden versioned dependency on
> the external language. (pltemplate says, "The last known version of
> PL/foo at the time of release supports these features." and you need to
> use at least that version or the language installation might be
> broken.)
Well, currently the group of features is a function handler and a
validator. It's easy to fulfill both; the former, because if there
isn't a call handler then there isn't PL in the first place. The
latter, because you can provide an empty function. If we expand the
catalog in the future, we can talk about what should we fill the entries
with at that time.
There is no other requirement imposed by pltemplate. You need to have
no special symbols or whatever.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.