Test that it works to RESET an invalid reloption

This works today, and it's valuable to ensure it doesn't get broken
if/when we get around to refactoring the implementation.

Author: Nikolay Shaplov <dhyan@nataraj.su>
Discussion: https://postgr.es/m/4563991.km65PDbjlG@thinkpad-pgpro
This commit is contained in:
Alvaro Herrera 2023-12-08 11:58:58 +01:00
parent b31ba5310b
commit 7db01fbcef
No known key found for this signature in database
GPG Key ID: 1C20ACB9D5C564AE
2 changed files with 18 additions and 0 deletions

View File

@ -87,6 +87,17 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass AND
-- RESET fails if a value is specified
ALTER TABLE reloptions_test RESET (fillfactor=12);
ERROR: RESET must not include values for parameters
-- We can RESET an invalid option which for some reason is already set
UPDATE pg_class
SET reloptions = '{fillfactor=13,autovacuum_enabled=false,illegal_option=4}'
WHERE oid = 'reloptions_test'::regclass;
ALTER TABLE reloptions_test RESET (illegal_option);
SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass;
reloptions
------------------------------------------
{fillfactor=13,autovacuum_enabled=false}
(1 row)
-- Test vacuum_truncate option
DROP TABLE reloptions_test;
CREATE TEMP TABLE reloptions_test(i INT NOT NULL, j text)

View File

@ -52,6 +52,13 @@ SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass AND
-- RESET fails if a value is specified
ALTER TABLE reloptions_test RESET (fillfactor=12);
-- We can RESET an invalid option which for some reason is already set
UPDATE pg_class
SET reloptions = '{fillfactor=13,autovacuum_enabled=false,illegal_option=4}'
WHERE oid = 'reloptions_test'::regclass;
ALTER TABLE reloptions_test RESET (illegal_option);
SELECT reloptions FROM pg_class WHERE oid = 'reloptions_test'::regclass;
-- Test vacuum_truncate option
DROP TABLE reloptions_test;