В PostgreSQL не используется таблица DUAL, как в Oracle, потому что эта база данных допускает пропуск предложения FROM в определённых контекстах. 3
В то время как в Oracle для оценки выражений, которые не требуют ссылки на объект базы данных, используется таблица DUAL, в PostgreSQL для этого достаточно просто указать выражение без ссылки на таблицу. 23
Однако для совместимости с Oracle в PostgreSQL можно создать собственную таблицу DUAL, например, с помощью команды CREATE TABLE public.dual (dummy varchar)
. 1 Также можно создать вместо таблицы двойное представление. 1
Ещё один вариант — использовать неявную реализацию таблицы DUAL, которая была внедрена в PostgreSQL 12. 2 Для этого в 2018 году Том Лейн предложил вставить фиктивную таблицу в планировщик, что упростило бы различные пути кода. 2