Print logical WAL message content
От | Ashutosh Bapat |
---|---|
Тема | Print logical WAL message content |
Дата | |
Msg-id | CAExHW5sWx49rKmXbg5H1Xc1t+nRv9PaYKQmgw82HPt6vWDVmDg@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Print logical WAL message content
|
Список | pgsql-hackers |
Hi, Right now pg_waldump just prints whether the message is transactional or not and its size. That doesn't help much to understand the message itself. If it prints the contents of a logical WAL message, it helps debugging logical replication related problems. Prefix is a null-terminated ASCII string, so no problem printing that. Even the contents can be printed as a series of hex bytes. Here's a patch to do that. I tested this manually as below postgres=# select pg_logical_emit_message(false, 'some_prefix', 'some message'::text); pg_logical_emit_message ------------------------- 0/1570658 (1 row) $> pg_waldump --start 0/1570600 -p data/ first record is after 0/1570600, at 0/1570608, skipping over 8 bytes rmgr: LogicalMessage len (rec/tot): 74/ 74, tx: 0, lsn: 0/01570608, prev 0/015705D0, desc: MESSAGE nontransactional message size 12 bytes, prefix some_prefix; mesage: 73 6F 6D 65 20 6D 65 73 73 61 67 65 rmgr: Standby len (rec/tot): 50/ 50, tx: 0, lsn: 0/01570658, prev 0/01570608, desc: RUNNING_XACTS nextXid 504 latestCompletedXid 503 oldestRunningXid 504 pg_waldump: fatal: error in WAL record at 0/1570658: invalid record length at 0/1570690: wanted 24, got 0 I didn't find any tests for pg_waldump to test its output, so haven't added one in the patch. -- Best Wishes, Ashutosh Bapat
Вложения
В списке pgsql-hackers по дате отправления: