]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix broken cleanup interlock for GIN pending list.
authorRobert Haas <rhaas@postgresql.org>
Thu, 16 Nov 2017 19:19:27 +0000 (14:19 -0500)
committerRobert Haas <rhaas@postgresql.org>
Thu, 16 Nov 2017 19:19:27 +0000 (14:19 -0500)
commit3b2787e1f8f1eeeb6bd9565288ab210262705b56
tree824a1e0806da879cd69e34c5754ee204ccbe0fea
parent6b2cd278a9d1e4643c419b598780aa55520f4f1a
Fix broken cleanup interlock for GIN pending list.

The pending list must (for correctness) always be cleaned up by vacuum, and
should (for the avoidance of surprising behavior) always be cleaned up
by an explicit call to gin_clean_pending_list, but cleanup is optional
when inserting.  The old logic got this backward: cleanup was forced
if (stats == NULL), but that's going to be *false* when vacuuming and
*true* for inserts.

Masahiko Sawada, reviewed by me.

Discussion: http://postgr.es/m/CAD21AoBLUSyiYKnTYtSAbC+F=XDjiaBrOUEGK+zUXdQ8owfPKw@mail.gmail.com
src/backend/access/gin/ginfast.c
src/backend/access/gin/ginvacuum.c
src/include/access/gin_private.h