pgsql: Ignore attempts to add TOAST table to shared or catalog tables
От | Peter Eisentraut |
---|---|
Тема | pgsql: Ignore attempts to add TOAST table to shared or catalog tables |
Дата | |
Msg-id | E1h6BpY-0006Uc-R8@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Ignore attempts to add TOAST table to shared or catalog tables Running ALTER TABLE on any table will check if a TOAST table needs to be added. On shared tables, this would previously fail, thus effectively disabling ALTER TABLE for those tables. On (non-shared) system catalogs, on the other hand, it would add a TOAST table, even though we don't really want TOAST tables on some system catalogs. In some cases, it would also fail with an error "AccessExclusiveLock required to add toast table.", depending on what locks the ALTER TABLE actions had already taken. So instead, just ignore attempts to add TOAST tables to such tables, outside of bootstrap mode, pretending they don't need one. This allows running ALTER TABLE on such tables without messing up the TOAST situation. Legitimate uses for ALTER TABLE on system catalogs include setting reloptions (say, fillfactor or autovacuum settings). (All this still requires allow_system_table_mods, which is independent of this.) Discussion: https://www.postgresql.org/message-id/flat/e49f825b-fb25-0bc8-8afc-d5ad895c7975@2ndquadrant.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/590a87025b0aa9ebca53c7b71ddf036e5acd8f08 Modified Files -------------- src/backend/catalog/toasting.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-)
В списке pgsql-committers по дате отправления: