more isolation tests for update tuple routing
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-04-09T09:19:49Z
Lists: pgsql-hackers
Attachments
- parted-update-EPQ-more-isolation-tests-1.patch (text/plain) patch
Continuing the discussion at: https://www.postgresql.org/message-id/26571.1554741097%40sss.pgh.pa.us Tom wrote: > It struck me just as I was pushing it that this test doesn't exercise > EPQ with any of the interesting cases for partition routing (ie where > the update causes a move to a different partition). It would likely > be a good idea to have test coverage for all of these scenarios: > > * EPQ where the initial update would involve a partition change, > and that's still true after reapplying the update to the > concurrently-updated tuple version; > > * EPQ where the initial update would *not* require a partition change, > but we need one after reapplying the update to the > concurrently-updated tuple version; > > * EPQ where the initial update would involve a partition change, > but that's no longer true after reapplying the update to the > concurrently-updated tuple version. Per what Andres mentioned in his reply on the original thread [1], in scenarios 1 and 2 where the 1st session's update causes a row to move, session 2 produces the following error when trying to update the same row: ERROR: tuple to be locked was already moved to another partition due to concurrent update Do we want those tests like that (with the error that is) in the eval-plan-qual isolation suite? I came up with the attached. Thanks, Amit [1] https://www.postgresql.org/message-id/20190408164138.izvfg2czwcofg5ev%40alap3.anarazel.de
Commits
-
Test some more cases with partitioned tables in EvalPlanQual.
- a2418f9e2387 12.0 landed