{"Entry":{"collection":"guc","key":"gin_pending_list_limit","name":"gin_pending_list_limit","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Client Connection Defaults / Statement Behavior","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"9.4","status":"added","to":"9.5"},{"documentation_changed":true,"fields":{},"from":"9.5","status":"changed","to":"9.6"},{"documentation_changed":true,"fields":{},"from":"9.6","status":"changed","to":"10"},{"documentation_changed":true,"fields":{},"from":"10","status":"changed","to":"11"},{"documentation_changed":true,"fields":{},"from":"11","status":"changed","to":"12"},{"documentation_changed":true,"fields":{},"from":"13","status":"changed","to":"14"},{"documentation_changed":true,"fields":{},"from":"14","status":"changed","to":"15"},{"documentation_changed":true,"fields":{},"from":"16","status":"changed","to":"17"},{"documentation_changed":true,"fields":{},"from":"17","status":"changed","to":"18"}],"content_hash":"122869171bc7a1f00b5a9fa5422dbca7d6693e5e82c308a66ccb10e8e8147e4a","context":"","default_changed_in":[],"default_history":[{"from":"9.5","to":"19","value":"4 MiB"}],"editorial":{"advice":{"olap":"For batch loads or broad searches, test gin_pending_list_limit against ingestion latency, cleanup spikes, result completeness, and maintenance windows.","oltp":"Change gin_pending_list_limit only after measuring the affected GIN maintenance or search path. Prefer an index-level override when one index, rather than the whole cluster, is exceptional.","small":"Do not raise gin_pending_list_limit merely because the default is reached; bound memory and I/O bursts, and keep exact-query semantics unless approximation is explicitly acceptable."},"mechanism":["gin_pending_list_limit sets the maximum size of the pending list for GIN index. With a GIN index's fastupdate enabled, crossing this limit triggers bulk migration from the pending list into the main index; per-index storage parameters can override it.","gin_pending_list_limit is a USER-context setting. An authorized role can change it for a session, while ALTER ROLE or ALTER DATABASE can establish a default for future sessions.","GIN behavior also depends on per-index storage parameters, work or maintenance memory, autovacuum, and the shape of indexed values and predicates."],"pitfalls":["Changing gin_pending_list_limit in one session and assuming role defaults, database defaults, or other pooled sessions changed with it.","Applying a cluster-wide GIN value to fix one exceptional index instead of using its storage parameters.","Ignoring cleanup latency, I/O bursts, autovacuum interaction, or result completeness while tuning.","Changing gin_pending_list_limit globally without a rollback plan and a client or operational compatibility test."],"references":[{"title":"PostgreSQL 19 Beta 4: gin_pending_list_limit","url":"https://www.postgresql.org/docs/19/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["gin_fuzzy_search_limit","maintenance_work_mem","work_mem","vacuum_cleanup_index_scale_factor","autovacuum_work_mem"],"summary":"gin_pending_list_limit is the PostgreSQL setting that defines the maximum size of the pending list for GIN index."},"enumvals":[],"first_version":"9.5","group":"Client Connection Defaults","group_slug":"client","imported_at":"2026-09-27T17:57:31.337011+08:00","intro_commit":{"authored_at":"2014-11-13T12:14:48+09:00","discussion":[],"hash":"c291503b1c8250c7ba6ca900b7ba2f85a64b1eb6","subject":"Rename pending_list_cleanup_size to gin_pending_list_limit.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=c291503b1c8250c7ba6ca900b7ba2f85a64b1eb6"},"key":"gin_pending_list_limit","last_version":"20","max_val":"","min_val":"","name":"gin_pending_list_limit","position":161,"present_in":["9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Sets the maximum size of a GIN index's pending list, which is used when fastupdate is enabled.","short_desc_zh":"","source_rev":"english-manuals:3e0db61347b5f762ca1a1f14e2a877de438ececfc21062abb88ad10f8e52f7b4","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"gin_pending_list_limit","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"gin_pending_list_limit","SourceRevision":"english-manuals:3e0db61347b5f762ca1a1f14e2a877de438ececfc21062abb88ad10f8e52f7b4","Facts":{"boot_val":"4096","category":"Client Connection Defaults / Statement Behavior","context":"user","description":"Sets the maximum size of a GIN index's pending list, which is used when fastupdate is enabled. If the list grows larger than this maximum size, it is cleaned up by moving the entries in it to the index's main GIN data structure in bulk. If this value is specified without units, it is taken as kilobytes. The default is four megabytes (4MB). This setting can be overridden for individual GIN indexes by changing index storage parameters. See Section 65.4.4.1 and Section 65.4.5 for more information.","doc":{"anchor":"GUC-GIN-PENDING-LIST-LIMIT","file":"runtime-config-client.html","lang":"en","sha256":"6be6cc70f29eca4695dc43b2b2b94c75b7e0eaaa2c00273d7a98488917a7edb7","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":"2147483647","metadata_version":"18","min_val":"64","name":"gin_pending_list_limit","short_desc":"Sets the maximum size of the pending list for GIN index.","source":"pg-settings-source-snapshot","unit":"kB","vartype":"integer"},"ManualEvidence":{"doc":{"anchor":"GUC-GIN-PENDING-LIST-LIMIT","file":"runtime-config-client.html","lang":"en","sha256":"6be6cc70f29eca4695dc43b2b2b94c75b7e0eaaa2c00273d7a98488917a7edb7","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"gin_pending_list_limit","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"gin_pending_list_limit","Summary":"","BodyHTML":"\u003cp\u003e设置\u003ccode\u003efastupdate\u003c/code\u003e被启用时可以使用的 GIN索引的待处理列表的最大尺寸。如果该列表增长到超过这个最大尺寸，会通过批量将其中的项移入索引的主 GIN 数据结构来清理列表。如果指定值时没有单位，则以千字节为单位。默认值是四兆字节（\u003ccode\u003e4MB\u003c/code\u003e）。可以通过更改索引的存储参数来为个别 GIN 索引覆盖这个设置。更多信息请见\u003ca href=\"/docs/18/gin.html#GIN-FAST-UPDATE\" rel=\"nofollow\"\u003e第 65.4.4.1 节\u003c/a\u003e和\u003ca href=\"/docs/18/gin.html#GIN-TIPS\" rel=\"nofollow\"\u003e第 65.4.5 节\u003c/a\u003e。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"90a18cd44b27b5d74ca46e23900865017b99ea83c8e454929322dd73b9db529e","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e设置\u003ccode class=\"literal\"\u003efastupdate\u003c/code\u003e被启用时可以使用的 GIN索引的待处理列表的最大尺寸。如果该列表增长到超过这个最大尺寸，会通过批量将其中的项移入索引的主 GIN 数据结构来清理列表。如果指定值时没有单位，则以千字节为单位。默认值是四兆字节（\u003ccode class=\"literal\"\u003e4MB\u003c/code\u003e）。可以通过更改索引的存储参数来为个别 GIN 索引覆盖这个设置。更多信息请见\u003ca href=\"/docs/18/gin.html#GIN-FAST-UPDATE\" title=\"65.4.4.1. GIN 快速更新技术\"\u003e第 65.4.4.1 节\u003c/a\u003e和\u003ca href=\"/docs/18/gin.html#GIN-TIPS\" title=\"65.4.5. GIN 提示和技巧\"\u003e第 65.4.5 节\u003c/a\u003e。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
