When creating index, why pointing to old version of tuple - Mailing list pgsql-hackers

From David G. Johnston
Subject When creating index, why pointing to old version of tuple
Date
Msg-id CAKFQuwYEXNGxvrziL_gXM=xzt=C7wi4mUVbTb2pTw9AxcYE45Q@mail.gmail.com
Whole thread Raw
In response to Re: When creating index, why pointing to old version of tuple  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: When creating index, why pointing to old version of tuple
List pgsql-hackers
On Friday, August 1, 2025, Chao Li <li.evan.chao@gmail.com> wrote:

> But what if the table already has an index? 

I have tested that, if I create the index first, then update the tuple, the index entry will only point to the new version of data. That's why my question was specifically about creating the index after updating the tuple.

IIUC it’s just a seemingly low-value optimization that no one has bothered to implement. The code path in question handles both initial creation and reindexing and the later needs to keep the chain intact for concurrent readers.  It just doesn’t seem worth it to offer 10% off new index creations and then charging full price thereafter.  It could actually be a bit counter-productive since your initial evaluation period would be skewed toward the positive.

David J.

pgsql-hackers by date:

Previous
From: Japin Li
Date:
Subject: Re: [WIP]Vertical Clustered Index (columnar store extension) - take2
Next
From: "Zhijie Hou (Fujitsu)"
Date:
Subject: RE: Add support for specifying tables in pg_createsubscriber.