Прочитал достаточно много (как мне кажется) про pgcompacttable и возник такой вопрос.
Написано, что сжатие производится за счёт того, что при обновлении строки, новая версия создаётся максимально близко к "началу" таблицы. Но как это состыкуется с HOT-updates? Разве pg не будет пытаться наоборот все изменения держать на той же самой странице? Или обновлений будет настолько много, что HOT "не будет вывозить" и всё равно придётся создавать новые версии за пределами страницы?
Других вариантов у нас нет, обновляем тапл до тех пор пока он не окажется на странице вне того диапазона страниц с которым работаем в этой итерации. Поскольку обновления в одной транзакции, даже микровавуум не имеет возможности вычищать предыдущие версии строк и тапл вынужден будет переместиться с этой страницы в конечном итоге на другую страницу.