pgsql: Fix failure with lock mode used for custom relation options

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pgsql: Fix failure with lock mode used for custom relation options
Дата
Msg-id E1iCvqJ-0000SC-3E@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix failure with lock mode used for custom relation options

In-core relation options can use a custom lock mode since 47167b7, that
has lowered the lock available for some autovacuum parameters.  However
it forgot to consider custom relation options.  This causes failures
with ALTER TABLE SET when changing a custom relation option, as its lock
is not defined.  The existing APIs to define a custom reloption does not
allow to define a custom lock mode, so enforce its initialization to
AccessExclusiveMode which should be safe enough in all cases.  An
upcoming patch will extend the existing APIs to allow a custom lock mode
to be defined.

The problem can be reproduced with bloom indexes, so add a test there.

Reported-by: Nikolay Sharplov
Analyzed-by: Thomas Munro, Michael Paquier
Author: Michael Paquier
Reviewed-by: Kuntal Ghosh
Discussion: https://postgr.es/m/20190920013831.GD1844@paquier.xyz
Backpatch-through: 9.6

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/736b84eede6cfdadf1114cf5a0e950d7f4986d82

Modified Files
--------------
contrib/bloom/expected/bloom.out       | 1 +
contrib/bloom/sql/bloom.sql            | 1 +
src/backend/access/common/reloptions.c | 7 +++++++
3 files changed, 9 insertions(+)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Alexander Korotkov
Дата:
Сообщение: pgsql: Fix bug in pairingheap_SpGistSearchItem_cmp()
Следующее
От: Michael Paquier
Дата:
Сообщение: pgsql: Allow definition of lock mode for custom reloptions