Виды доменов именования PostgreSQL

#postgresql #naming #names

Вопрос:

Какие типы объектов базы данных в PostgreSQL образуют свой собственный независимый домен имен, чтобы исключить конфликты имен с объектами другого рода?

Вид объектов базы данных означает таблицы, схемы, представления, триггеры, процедуры, функции, операторы, переменные,…

Вопрос не следует путать с пространством имен (через схемы).

Комментарии:

1. Дизайн системных каталогов должен отвечать этому — например, все отношения (таблицы, представления и т. Д.) Хранятся в одной таблице. Что более интересно, так это то, какие «домены имен» относятся к другим объектам, например, имена ограничений для каждой таблицы, а какие нет, например индексы.

2. Спасибо, но этот список мне больше не помогает: формируют ли пользовательские типы и домены общую область имен? являются ли они независимыми от функций, чтобы я мог назвать функцию и тип одинаково?

3. CREATE TYPE , CREATE DOMAIN и CREATE TABLE все создают pg_type запись . Да, они независимы от функций.

4. Хорошо, тогда я попытаюсь подвести итог: — тип, домен, таблица — триггер — функция (в круглых скобках) — процедура (я предполагаю, что она отличается «вызовом») — схемы

5. Как процедуры, так и функции хранятся в pg_proc . Если вы просматриваете эти таблицы, посмотрите на …typ …kind столбцы или (например prokind , typtype , relkind ), чтобы найти, что еще относится к этой категории.