]> granicus.if.org Git - postgresql/commit
In bms_add_member(), use repalloc() if the bms needs to be enlarged.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 30 Sep 2013 13:37:00 +0000 (16:37 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 30 Sep 2013 13:54:03 +0000 (16:54 +0300)
commitee01d848f39400c8524c66944ada6fde47894978
tree593aa96f16d6dbd5d49ff7569d003d217ce76cb4
parent357f7521384df34c697b3544115622520a6a0e9f
In bms_add_member(), use repalloc() if the bms needs to be enlarged.

Previously bms_add_member() would palloc a whole-new copy of the existing
set, copy the words, and pfree the old one. repalloc() is potentially much
faster, and more importantly, this is less surprising if CurrentMemoryContext
is not the same as the context the old set is in. bms_add_member() still
allocates a new bitmapset in CurrentMemoryContext if NULL is passed as
argument, but that is a lot less likely to induce bugs.

Nicholas White.
src/backend/nodes/bitmapset.c