Re: Removal of currtid()/currtid2() and some table AM cleanup - Mailing list pgsql-hackers

From Inoue, Hiroshi
Subject Re: Removal of currtid()/currtid2() and some table AM cleanup
Date
Msg-id af762e97-9efc-7f8b-2d48-1c487ed42b3d@dream.email.ne.jp
Whole thread Raw
In response to Re: Removal of currtid()/currtid2() and some table AM cleanup  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Removal of currtid()/currtid2() and some table AM cleanup
List pgsql-hackers
Hi Michael,

Where do you test, on Windows or on *nix?
How do you test there?

regards,
Hiroshi Inoue

On 2020/06/24 11:11, Michael Paquier wrote:
> 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




pgsql-hackers by date:

Previous
From: Vik Fearing
Date:
Subject: Re: Allow CURRENT_ROLE in GRANTED BY
Next
From: tushar
Date:
Subject: Re: [Patch] ALTER SYSTEM READ ONLY