Re: Removal of currtid()/currtid2() and some table AM cleanup

Inoue, Hiroshi <h-inoue@dream.email.ne.jp>

From: "Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>, Hiroshi Saito <hiroshi@winpg.jp>
Date: 2020-06-05T13:25:00Z
Lists: pgsql-hackers

On 2020/06/05 15:22, Michael Paquier wrote:
> On Wed, Jun 03, 2020 at 10:10:21PM +0900, Inoue, Hiroshi wrote:
>> On 2020/06/03 11:14, Michael Paquier wrote:
>>> I have been looking at the ODBC driver and the need for currtid() as
>>> well as currtid2(), and as mentioned already in [1], matching with my
>>> lookup of things, these are actually not needed by the driver as long
>>> as we connect to a server newer than 8.2 able to support RETURNING.
>> Though currtid2() is necessary even for servers which support RETURNING,
>> I don't object to remove it.
> In which cases is it getting used then?

Keyset-driven cursors always detect changes made by other applications
(and themselves). currtid() is necessary to detect the changes.
CTIDs are changed by updates unfortunately.

regards,
Hiroshi Inoue

>    From what I can see there is
> zero coverage for that part in the tests.  And based on a rough read
> of the code, this would get called with LATEST_TUPLE_LOAD being set,
> where there is some kind of bulk deletion involved.  Couldn't that be
> a problem?
> --
> Michael

Commits

  1. Remove catalog function currtid()