On 12/07/2017 12:39 PM, Andres Freund wrote:

Not a problem. If you updated both rows, then there's two cases:
a) the update actually changed the column values. In which case the first 
per-row
    change that's replicated updates the first row, but the second one won't
    again find it as matching in all columns.
b) the update didn't actually change anything. In which case the same
    row gets updated twice, but because the column values didn't change,
    that doesn't matter.

I may be misunderstanding what is said above but if I ran a test:

Publisher:
reptest=# \d foorep
             Table "public.foorep"
 Column | Type | Collation | Nullable | Default
--------+------+-----------+----------+---------
 one    | text |           |          |
 two    | text |           |          |
Publications:
    "reptestpub"

reptest=# select * from foorep;
 one | two
-----+-----
 c   | b
 c   | b
 c   | b
(3 rows)

reptest=# update foorep set one = 'd';
UPDATE 3
reptest=# select * from foorep;
 one | two
-----+-----
 d   | b
 d   | b
 d   | b
(3 rows)

Subscriber before Publisher update:
reptest=# select * from foorep ;
 one | two
-----+-----
 c   | b
 c   | b
 c   | b
(3 rows)

Subscriber after Publisher update:
reptest=# select * from foorep ;
 one | two
-----+-----
 d   | b
 d   | b
 d   | b
(3 rows)

This is the behavior I was expecting. As I said, I may have misunderstood the responses but it is acting as I would expect.

Thanks!

JD

--
Command Prompt, Inc. || http://the.postgres.company/ || @cmdpromptinc

PostgreSQL centered full stack support, consulting and development.
Advocate: @amplifypostgres || Learn: https://postgresconf.org
*****     Unless otherwise stated, opinions are my own.   *****


Reply via email to