pgsql: Fix handling of empty uncompressed posting list pages in GIN

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix handling of empty uncompressed posting list pages in GIN
Date: 2018-07-19 18:27:03
Message-ID: E1fgDdn-00055C-6H@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
REL9_4_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/9c6a676c4cedab50e4015f49c871dbcdfc4efe07

Modified Files
--------------
src/backend/access/gin/gindatapage.c | 20 ++++++++++++--------
src/backend/access/gin/ginxlog.c | 27 +++++++++++++++++++++------
2 files changed, 33 insertions(+), 14 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-07-19 18:54:12 pgsql: Fix pg_get_indexdef()'s behavior for included index columns.
Previous Message Alexander Korotkov 2018-07-19 18:24:19 pgsql: Fix handling of empty uncompressed posting list pages in GIN