Re: Logical Replication Custom Column Expression

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Logical Replication Custom Column Expression
Дата
Msg-id CAA4eK1JnZbEhLXJ9T+sNKBJTWmP27H7eim4vs1sTdthX0hOGkQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Logical Replication Custom Column Expression  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Ответы Re: Logical Replication Custom Column Expression
Список pgsql-hackers
On Mon, Nov 21, 2022 at 5:05 PM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
>
> On Sat, Nov 19, 2022 at 6:47 PM Stavros Koureas
> <koureasstavros@gmail.com> wrote:
> >
> > What does not support is the option for defining custom column expressions, as keys or values, into the upstream
(publication).This will give more flexibility into making replication from multiple upstreams into less downstreams
addingmore logic. For instance, in a project for analytical purposes there is the need to consolidate data from
multipledatabases into one and at the same time keep the origin of each replicated data identified by a tenanant_id
column.In this case we also need the ability to define the new column as an additional key which will participate into
thedestination table. 
> >
> > Tenant 1 table
> > id serial pk
> > description varchar
> >
> > Tenant 2 table
> > id integer pk
> > description varchar
> >
> > Group table
> > tenant integer pk
> > id integer pk
> > description varchar
> >
> > Possible syntax to archive that
> > CREATE PUBLICATION pb_test FOR TABLE test ({value:datatype:iskey:alias} ,"id", "name")
> >
> > Example
> > CREATE PUBLICATION pb_test FOR TABLE test ({1:integer:true:tenant} ,"id", "name")
>
> I think that's a valid usecase.
>
> This looks more like a subscription option to me. In multi-subscriber
> multi-publisher scenarios, on one subscriber a given upstream may be
> tenant 1 but on some other it could be 2. But I don't think we allow
> specifying subscription options for a single table. AFAIU, the origin
> ids are available as part of the commit record which contained this
> change; that's how conflict resolution is supposed to know it. So
> somehow the subscriber will need to fetch those from there and set the
> tenant.
>

Yeah, to me also it appears that we can handle it on the subscriber
side. We have the provision of sending origin information in proto.c.
But note that by default publishers won't have any origin associated
with change unless someone has defined it. I think this work needs
more thought but sounds to be an interesting feature.

--
With Regards,
Amit Kapila.



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

Предыдущее
От: Dimos Stamatakis
Дата:
Сообщение: Fix for visibility check on 14.5 fails on tpcc with high concurrency
Следующее
От: Masahiko Sawada
Дата:
Сообщение: Re: [BUG] FailedAssertion in SnapBuildPurgeOlderTxn