@@ -778,8 +778,11 @@ DecodeInsert(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
778
778
Pointer rec_data ;
779
779
780
780
rec_data = (Pointer ) XLogRecGetData (r );
781
+
782
+ /* step over pd_xid_base */
781
783
if (isinit )
782
784
rec_data += sizeof (TransactionId );
785
+
783
786
xlrec = (xl_heap_insert * ) rec_data ;
784
787
785
788
/* only interested in our database */
@@ -835,8 +838,11 @@ DecodeUpdate(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
835
838
Pointer rec_data ;
836
839
837
840
rec_data = (Pointer ) XLogRecGetData (r );
841
+
842
+ /* step over pd_xid_base */
838
843
if (isinit )
839
844
rec_data += sizeof (TransactionId );
845
+
840
846
xlrec = (xl_heap_update * ) rec_data ;
841
847
842
848
/* only interested in our database */
@@ -876,6 +882,8 @@ DecodeUpdate(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
876
882
/* caution, remaining data in record is not aligned */
877
883
data = XLogRecGetData (r ) + SizeOfHeapUpdate ;
878
884
datalen = XLogRecGetDataLen (r ) - SizeOfHeapUpdate ;
885
+
886
+ /* step over pd_xid_base */
879
887
if (isinit )
880
888
{
881
889
data += sizeof (TransactionId );
@@ -970,8 +978,11 @@ DecodeMultiInsert(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
970
978
Pointer rec_data ;
971
979
972
980
rec_data = (Pointer ) XLogRecGetData (r );
981
+
982
+ /* step over pd_xid_base */
973
983
if (isinit )
974
984
rec_data += sizeof (TransactionId );
985
+
975
986
xlrec = (xl_heap_multi_insert * ) rec_data ;
976
987
977
988
/* only interested in our database */
0 commit comments