Система правил PostgreSQL
PostgreSQL поддерживает мощную систему правил для спецификации представлений и неоднозначных обновлений представлений. Первоначально система правил PostgreSQL состояла из двух реализаций:
- Первая работала с использованием обработки на уровне строк и была реализована глубоко в исполнителе. Система правил вызывалась каждый раз, когда происходило обращение к отдельной строке. Эта реализация была удалена в 1995 году, когда последний официальный релиз проекта Berkeley Postgres был преобразован в Postgres95.
- Вторая реализация системы правил - это техника, называемая переписыванием запросов. Система перезаписи - это модуль, который находится между этапом парсера и планировщиком/оптимизатором. Эта техника все еще реализуется.
Перезапись запросов довольно подробно рассматривается в раздел «Система правил», поэтому здесь нет необходимости останавливаться на нем. Отметим лишь, что и на входе, и на выходе перезаписывателя получаются деревья запросов, то есть не происходит никаких изменений в представлении или уровне семантической детализации деревьев. Переписывание можно рассматривать как форму расширения макросов.