Re: pg_stat_statements : how to catch non successfully finished statements ?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_stat_statements : how to catch non successfully finished statements ?
Дата
Msg-id 23780.1588285608@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: pg_stat_statements : how to catch non successfully finishedstatements ?  (legrand legrand <legrand_legrand@hotmail.com>)
Ответы Re: pg_stat_statements : how to catch non successfully finishedstatements ?
Список pgsql-general
legrand legrand <legrand_legrand@hotmail.com> writes:
> Tom Lane-2 wrote
>> The hard part here is that you have to be really careful what you do in
>> a PG_CATCH block, because the only thing you know for sure about the
>> backend's state is that it's not good.  Catalog fetches are right out,
>> and anything that might itself throw an error had best be avoided as
>> well.  (Which, among other things, means that examining executor state
>> would be a bad idea, and I'm not even sure you'd want to traverse the plan
>> tree.)
>> I'm not convinced that it's practical for pg_stat_statements to make a new
>> shared hashtable entry under those constraints.  But figuring out how to
>> minimize the risks around that is the stumbling block, not lack of a hook.

> As far as I have been testing this with *cancelled* queries (Cancel, 
> pg_cancel_backend(), statement_timeout, ...), I haven't found any problem.
> Would limiting the PG_CATCH block to thoses *cancelled* queries  
> and *no other error*, be an alternate solution ?

I do not see that that would make one iota of difference to the risk that
the executor state tree is inconsistent at the instant the error is
thrown.  You can't test your way to the conclusion that it's safe, either
(much less that it'd remain safe); your test cases surely haven't hit
every CHECK_FOR_INTERRUPTS call in the backend.

            regards, tom lane



В списке pgsql-general по дате отправления:

Предыдущее
От: legrand legrand
Дата:
Сообщение: Re: pg_stat_statements : how to catch non successfully finishedstatements ?
Следующее
От: Matthias Apitz
Дата:
Сообщение: How to move a 11.4 cluster to another Linux host, but empty?