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 байт, даже если они не являются последней страницей объекта. Прне указанные области внутри большого объекта считываются как нули.