Hi Peter, Thanks for the reviews! I'll reply to both of your reviews separately.
> >> 10. > >> > >> + /* we only need to allocate once */ > >> + if (eq == NULL) > >> + eq = palloc0(sizeof(*eq) * outslot->tts_tupleDescriptor->natts); > >> > >> But shouldn't you also free this 'eq' before the function returns, to > >> prevent leaking memory? > >> > > > > Two notes here. First, this is allocated inside ApplyMessageContext, > which seems to be reset per tuple change. So, that seems like a good > boundary to keep this allocation in memory. > > > > OK, fair enough. Is it worth adding a comment to say that or not? > Yes, sounds good. Added 1 sentence comment, I'll push this along with my other changes on v10. Thanks, Onder