Re: error-free disabling of individual child partition - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: error-free disabling of individual child partition
Date
Msg-id 1148406539.2646.896.camel@localhost.localdomain
Whole thread Raw
In response to Re: error-free disabling of individual child partition  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: error-free disabling of individual child partition  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: error-free disabling of individual child partition  (Hannu Krosing <hannu@skype.net>)
List pgsql-hackers
On Tue, 2006-05-23 at 13:17 -0400, Tom Lane wrote:
> Simon Riggs <simon@2ndquadrant.com> writes:
> > - ADD/DROP are opposites; you can use the other one to undo an action
> > taken in haste, error etc
> 
> It's not going to be that easy.  What exactly will happen to the child
> table's attislocal/attinhcount settings, and why, during ADD or DROP?

Never is round here ;-)

attislocal: If you set this to False, you wouldn't be able to set it
back again. If you leave it as it is, you'd never be able to recursively
drop a column. If you change it, you'll never be able to stop someone
from dropping a previously defined local column.
Proposal:  
1. attislocal is not touched. 
That means if you want to create a new partition you do this:

CREATE TABLE newChild () INHERITS (template);

... do some processing ...

ALTER TABLE newChild ADD INHERITS parent;

or this:

CREATE TABLE newChild () INHERITS (parent);
ALTER TABLE newChild DROP INHERITS parent;

... do some processing ...

ALTER TABLE newChild ADD INHERITS parent;

Neither of which I like.

2. attislocal is always set False when an appropriate ADD INHERITS is
actioned. Not ever set back again.

attinhcount changes as appropriate - up for ADDs and down for DROPs.

--  Simon Riggs              EnterpriseDB   http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: file-locking and postmaster.pid
Next
From: Adis Nezirovic
Date:
Subject: Re: file-locking and postmaster.pid