В чем разница между выполнением и исполнением на PL/pgSQL?
Из руководства:
Иногда полезно оценивать выражение или запрос SELECT, но отбрасывать результат, например, при вызове функции, которая имеет побочные эффекты, но не имеет полезного значения результата. Для этого в PL/pgSQL используйте оператор PERFORM.
Но когда я пытаюсь что-то вроде:
perform 'create table foo as (select 1)';
Ничего не происходит. Хотя этот запрос должен иметь побочные эффекты (создание таблицы), и результат может быть отброшен.
Я думаю, что я прав 1: для запуска функций я могу использовать выполнить:
perform pg_temp.addInheritance(foo);