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>,
"Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Date: 2020-06-25T13:14:00Z
Lists: pgsql-hackers
Hi, I seem to have invalidated KEYSET-DRIVEN cursors used in positioned-update test . It was introduced by the commit 4a272fd but was invalidated by the commit 2be35a6. I don't object to the removal of currtid(2) because keyset-driven cursors in psqlodbc are changed into static cursors in many cases and I've hardly ever heard a complaint about it. 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
Commits
-
Remove catalog function currtid()
- 7b94e999606e 14.0 landed