Michael Monnerie wrote: > ERROR: CLUSTER cannot be executed from a function or multi-command > string > > I got this error from a script which tried: > psql -U postgres db1 -c 'cluster ; analyze' > > In the docs there's no word that it's not possible, and I wonder why > this is not allowed. Anybody knows? It's stupid, as I want to cluster > lots of tables, followed by analyze, and now I have to > psql -U postgres db1 -c 'cluster' > psql -U postgres db1 -c 'analyze' Multi-table cluster (i.e. the one where you don't specify one table to cluster) cannot be used in a transaction block, function, etc, and the FM does mention it: CLUSTER without any parameter reclusters all the previously-clustered tables in the current database that the calling user owns, or all such tables if called by a superuser. This form of CLUSTER cannot be executed inside a transaction block. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin