Re: Declarative partitioning - Mailing list pgsql-hackers
From | David Fetter |
---|---|
Subject | Re: Declarative partitioning |
Date | |
Msg-id | 20150820131902.GB8691@fetter.org Whole thread Raw |
In response to | Re: Declarative partitioning (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>) |
Responses |
Re: Declarative partitioning
|
List | pgsql-hackers |
On Thu, Aug 20, 2015 at 06:58:24PM +0900, Amit Langote wrote: > On 2015-08-19 PM 09:52, David Fetter wrote: > > On Wed, Aug 19, 2015 at 04:30:39PM +0900, Amit Langote wrote: > > > > There are use cases where we need to warn people that their assertions > > need to be true, and if those assertions are not true, this will > > explode, leaving them to pick the resulting shrapnel out of their > > faces. There are other parts of the system where this is true, as > > when people write UDFs in C. > > > > As I understand it, NOT VALID means, "I assert that the tuples already > > here fit the constraint. Any changes will be checked against the > > constraint." > > > > I've seen cases where a gigantic amount of data is coming out of some > > distributed system which holds the constraint as an invariant. This > > let a DBA decide to add a NOT VALID constraint in order not to take > > the hit of a second full scan of the data, which might have made the > > import, and possibly the entire project, untenable. > > Ah, I understand the point of parameterization (TRUST). Seems like it > would be good to have with appropriate documentation of the same. Perhaps, > it might as well a parameter to the step 1 itself. So TRUST would obviate step 2? Better still! > >>>> 5. Detach partition > >>>> > >>>> ALTER TABLE partitioned_table > >>>> DETACH PARTITION partition_name [USING table_name] > >>>> > >>>> This removes partition_name as partition of partitioned_table. > >>>> The table continues to exist with the same name or 'table_name', > >>>> if specified. pg_class.relispartition is set to false for the > >>>> table, so it behaves like a normal table. > >>> > >>> Could this take anything short of an access exclusive lock on the > >>> parent? > >> > >> Yes, both the step 1 of ATTACH command and DETACH command take > >> access exclusive lock on the parent. They are rather quick metadata > >> changes, so should not stall others significantly, I think. > > > > So no. Weakening required locks has been something of an ongoing > > project, project-wide, and need not be part of the first cut of this > > long-needed feature. > > > > Do you mean ATTACH and DETACH, if they require access exclusive lock on > the parent, should not be in the first cut? Or am I misreading? Sorry I was unclear. ATTACH and DETACH should be in the first cut even if they require an access exclusive lock. Cheers, David. -- David Fetter <david@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter@gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate
pgsql-hackers by date: