Hi
Currently we do not allow TRUNCATE of a table when any Foreign Keys
point to that table.
At the same time we do allow one to delete all rows when
session_replication_role=replica
This causes all kinds of pain when trying to copy in large amounts of
data, especially at the start of logical replication set-up, as many
optimisations to COPY require the table to be TRUNCATEd .
The main two are ability to FREEZE while copying and the skipping of
WAL generation in case of wal_level=minimal, both of which can achieve
significant benefits when data amounts are large.
Is there any reason to not allow TRUNCATE when
session_replication_role=replica ?
Unless there are any serious objections, I will send a patch to also
allow TRUNCATE in this case.
Best Regards
Hannu