diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-11-16 14:19:27 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-11-16 15:24:19 -0500 |
commit | c8df4831ef212b9028824d1b5de558973c110c77 (patch) | |
tree | d88183f64bea26f2ee0dad14031d5aa12a24e42d /src/include/access/gin_private.h | |
parent | 4b02e935fee881eab1f4fabdbebccedfa57b4ddd (diff) |
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
Diffstat (limited to 'src/include/access/gin_private.h')
-rw-r--r-- | src/include/access/gin_private.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/access/gin_private.h b/src/include/access/gin_private.h index adfdb0c6d9c..f57ba5594c2 100644 --- a/src/include/access/gin_private.h +++ b/src/include/access/gin_private.h @@ -439,7 +439,7 @@ extern void ginHeapTupleFastCollect(GinState *ginstate, OffsetNumber attnum, Datum value, bool isNull, ItemPointer ht_ctid); extern void ginInsertCleanup(GinState *ginstate, bool full_clean, - bool fill_fsm, IndexBulkDeleteResult *stats); + bool fill_fsm, bool forceCleanup, IndexBulkDeleteResult *stats); /* ginpostinglist.c */ |