Commit fbfa5664 authored by Michael Paquier's avatar Michael Paquier

Fix lockmode initialization for custom relation options

The code was enforcing AccessExclusiveLock for all custom relation
options, which is incorrect as the APIs allow a custom lock level to be
set.

While on it, fix a couple of inconsistencies in the tests and the README
of dummy_index_am.

Oversights in commit 773df883.

Discussion: https://postgr.es/m/20190925234152.GA2115@paquier.xyz
parent 8190164e
......@@ -700,13 +700,6 @@ allocate_reloption(bits32 kinds, int type, const char *name, const char *desc,
newoption->type = type;
newoption->lockmode = lockmode;
/*
* Set the default lock mode for this option. There is no actual way
* for a module to enforce it when declaring a custom relation option,
* so just use the highest level, which is safe for all cases.
*/
newoption->lockmode = AccessExclusiveLock;
MemoryContextSwitchTo(oldcxt);
return newoption;
......
......@@ -6,6 +6,7 @@ access method, whose code is kept a maximum simple.
This includes tests for all relation option types:
- boolean
- enum
- integer
- real
- strings (with and without NULL as default)
......@@ -20,6 +20,7 @@ CREATE INDEX dummy_test_idx ON dummy_test_tab
option_bool = false,
option_int = 5,
option_real = 3.1,
option_enum = 'two',
option_string_val = NULL,
option_string_null = 'val');
NOTICE: new option value for string parameter null
......@@ -32,9 +33,10 @@ SELECT unnest(reloptions) FROM pg_class WHERE relname = 'dummy_test_idx';
option_bool=false
option_int=5
option_real=3.1
option_enum=two
option_string_val=null
option_string_null=val
(5 rows)
(6 rows)
-- ALTER INDEX .. SET
ALTER INDEX dummy_test_idx SET (option_int = 10);
......
......@@ -20,6 +20,7 @@ CREATE INDEX dummy_test_idx ON dummy_test_tab
option_bool = false,
option_int = 5,
option_real = 3.1,
option_enum = 'two',
option_string_val = NULL,
option_string_null = 'val');
-- Silence again validation checks for strings until the end of the test.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment