данные при insert пишутся на диск, а для старых данных (которые были до добавления колонки) - расчитываются при каждом select'е ?
Не правильно. Старые данные никак не участвуют
Рассматривайте MV как просто как триггер на Insert
правильно, для страрых рассчитывает на лету в select и при мержах старых данных будет уже записано на диск. записать всю колонку можно alter table ... update column = column where=1 на самом деле materialized это тоже самое что и default. Кроме видимости в select * и insert без списка полей
Обсуждают сегодня