Chapter 35.4, paragraph 4, of the PostgreSQL 9.0.1 Documentation says:
Any collection of commands in the SQL language can be packaged together and=
defined as a function. Besides SELECT queries, the commands can include da=
ta modification queries (INSERT, UPDATE, and DELETE), as well as other SQL =
commands. (The only exception is that you cannot put BEGIN, COMMIT, ROLLBAC=
K, or SAVEPOINT commands into a SQL function.)
This appears to be incorrect, in that attempting to include a VACUUM comman=
d in a query-language function elicits the following error message:
ERROR: VACUUM cannot be executed from a function or multi-command string
Thus, presumably "VACUUM" should be added to the list of exceptions.
=CB=89