8
Путь поиска
Определение схемы объекта
квалифицированное имя (схема.имя) явно определяет схему
имя без квалификатора проверяется в схемах, указанных в пути поиска
Путь поиска
определяется параметром search_path,
реальное значение — функция current_schemas
исключаются несуществующие схемы и схемы, к которым нет доступа
первая явно указанная в пути схема используется для создания объектов
схемы pg_temp и pg_catalog неявно включаются первыми,
если не указаны в search_path
При указании объекта надо определить, о какой схеме идет речь, ведь
в разных схемах могут храниться объекты с одинаковыми именами.
Если имя объекта квалифицировано именем схемы, то используется
явно указанная схема. Если схема не указана явным образом, то она
определяется с помощью конфигурационного параметра search_path.
Этот параметр содержит путь поиска — список схем, который
просматривается последовательно слева направо, при этом из него
исключаются несуществующие схемы и те, к которым у пользователя
нет доступа.
При создании нового объекта с именем без квалификатора для выбора
целевой схемы берется первая из оставшихся в списке, а при поиске
объекта в начало пути неявно добавляются:
●
схема pg_catalog, чтобы всегда иметь доступ к системному каталогу
●
схема pg_temp, если пользователь создавал временные объекты
Реальный путь поиска, включающий неявные схемы, возвращает вызов
функции: current_schemas(true).
Можно провести аналогию между путем поиска search_path и путем
PATH в операционных системах.