Re: row filtering for logical replication

Поиск
Список
Период
Сортировка
От Dilip Kumar
Тема Re: row filtering for logical replication
Дата
Msg-id CAFiTN-ug0kSDJyYxkz9L5UMLjf1vA+7cnY8Co7zU=Vom1MfG7A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: row filtering for logical replication  (Dilip Kumar <dilipbalaut@gmail.com>)
Ответы Re: row filtering for logical replication  (Ajin Cherian <itsajin@gmail.com>)
Список pgsql-hackers
On Tue, Sep 21, 2021 at 4:29 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> Some more comments,
>
> In pgoutput_row_filter_update(), first, we are deforming the tuple in
> local datum, then modifying the tuple, and then reforming the tuple.
> I think we can surely do better here.  Currently, you are reforming
> the tuple so that you can store it in the scan slot by calling
> ExecStoreHeapTuple which will be used for expression evaluation.
> Instead of that what you need to do is to deform the tuple using
> tts_values of the scan slot and later call ExecStoreVirtualTuple(), so
> advantages are 1) you don't need to reform the tuple 2) the expression
> evaluation machinery doesn't need to deform again for fetching the
> value of the attribute, instead it can directly get from the value
> from the virtual tuple.
>

I have one more question, while looking into the
ExtractReplicaIdentity() function, it seems that if any of the "rep
ident key" fields is changed then we will write all the key fields in
the WAL as part of the old tuple, not just the changed fields.  That
means either the old tuple will be NULL or it will be having all the
key attributes.  So if we are supporting filter only on the "rep ident
key fields" then is there any need to copy the fields from the new
tuple to the old tuple?

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Denis Hirn
Дата:
Сообщение: Re: [PATCH] Allow multiple recursive self-references
Следующее
От: Jeevan Ladhe
Дата:
Сообщение: Re: refactoring basebackup.c