]> granicus.if.org Git - postgresql/commit
In GIN recompression code, use mmemove rather than memcpy, for vacuum.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 24 Jan 2014 08:42:38 +0000 (10:42 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 24 Jan 2014 08:48:45 +0000 (10:48 +0200)
commit398cf255ad50db86ca665b75582317d4e795242a
tree3ee0fcb797d98273d0d14687e69542257a8f4724
parentfbe19ee3b87590f1006d072be5fecf8a33d4e9f5
In GIN recompression code, use mmemove rather than memcpy, for vacuum.

When vacuuming a data leaf page, any compressed posting lists that are not
modified, are copied back to the buffer from a later location in the same
buffer rather than from  a palloc'd copy. IOW, they are just moved
downwards in the same buffer. Because the source and destination addresses
can overlap, we must use memmove rather than memcpy.

Report and fix by Alexander Korotkov.
src/backend/access/gin/gindatapage.c