Hi, On 2019-08-22 10:19:04 +0530, Dilip Kumar wrote: > On Thu, Aug 22, 2019 at 9:58 AM Andres Freund <and...@anarazel.de> wrote: > > > > Hi, > > > > On 2019-08-22 09:51:22 +0530, Dilip Kumar wrote: > > > We can not know the complete size of the record even by reading the > > > header because we have a payload that is variable part and payload > > > length are stored in the payload header which again can be at random > > > offset. > > > > Wait, but that's just purely self inflicted damage, no? The initial > > length just needs to include the payload. And all this is not an issue > > anymore? > > > Actually, we store the undo length only at the end of the record and > that is for traversing the transaction's undo record chain during bulk > fetch. Ac such in the beginning of the record we don't have the undo > length. We do have uur_info but that just tell us which all optional > header are included in the record.
But why? It makes a *lot* more sense to have it in the beginning. I don't think bulk-fetch really requires it to be in the end - we can still process records forward on a page-by-page basis. Greetings, Andres Freund