Re: pgsql: Generic Messages for Logical Decoding
От | Andres Freund |
---|---|
Тема | Re: pgsql: Generic Messages for Logical Decoding |
Дата | |
Msg-id | F6638F7F-4DBD-4776-917E-8B27939174ED@anarazel.de обсуждение исходный текст |
Ответ на | Re: pgsql: Generic Messages for Logical Decoding (Fujii Masao <masao.fujii@gmail.com>) |
Ответы |
Re: pgsql: Generic Messages for Logical Decoding
|
Список | pgsql-committers |
On April 6, 2016 5:00:54 PM GMT+02:00, Fujii Masao <masao.fujii@gmail.com> wrote: >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 If you specify a file it only looks at records in that file. Try with -s. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
В списке pgsql-committers по дате отправления: