]> granicus.if.org Git - postgresql/commit
Fix handling of empty uncompressed posting list pages in GIN
authorAlexander Korotkov <akorotkov@postgresql.org>
Thu, 19 Jul 2018 18:04:17 +0000 (21:04 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Thu, 19 Jul 2018 18:19:19 +0000 (21:19 +0300)
commit44b550e0d9a5b3e4aba0211e7654b70e4f78b079
tree6d641643d1f194c56cbdef32413f5f9661b69eb1
parent8b1d2685b82fd0ab09c2ba36081e53248c3b09cb
Fix handling of empty uncompressed posting list pages in GIN

PostgreSQL 9.4 introduces posting list compression in GIN.  This feature
supports online upgrade, so that after pg_upgrade uncompressed posting
lists are compressed on-the-fly.  Underlying code appears to always
expect at least one item on uncompressed posting list page.  But there
could be completely empty pages, because VACUUM never deletes leftmost
and rightmost pages from posting trees.  This commit fixes that.

Reported-by: Sivasubramanian Ramasubramanian
Discussion: https://postgr.es/m/1531867212836.63354%40amazon.com
Author: Sivasubramanian Ramasubramanian, Alexander Korotkov
Backpatch-through: 9.4
src/backend/access/gin/gindatapage.c
src/backend/access/gin/ginxlog.c