Ensure consistent logical replication of datetime and float8 values.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Nov 2021 18:28:50 +0000 (14:28 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Nov 2021 18:28:50 +0000 (14:28 -0400)
commitf3d4019da5d026f2c3fe5bd258becf6fbb6b4673
treedc35d216fdc3e6c89bfe65e2fabe95e44a3dea58
parent01fc6527034a6f70ed44a078af8f636b1ab64947
Ensure consistent logical replication of datetime and float8 values.

In walreceiver, set the publisher's relevant GUCs (datestyle,
intervalstyle, extra_float_digits) to the same values that pg_dump uses,
and for the same reason: we need the output to be read the same way
regardless of the receiver's settings.  Without this, it's possible
for subscribers to misinterpret transmitted values.

Although this is clearly a bug fix, it's not without downsides:
subscribers that are storing values into some other datatype, such as
text, could get different results than before, and perhaps be unhappy
about that.  Given the lack of previous complaints, it seems best
to change this only in HEAD, and to call it out as an incompatible
change in v15.

Japin Li, per report from Sadhuprasad Patro

Discussion: https://postgr.es/m/CAFF0-CF=D7pc6st-3A9f1JnOt0qmc+BcBPVzD6fLYisKyAjkGA@mail.gmail.com
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c