On Thu, Dec 7, 2023, at 11:39 AM, John Scalia wrote:
In the documentation, Under CREATE PUBLICATION under parameters
publish (string)
This parameter determines which DML operations will be published by the new publication to the subscribers. The value is comma-separated list of operations. The default is to publish all actions, and so the default value for this option is ‘insert, update, delete, truncate’.
From what I’ve seen, truncate is not set to published by default. I’m looking at a server now with 4 publications on it, and none has truncate set to true. One of these I created, and I know I didn’t set any values. All the other values are set, but not truncate.
What's your Postgres version? The truncate option was introduced in v11. You
didn't provide an evidence that's a bug. Since v11 we have the same behavior:
postgres=# create publication pub1;
CREATE PUBLICATION
postgres=# \x
Expanded display is on.
postgres=# select * from pg_publication;
-[ RECORD 1 ]+-----
pubname | pub1
pubowner | 10
puballtables | f
pubinsert | t
pubupdate | t
pubdelete | t
pubtruncate | t
postgres=# select version();
-[ RECORD 1 ]-----------------------------------------------------------------------------------------------
version | PostgreSQL 11.21 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
Maybe you are using a client that is *not* providing truncate as an operation.