Re: pgsql: Generic Messages for Logical Decoding
От | Fujii Masao |
---|---|
Тема | Re: pgsql: Generic Messages for Logical Decoding |
Дата | |
Msg-id | CAHGQGwF3X1v5u8x+Nz_U5Ae_HJDpjGZVa9PXBw7LXQq7pwdeMA@mail.gmail.com обсуждение исходный текст |
Ответ на | pgsql: Generic Messages for Logical Decoding (Simon Riggs <simon@2ndQuadrant.com>) |
Ответы |
Re: pgsql: Generic Messages for Logical Decoding
|
Список | pgsql-committers |
On Wed, Apr 6, 2016 at 6:08 PM, Simon Riggs <simon@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
В списке pgsql-committers по дате отправления: