brin: Don't crash on auto-summarization
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 30 May 2017 21:32:53 +0000 (17:32 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 30 May 2017 22:17:09 +0000 (18:17 -0400)
commitb4da9d0e1ee45a1d157dc7fd24b24745b16ebe9f
tree399a92e4050035b98cab5918a557200f762d8c9c
parente6785a5ca16bfe67b9c74d168ae6e88c6e55c8ac
brin: Don't crash on auto-summarization

We were trying to free a pointer into a shared buffer, which never
works; and we were failing to release the buffer lock appropriately.
Fix those omissions.

While at it, improve documentation for brinGetTupleForHeapBlock, the
inadequacy of which evidently caused these bugs in the first place.

Reported independently by Zhou Digoal (bug #14668) and Alexander Sosna.

Discussion: https://postgr.es/m/8c31c11b-6adb-228d-22c2-4ace89fc9209@credativ.de
Discussion: https://postgr.es/m/20170524063323.29941.46339@wrigleys.postgresql.org
src/backend/access/brin/brin.c
src/backend/access/brin/brin_revmap.c