50.30. pg_largeobject#
50.30. pg_largeobject
#
Каталог pg_largeobject
содержит данные, составляющие
“большие объекты”. Большой объект идентифицируется с помощью OID,
назначаемого при его создании. Каждый большой объект разбивается на
сегменты или “страницы”, достаточно маленькие для удобного хранения в виде строк
в pg_largeobject
.
Количество данных на страницу определяется как LOBLKSIZE
(который в настоящее время
равен BLCKSZ/4
, или обычно 2 кБ).
До версии PostgreSQL 9.0 не существовало структуры разрешений, связанной с большими объектами. В результате, pg_largeobject
был доступен для чтения всем и мог использоваться для получения OID (и содержимого) всех больших объектов в системе. Это больше не так; используйте pg_largeobject_metadata
для получения списка OID больших объектов.
Таблица 50.30. pg_largeobject
Колонки
Тип столбца Описание |
---|
Идентификатор большого объекта, который включает эту страницу |
Номер страницы этой страницы внутри ее большого объекта (считая с нуля) |
Фактические данные хранятся в большом объекте.
Это никогда не будет больше, чем |
Каждая строка структуры pg_largeobject
содержит данные для одной страницы большого объекта, начиная с байтового смещения (pageno * LOBLKSIZE
) внутри объекта. Реализация позволяет разреженное хранение: страницы могут отсутствовать и могут быть короче, чем LOBLKSIZE
байт, даже если они не являются последней страницей объекта. Прне указанные области внутри большого объекта считываются как нули.