pgsql: Fix pg_depend entry to AMs after ALTER TABLE .. SET ACCESS METHO
От | Michael Paquier |
---|---|
Тема | pgsql: Fix pg_depend entry to AMs after ALTER TABLE .. SET ACCESS METHO |
Дата | |
Msg-id | E1qF0Sk-00162A-1K@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix pg_depend entry to AMs after ALTER TABLE .. SET ACCESS METHOD ALTER TABLE .. SET ACCESS METHOD was not registering a dependency to the new access method with the relation altered in its rewrite phase, making possible the drop of an access method even if there are relations that depend on it. During the rewrite, a temporary relation is created to build the new relation files before swapping the new and old files, and, while the temporary relation was registering a correct dependency to the new AM, the old relation did not do that. A dependency on the access method is added when the relation files are swapped, which is the point where pg_class is updated. Materialized views and tables use the same code path, hence both were impacted. Backpatch down to 15, where this command has been introduced. Reported-by: Alexander Lakhin Reviewed-by: Nathan Bossart, Andres Freund Discussion: https://postgr.es/m/18000-9145c25b1af475ca@postgresql.org Backpatch-through: 15 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/97d89101045fac8cb36f4ef6c08526ea0841a596 Modified Files -------------- src/backend/commands/cluster.c | 29 +++++++++++++++++++++++++++++ src/test/regress/expected/create_am.out | 29 +++++++++++++++++++++++++++++ src/test/regress/sql/create_am.sql | 18 ++++++++++++++++++ 3 files changed, 76 insertions(+)
В списке pgsql-committers по дате отправления: