Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 48. Системные каталоги | След. |
48.29. pg_largeobject
В каталоге pg_largeobject содержатся данные, образующие "большие объекты". Большой объект идентифицируется по OID, назначаемому при его создании. Каждый большой объект разделяется на сегменты или "страницы", достаточно небольшие для удобного размещения в строках таблицы pg_largeobject. Объём данных на странице определяется как LOBLKSIZE (что в настоящее время составляет BLCKSZ/4, то есть обычно 2 Кб).
До PostgreSQL 9.0 большие объекты не были связаны с механизмом разрешений. В результате таблица pg_largeobject была доступны на чтение для всех и через неё можно было получить OID (и содержимое) всех больших объектов в системе. Теперь это не так; для получения списка OID больших объектов нужно обратиться к pg_largeobject_metadata.
Таблица 48-29. Колонки pg_largeobject
Имя | Тип | Ссылки | Описание |
---|---|---|---|
loid | oid | pg_largeobject_metadata.oid | Идентификатор большого объекта, включающего эту страницу |
pageno | int4 | Номер этой страницы в большом объекте (начиная с нуля) | |
data | bytea | Собственно данные, хранящиеся в большом объекте. Их объём не может превышать LOBLKSIZE, но может быть меньше. |
В каждой строке pg_largeobject содержатся данные для одной строки большого объекта, начиная со смещения (pageno * LOBLKSIZE) внутри него (в байтах). Эта реализация допускает разреженное хранилище: страницы могут отсутствовать и могут быть короче LOBLKSIZE, даже если это не последние страницы объектов. Пропущенные области в большом объекте будут считываться как нулевые.
Пред. | Начало | След. |
pg_language | Уровень выше | pg_largeobject_metadata |