Fix some incorrectness in upgrade_adapt.sql on query for WITH OIDS

The query used to disable WITH OIDS in all the relations making use of
it was checking for materialized views, but this is not a supported
operation.  On the contrary, this needs to be done on foreign tables.

While on it, use quote_ident() in the ALTER TABLE strings built on the
relation name.

Author: Anton A. Melnikov, Michael Paquier
Discussion: https://postgr.es/m/49f389ba-95ce-8a9b-09ae-f60650c0e7c7@inbox.ru
Backpatch-through: 12
This commit is contained in:
Michael Paquier 2022-12-23 11:26:49 +09:00
parent 2fcf685f6d
commit 3022cb1433
1 changed files with 2 additions and 2 deletions

View File

@ -72,10 +72,10 @@ DO $stmt$
FROM pg_class
WHERE relname !~ '^pg_'
AND relhasoids
AND relkind in ('r','m')
AND relkind in ('r', 'f')
ORDER BY 1
LOOP
execute 'ALTER TABLE ' || rec || ' SET WITHOUT OIDS';
EXECUTE 'ALTER TABLE ' || quote_ident(rec) || ' SET WITHOUT OIDS';
END LOOP;
END; $stmt$;
\endif