Re: Logical Replication - behavior of ALTER PUBLICATION .. DROP TABLE and ALTER SUBSCRIPTION .. REFRESH PUBLICATION
От | Bharath Rupireddy |
---|---|
Тема | Re: Logical Replication - behavior of ALTER PUBLICATION .. DROP TABLE and ALTER SUBSCRIPTION .. REFRESH PUBLICATION |
Дата | |
Msg-id | CALj2ACWj=L=1v-PKPxT8KSvxwUftK+ZpLY1-pBztk1WgLvtgfg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Logical Replication - behavior of ALTER PUBLICATION .. DROP TABLE and ALTER SUBSCRIPTION .. REFRESH PUBLICATION (japin <japinli@hotmail.com>) |
Ответы |
Re: Logical Replication - behavior of ALTER PUBLICATION .. DROP TABLE and ALTER SUBSCRIPTION .. REFRESH PUBLICATION
|
Список | pgsql-hackers |
On Wed, Jan 13, 2021 at 2:36 PM japin <japinli@hotmail.com> wrote: > > In summary, I feel we need to fix the publisher sending the inserts > > even though the table is dropped from the publication, that is the > > patch patch proposed by japin. This solves the bug reported in this > > thread. > > > > And also, it's good to have the LogicalRepRelMap invalidation fix as a > > 0002 patch in invalidate_syncing_table_states, subscription_change_cb > > and logicalrep_rel_open as proposed by me. > > > > Thoughts? > > > > I think invalidate the LogicalRepRelMap is necessary. If the table isn't in > subscription, can we remove the LogicalRepRelMapEntry from LogicalRepRelMap? IIUC, it's not possible to know the relid of the alter publication...dropped table in the invalidation callbacks invalidate_syncing_table_states or subscription_change_cb, so it's better to set state of all the entries to SUBREL_STATE_UNKNOWN, so that, in the next logicalrep_rel_open call the function GetSubscriptionRelState will be called and the pg_subscription_rel will be read freshly. This is inline with the reasoning specified at [1]. [1] - https://www.postgresql.org/message-id/CAFiTN-udwuc_h0TaFrSEKb-Yo1vVvkjz9TDRw7VE3P-KiPSGbQ%40mail.gmail.com With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: