Thread: pgsql: Lock table in ShareUpdateExclusive when importing index stats.
Lock table in ShareUpdateExclusive when importing index stats. Follow locking behavior of ANALYZE when importing statistics. In particular, when importing index statistics, the table must be locked in ShareUpdateExclusive mode. Fixes bug reportd by Jian He. ANALYZE doesn't update statistics on partitioned indexes, and the locking requirements are slightly different for in-place updates on partitioned indexes versus normal indexes. To be conservative, lock both the partitioned table and the partitioned index in ShareUpdateExclusive mode when importing stats for a partitioned index. Author: Corey Huinker Reported-by: Jian He Reviewed-by: Michael Paquier Discussion: https://www.postgresql.org/message-id/CACJufxGreTY7qsCV8%2BBkuv0p5SXGTScgh%3DD%2BDq6%3D%2B_%3DXTp7FWg%40mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/9f12da78d9538016efccbf17e6f816f1c286b7f5 Modified Files -------------- src/backend/statistics/stat_utils.c | 70 ++++++++++++++++---- src/test/regress/expected/stats_import.out | 103 +++++++++++++++++++++++++++++ src/test/regress/sql/stats_import.sql | 68 +++++++++++++++++++ 3 files changed, 228 insertions(+), 13 deletions(-)