Tom Lane wrote: > Alvaro Herrera <alvherre@xxxxxxxxxxxxxxx> 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 -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin