I have a PostgreSQL 10 master database with a logical replication, but I faced with an issue. I added one more column (int, without default value) to a big table in master (weight 39gb, over 100 million entries) within a transaction, and updated its value with a same value in another column.
alter table test add column "onecolumn" int;
update table test set "onecolumn"="secondcolumn"
Finally it generated large WAL files with weight 39gb, so Postgres replicated whole table instead of only a column.
Why Postgres generated so big WAL files? Because real weight of adding one column with int should be much less.
Replica identity of the table is set to