On Sat, Nov 11, 2017 at 1:05 AM, Robert Haas <robertmh...@gmail.com> wrote: > On Wed, Sep 27, 2017 at 7:07 AM, amul sul <sula...@gmail.com> wrote: >> Attaching POC patch that throws an error in the case of a concurrent update >> to an already deleted tuple due to UPDATE of partition key[1]. >> >> In a normal update new tuple is linked to the old one via ctid forming >> a chain of tuple versions but UPDATE of partition key[1] move tuple >> from one partition to an another partition table which breaks that chain. > > This patch needs a rebase. It has one whitespace-only hunk that > should possibly be excluded. > Thanks for looking at the patch.
> I think the basic idea of this is sound. Either you or Amit need to > document the behavior in the user-facing documentation, and it needs > tests that hit every single one of the new error checks you've added > (obviously, the tests will only work in combination with Amit's > patch). The isolation should be sufficient to write such tests. > > It needs some more extensive comments as well. The fact that we're > assigning a meaning to ip_blkid -> InvalidBlockNumber is a big deal, > and should at least be documented in itemptr.h in the comments for the > ItemPointerData structure. > > I suspect ExecOnConflictUpdate needs an update for the > HeapTupleUpdated case similar to what you've done elsewhere. > UPDATE of partition key v25[1] has documented this concurrent scenario, I need to rework on that document paragraph to include this behaviour, will discuss with Amit. Attached 0001 patch includes error check for 8 functions, out of 8 I am able to build isolation test for 4 functions -- ExecUpdate,ExecDelete, GetTupleForTrigger & ExecLockRows. And remaining are EvalPlanQualFetch, ExecOnConflictUpdate, RelationFindReplTupleByIndex & RelationFindReplTupleSeq. Note that check in RelationFindReplTupleByIndex & RelationFindReplTupleSeq will have LOG not an ERROR. Any help/suggestion to build test for these function would be much appreciated. 1] http://postgr.es/m/CAJ3gD9f4Um99sOJmVSEPj783VWw5GbXkgU3OWcYZJv=ipjt...@mail.gmail.com Regards, Amul
0001-POC-Invalidate-ip_blkid-v2.patch
Description: Binary data
0002-isolation-tests-v1.patch
Description: Binary data