Re: CLUSTER not in multi-command string?

From: Kenneth Marshall <ktm(at)rice(dot)edu>
To: Michael Monnerie <michael(dot)monnerie(at)is(dot)it-management(dot)at>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: CLUSTER not in multi-command string?
Date: 2009-04-29 21:06:46
Message-ID: 20090429210646.GV26100@it.is.rice.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Wed, Apr 29, 2009 at 10:24:51PM +0200, Michael Monnerie wrote:
> 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

Issue a cluster command for each table individually in the
command stream.

Cheers,
Ken

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Michael Monnerie 2009-04-29 21:30:06 Re: CLUSTER not in multi-command string?
Previous Message Michael Monnerie 2009-04-29 20:24:51 Re: CLUSTER not in multi-command string?