On Mittwoch 29 April 2009 Alvaro Herrera wrote: > 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. Ah, found this now, in the docs 8.1-8.3. But strange thing is.. [I sent this mail this morning at 07:08 local time but it didn't make it through, without me getting any note:] I looked further now: Above error was from Postgres 8.3.5 on openSUSE 11.1, but it works on Postgres 8.1.11 from openSUSE 10.2. Why did it become worse? According to docs this shouldn't be possible even in 8.1. Is there any change I can make a single db call with cluster & analyze, like: cluster ; begin ; analyze ; commit mfg zmi -- // Michael Monnerie, Ing.BSc ----- http://it-management.at // Tel: 0660 / 415 65 31 .network.your.ideas. // PGP Key: "curl -s http://zmi.at/zmi.asc | gpg --import" // Fingerprint: AC19 F9D5 36ED CD8A EF38 500E CE14 91F7 1C12 09B4 // Keyserver: wwwkeys.eu.pgp.net Key-ID: 1C1209B4 -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin