> > auto_explain automatically produces the explain output of a query that is running for reals. The effect is
identicalto running explain analyze except your output > here is whatever the query would produce instead of the
explainoutput, which instead goes into the log.
>
> Thanks David. I take this to mean that auto_explain produces the same side-effects as manually running "explain
analyze"does.
>
> Would this warrant a documentation patch ? Like so:
>
> auto_explain.log_analyze causes EXPLAIN ANALYZE output, rather than just EXPLAIN output, to be printed when an
executionplan is logged. Hence
> the same caveats apply for INSERT/UPDATE/DELETE queries.
>
> Also, doesn't this makes auto_explain.log_analyze = TRUE rather surprising as it
> can make any INSERT/UPDATE/DELETE fail when it is slow for some reason ...
Ah, wait, I think I've been a bit dense here. I thought it was a two-step process of
first running any queries "normally", somehow magically noticing slow ones as per
auto_explain.log_min_duration, and re-running those with EPXPLAIN ANALYZE prepended.
I think I understand better now: with auto_explain ALL queries are run with EXPLAIN ANALYZE
prepended BUT the output is two-fold: query results are fed into whatever wire protocol client
is and EXPLAIN output is re-routed to the log. Does that sound right ?
I think was misguided by psql discarding (?) query results (the rows)
while displaying EXPLAIN output only.
The auto_explain docs might perhaps still benefit from a more
explicit hint towards write query side effects.
Karsten