Re: pgsql: tableam: Add tuple_{insert, delete, update, lock} and use.
От | Andres Freund |
---|---|
Тема | Re: pgsql: tableam: Add tuple_{insert, delete, update, lock} and use. |
Дата | |
Msg-id | FBF80559-A61A-4081-9B24-08FB2009E3C3@anarazel.de обсуждение исходный текст |
Ответ на | Re: pgsql: tableam: Add tuple_{insert, delete, update, lock} and use. (Alexander Korotkov <a.korotkov@postgrespro.ru>) |
Список | pgsql-committers |
Hi, On March 24, 2019 11:17:15 AM PDT, Alexander Korotkov <a.korotkov@postgrespro.ru> wrote: >Great work, thank you very much! > >On Sun, Mar 24, 2019 at 6:02 AM Andres Freund <andres@anarazel.de> >wrote: >> Previously both delete/update/lock call-sites and the EPQ mechanism >had >> to have awareness of the specific tuple format to be able to fetch >the >> latest version of a tuple. Obviously that needs to be abstracted >> away. To do so, move the logic that find the latest row version into >> the AM. lock_tuple has a new flag argument, >> TUPLE_LOCK_FLAG_FIND_LAST_VERSION, that forces it to lock the last >> version, rather than the current one. It'd have been possible to do >> so via a separate callback as well, but finding the last version >> usually also necessitates locking the newest version, making it >> sensible to combine the two. This replaces the previous use of >> EvalPlanQualFetch(). Additionally HeapTupleUpdated, which previously >> signaled either a concurrent update or delete, is now split into two, >> to avoid callers needing AM specific knowledge to differentiate. > >BTW, given your skepticism during PGCon 2018 discussions, I didn't >expect my lock tuple patch [1] to get in. Well, nobody came up with a better design, and after polishing it didn't look that bad... > But if it finally got in, >I've expected to be listed as author... > >1. >https://www.postgresql.org/message-id/CAJrrPGc951F-R4Kfa4W47B5vHKeHsB2Y34zewp%3Db%2BAWSkF9RVA%40mail.gmail.com Sorry, I wasn't aware of the origin of they piece of work. Andres -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
В списке pgsql-committers по дате отправления: