Re: Concurrency bug in UPDATE of partition-key
Amit Khandekar <amitdkhan.pg@gmail.com>
From: Amit Khandekar <amitdkhan.pg@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-12T08:52:22Z
Lists: pgsql-hackers
Attachments
- fix_concurrency_bug.patch (application/octet-stream) patch
On 8 March 2018 at 16:55, Amit Khandekar <amitdkhan.pg@gmail.com> wrote: > The attached WIP patch is how the fix is turning out to be. > ExecDelete() passes back the epqslot returned by EvalPlanQual(). > ExecUpdate() uses this re-fetched tuple to re-process the row, just > like it does when heap_update() returns HeapTupleUpdated. > > I need to write an isolation test for this fix. Attached patch now has the isolation test included. The only difference with the earlier WIP patch is about some cosmetic changes, and some more comments. > > [1] : https://www.postgresql.org/message-id/CAJ3gD9d%3DwcbF-G00bYo4v5iWC69zm1UTSNxyRLpOgO9j4AtLWQ%40mail.gmail.com > > > -- > Thanks, > -Amit Khandekar > EnterpriseDB Corporation > The Postgres Database Company -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company
Commits
-
Allow using the updated tuple while moving it to a different partition.
- 40ca70ebcc9d 12.0 landed
- 0527df732beb 11.0 landed