Спроби використання RETURN QUERY (з переданими значеннями) перед блоком виключення завжди повертають ці значення. Якщо використовувати RETURN QUERY зі значеннями NULL у блоку виключення і добрими значеннями після блоку виключення, завжди повертається порожній набір. Якщо є прапорець, який встановлюється у блоку виключення, і оператор IF, за яким одна гілка повертає значення NULL відповідно до встановлення прапорця у блоку виключення, а інша – значення, які були передані, завжди повертається порожній набір. Я побачив цю відповідь і вважаю, що відступаю від чогось.
ОНОВЛЕННЯ: Вставка до таблиці error_log відбувається за допомогою цього коду. Функція викликається за допомогою
1 |
SELECT * FROM public.uf_test( in_col1 => 'test_text'::TEXT ); |
Наприклад, вона може зазнати невдачі через порушення первинного ключа.