172 похожих чатов

Всем привет! Вопрос по эксплэйн: подскажите, как сделать так, чтобы

эксплэйн по фукнции выводил работу, которую делают вложенные в неё функции? Вот набросал пример, как это должно работать:

create table test_plan_with_multifunction(id int );

create function f_test_plan_with_multifunction_1() returns int as $$
insert into mchist.test_plan_with_multifunction(id) values (1) returning id;
$$ language sql;

CREATE OR REPLACE FUNCTION f_test_plan_with_multifunction_2(integer)
RETURNS integer
LANGUAGE plpgsql
AS $function$
begin
if $1 < 10 then
insert into test_plan_with_multifunction(id) select mchist.f_test_plan_with_multifunction_2($1 + 1);
end if;
return $1 * f_test_plan_with_multifunction_1();
end $function$

Я делаю самый информативный эксплэйн:
explain (analyze, costs, buffers, verbose) select f_test_plan_with_multifunction_2(1)

Но он мне выдаёт только работу самой первой вызванной функции:
Result (cost=0.00..0.26 rows=1 width=4) (actual time=0.232..0.233 rows=1 loops=1)
Output: f_test_plan_with_multifunction_2(1)
Buffers: shared hit=9
Planning Time: 0.032 ms
Execution Time: 0.257 ms

Что хотелось бы на этом сферическом примере: увидеть вызов всех вложенных f_test_plan_with_multifunction_2, как добавляется запись в таблицу test_plan_with_multifunction_2 в результате их работы.
Также подлючил модуль auto_explain, проверил что появились его настройки, и выставил их:
SET auto_explain.log_nested_statements = ON;
SET auto_explain.log_min_duration = 0;
SET auto_explain.log_analyze = true;

2 ответов

22 просмотра

В EXPLAIN не будет, а вывод auto_explain ищите в логах (ну или в сессии — как уровень сообщений поставите).

max-chistyakov Автор вопроса
Yaroslav Schekin
В EXPLAIN не будет, а вывод auto_explain ищите в л...

Спасибо! это уже ближе к тому, что нужно :)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта