From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | "Inoue, Hiroshi" <h-inoue(at)dream(dot)email(dot)ne(dot)jp> |
Cc: | Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Hiroshi Saito <hiroshi(at)winpg(dot)jp>, "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com> |
Subject: | Re: Removal of currtid()/currtid2() and some table AM cleanup |
Date: | 2020-06-24 02:11:10 |
Message-ID: | 20200624021110.GA130132@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 23, 2020 at 02:02:33PM +0900, Michael Paquier wrote:
> Actually, while reviewing the code, the only code path where we use
> currtid2() involves positioned_load() and LATEST_TUPLE_LOAD. And the
> only location where this happens is in SC_pos_reload_with_key(), where
> I don't actually see how it would be possible to not have a keyset and
> still use a CTID, which would led to LATEST_TUPLE_LOAD being used. So
> could it be possible that the code paths of currtid2() are actually
> just dead code?
I have dug more into this one, and we actually stressed this code path
quite a lot up to commit d9cb23f in the ODBC driver, with tests
cursor-block-delete, positioned-update and bulkoperations particularly
when calling SQLSetPos(). However, 86e2e7a has reworked the code in
such a way that we visibly don't use anymore CTIDs if we don't have a
keyset, and that combinations of various options like UseDeclareFetch
or UpdatableCursors don't trigger this code path anymore. In short,
currtid2() does not get used. Inoue-san, Saito-san, what do you
think? I am adding also Tsunakawa-san in CC who has some experience
in this area.
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2020-06-24 02:11:57 | Re: Default setting for enable_hashagg_disk |
Previous Message | Andres Freund | 2020-06-24 02:06:07 | Re: Threading in BGWorkers (!) |