> > auto_explain automatically produces the explain output of a query that is 
> > running for reals.  The effect is identical to running explain analyze 
> > except your output > here is whatever the query would produce instead of 
> > the explain output, 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 execution plan 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


Reply via email to