Re: CLUSTER not in multi-command string?

From: Michael Monnerie <michael(dot)monnerie(at)is(dot)it-management(dot)at>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: CLUSTER not in multi-command string?
Date: 2009-04-29 20:24:51
Message-ID: 200904292224.51283@zmi.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

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

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Kenneth Marshall 2009-04-29 21:06:46 Re: CLUSTER not in multi-command string?
Previous Message Joshua D. Drake 2009-04-29 15:59:20 Re: Rather large Postgres directory