On Wed, Apr 6, 2016 at 6:08 PM, Simon Riggs <si...@2ndquadrant.com> wrote: > Generic Messages for Logical Decoding > > API and mechanism to allow generic messages to be inserted into WAL that are > intended to be read by logical decoding plugins. This commit adds an optional > new callback to the logical decoding API.
When I specify very long text message, pg_xlogdump failed to dump correctly the WAL file which should contain that inserted text message. Isn't this a bug? You can reproduce the problem by the following steps. =# SELECT pg_xlogfile_name(pg_switch_xlog()); pg_xlogfile_name -------------------------- 000000010000000000000003 (1 row) =# SELECT pg_xlogfile_name(pg_current_xlog_location()); pg_xlogfile_name -------------------------- 000000010000000000000003 (1 row) =# SELECT pg_logical_emit_message(true, 'test', repeat('0123456789ABCDEFG', 1024*1024)); pg_logical_emit_message ------------------------- 0/510CD40 (1 row) =# SELECT pg_xlogfile_name(pg_current_xlog_location()); pg_xlogfile_name -------------------------- 000000010000000000000005 (1 row) =# insert into t values(0,0); INSERT 0 1 postgres=# SELECT pg_xlogfile_name(pg_current_xlog_location()); pg_xlogfile_name -------------------------- 000000010000000000000005 (1 row) The WAL record of pg_logical_emit_message() should be stored in 000000010000000000000004 and 000000010000000000000005. The WAL record of last insertion should be stored in 000000010000000000000005. But the results of pg_xlogdump were wrong as follows. $ pg_xlogdump data/pg_xlog/000000010000000000000004 rmgr: Standby len (rec/tot): 24/ 50, tx: 0, lsn: 0/04000028, prev 0/030146F8, desc: RUNNING_XACTS nextXid 863 latestCompletedXid 862 oldestRunningXid 863 $ pg_xlogdump data/pg_xlog/000000010000000000000005 pg_xlogdump: FATAL: could not find a valid record after 0/5000000 Regards, -- Fujii Masao -- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers