PostgreSQL не выполняет обновление, изменяя существующие данные на месте. 1 При установке столбцов в NULL создаётся новая версия строки, как и при любом другом обновлении, а предыдущие версии остаются до тех пор, пока их не освободит VACUUM. 1
При этом VACUUM удалит старую версию строки только если нет длительной транзакции, которая всё ещё может нуждаться в старых данных. 1 VACUUM не перезапишет данные, поэтому старое значение будет ещё на диске, пока не будет использовано свободное пространство. 1
Для замены нулевых значений в PostgreSQL можно использовать встроенные функции и операторы, например COALESCE() и IS NULL. 2 Например, оператор IS NULL позволяет фильтровать нулевые значения, а функция COALESCE() — заменять их значением по умолчанию. 2