Pass more than the first XLogRecData entry to rm_desc, with WAL_DEBUG.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 26 Mar 2014 16:04:57 +0000 (18:04 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 26 Mar 2014 16:17:53 +0000 (18:17 +0200)
commitc2a6724823c14fd442c5441eb169b2581781fef0
tree203a1dd4a8d59eee0db2057846a357e8f65d7764
parentb69c4e65bea92ef617581365c365d2f43aa9e1fa
Pass more than the first XLogRecData entry to rm_desc, with WAL_DEBUG.

If you compile with WAL_DEBUG and enable it with wal_debug=on, we used to
only pass the first XLogRecData entry to the rm_desc routine. I think the
original assumprion was that the first XLogRecData entry contains all the
necessary information for the rm_desc routine, but that's a pretty shaky
assumption. At least standby_redo didn't get the memo.

To fix, piece together all the data in a temporary buffer, and pass that to
the rm_desc routine.

It's been like this forever, but the patch didn't apply cleanly to
back-branches. Probably wouldn't be hard to fix the conflicts, but it's
not worth the trouble.
src/backend/access/transam/xlog.c