Re: VACUUM unable to accomplish because of a non-existent MultiXactId
От | Alvaro Herrera |
---|---|
Тема | Re: VACUUM unable to accomplish because of a non-existent MultiXactId |
Дата | |
Msg-id | 20151127204757.GF4320@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: VACUUM unable to accomplish because of a non-existent MultiXactId (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-admin |
Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > Tom Lane wrote: > >> Couldn't creation and deletion of a toasted object within the same > >> transaction do it? > > > I tried and couldn't find a way to cause one to appear. When a row is > > created, it has xmax=0 so when it's deleted the xmax can just be set to > > the deleting xact. And we don't ever update pg_toast rows, AFAIK. > > Ah, nevermind, brain fade ... I was momentarily confusing this with > combo CIDs. Right, there are no updates or row locks taken on toast > table rows (unless someone were to do one manually?) Both UPDATE and SELECT FOR UPDATE fail right away: alvherre=# update pg_toast.pg_toast_16398 set chunk_id = 7 where chunk_id = 5; ERROR: cannot change TOAST relation "pg_toast_16398" alvherre=# select * from pg_toast.pg_toast_16398 for update; ERROR: cannot lock rows in TOAST relation "pg_toast_16398" -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-admin по дате отправления: