Re: Logical Replication of sequences
От | shveta malik |
---|---|
Тема | Re: Logical Replication of sequences |
Дата | |
Msg-id | CAJpy0uDHKyS0niwq2gzxELq16KS8QLvx0EGJeacC5SLPbCL6DQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Logical Replication of sequences (shveta malik <shveta.malik@gmail.com>) |
Список | pgsql-hackers |
On Wed, Jul 24, 2024 at 11:52 AM shveta malik <shveta.malik@gmail.com> wrote: > > On Wed, Jul 24, 2024 at 9:17 AM Peter Smith <smithpb2250@gmail.com> wrote: > > > > I had a look at patches v20240720* (considering these as the latest > one) and tried to do some basic testing (WIP). Few comments: > > 1) > I see 'last_value' is updated wrongly after create-sub. Steps: > > ----------- > pub: > CREATE SEQUENCE myseq0 INCREMENT 5 START 100; > SELECT nextval('myseq0'); > SELECT nextval('myseq0'); > --last_value on pub is 105 > select * from pg_sequences; > create publication pub1 for all tables, sequences; > > Sub: > CREATE SEQUENCE myseq0 INCREMENT 5 START 100; > create subscription sub1 connection 'dbname=postgres host=localhost > user=shveta port=5433' publication pub1; > > --check 'r' state is reached > select pc.relname, pr.srsubstate, pr.srsublsn from pg_subscription_rel > pr, pg_class pc where (pr.srrelid = pc.oid); > > --check 'last_value', it shows some random value as 136 > select * from pg_sequences; Okay, I see that in fetch_remote_sequence_data(), we are inserting 'last_value + log_cnt' fetched from remote as 'last_val' on subscriber and thus leading to above behaviour. I did not understand why this is done? This may result into issue when we insert data into a table with identity column on subscriber (whose internal sequence is replicated); the identity column in this case will end up having wrong value. thanks Shveta
В списке pgsql-hackers по дате отправления: