Rory,
> I don't appear to be able to use transactions in functions. Needless to
> say, transactions work in psql. The function below works if I take the
> TRANSACTION bits out. Help much appreciated!
That is correct. Functions include an implied transaction in PostgreSQL,
unless they are part of a larger transaction. Postgres does not currently
support "nested" transactions, so any attempt to use them inside a function
will fail.
It's on the "TODO" list.
--
-Josh Berkus
Aglio Database Solutions
San Francisco