On Thu, 2024-01-25 at 16:16 +0300, Aleksander Alekseev wrote: > Hi, > > > > Here is the corrected patch. > > > > Thank you for updating the patch! I have some comments: > > Thanks for the review. > > > - tuple = (ReorderBufferTupleBuf *) > > + tuple = (HeapTuple) > > MemoryContextAlloc(rb->tup_context, > > - > > sizeof(ReorderBufferTupleBuf) + > > + HEAPTUPLESIZE + > > MAXIMUM_ALIGNOF + > > alloc_len); > > - tuple->alloc_tuple_size = alloc_len; > > - tuple->tuple.t_data = ReorderBufferTupleBufData(tuple); > > + tuple->t_data = (HeapTupleHeader)((char *)tuple + HEAPTUPLESIZE); > > > > Why do we need to add MAXIMUM_ALIGNOF? since HEAPTUPLESIZE is the > > MAXALIGN'd size, it seems we don't need it. heap_form_tuple() does a > > similar thing but it doesn't add it. > > Indeed. I gave it a try and nothing crashed, so it appears that > MAXIMUM_ALIGNOF is not needed. > > > --- > > xl_parameter_change *xlrec = > > - (xl_parameter_change *) > > XLogRecGetData(buf->record); > > + (xl_parameter_change *) > > XLogRecGetData(buf->record); > > > > Unnecessary change. > > That's pgindent. Fixed. > > > --- > > -/* > > - * Free a ReorderBufferTupleBuf. > > - */ > > -void > > -ReorderBufferReturnTupleBuf(ReorderBuffer *rb, ReorderBufferTupleBuf > > *tuple) > > -{ > > - pfree(tuple); > > -} > > - > > > > Why does ReorderBufferReturnTupleBuf need to be moved from > > reorderbuffer.c to reorderbuffer.h? It seems not related to this > > refactoring patch so I think we should do it in a separate patch if we > > really want it. I'm not sure it's necessary, though. > > OK, fixed. >
I walked through v6 and didn't note any issues. I do want to ask, the patch alters ReorderBufferReturnTupleBuf() and drops the unused parameter ReorderBuffer *rb. It seems that ReorderBufferFreeSnap(), ReorderBufferReturnRelids(), ReorderBufferImmediateInvalidation(), and ReorderBufferRestoreCleanup() also pass ReorderBuffer *rb but do not use it. Would it be beneficial to implement a separate patch to remove this parameter from these functions also? Thanks, Reid