On 2018-10-31 09:15, Simon Riggs wrote:
On Wed, 31 Oct 2018 at 07:58, Erikjan Rijkers <e...@xs4all.nl> wrote:


I have also noticed that logical replication isn't possible on tables
with a generated column.  That's a shame but I suppsoe that is as
expected.


Couldn't see anything like that in the patch. Presumably unintended
consequence. The generated value needs to be in WAL, so decoding it should
be trivial.


These log messages occur on attempting at logical replication:

( table t1 has no generated columns; replicates fine.
  table t2 has one generated column; replication fails: see below )

LOG:  database system is ready to accept connections
LOG: logical replication apply worker for subscription "sub1" has started LOG: logical replication table synchronization worker for subscription "sub1", table "t1" has started LOG: logical replication table synchronization worker for subscription "sub1", table "t2" has started LOG: logical replication table synchronization worker for subscription "sub1", table "t1" has finished
ERROR:  column "i2" is a generated column
DETAIL:  Generated columns cannot be used in COPY.
LOG: background worker "logical replication worker" (PID 22252) exited with exit code 1



Virtual columns wouldn't need to be replicated.

I guess we might choose to replicate generated cols as a value, or leave
them out and let them be generated on the downstream side. The default
should be to just treat them as a value.

--
Simon Riggs                http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Reply via email to