Re: [HACKERS] Restrict concurrent update/delete with UPDATE of partition key
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: amul sul <sulamul@gmail.com>
Cc: Pavan Deolasee <pavan.deolasee@gmail.com>,
Stephen Frost <sfrost@snowman.net>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-03-17T11:02:40Z
Lists: pgsql-hackers
On Mon, Mar 12, 2018 at 6:33 PM, amul sul <sulamul@gmail.com> wrote: > On Mon, Mar 12, 2018 at 11:45 AM, amul sul <sulamul@gmail.com> wrote: >> On Sat, Mar 10, 2018 at 5:25 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: >>> complete CTID. >> >> Sure, will do that. > > I did the aforementioned changes in the attached patch, thanks. > --- a/src/include/storage/itemptr.h +++ b/src/include/storage/itemptr.h @@ -23,7 +23,9 @@ * This is a pointer to an item within a disk page of a known file * (for example, a cross-link from an index to its parent table). * blkid tells us which block, posid tells us which entry in the linp - * (ItemIdData) array we want. + * (ItemIdData) array we want. blkid is marked InvalidBlockNumber when + * a tuple is moved to another partition relation due to an update of + * the partition key. I think instead of updating this description in itemptr.h, you should update it in htup_details.h where we already have a description of t_ctid. After this patch, the t_ctid column value in heap_page_items function will show it as InvalidBlockNumber and in the documentation, we have given the reference of htup_details.h. Other than that the latest version looks good to me. I have marked this patch as RFC as this is a small change, hope you can update the patch soon. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Raise error when affecting tuple moved into different partition.
- f16241bef7cc 11.0 landed
-
Handle INSERT .. ON CONFLICT with partitioned tables
- 555ee77a9668 11.0 cited
-
Change the way we mark tuples as frozen.
- 37484ad2aace 9.4.0 cited