On 11/03/16 11:45, Magnus Hagander wrote:
> On Thu, Mar 10, 2016 at 10:07 PM, Petr Jelinek <petr@2ndquadrant.com
> <mailto:petr@2ndquadrant.com>> wrote:
>
> On 10/03/16 20:59, Julien Rouhaud wrote:
>
> On 10/03/2016 04:37, Petr Jelinek wrote:
>
> On 17/02/16 01:17, Julien Rouhaud wrote:
>
>
> Agreed, it's too obscure. Attached v4 fixes as you said.
>
>
> Seems to be simple enough patch and works. However I would like
> documentation to say that the range is 0 to 1 and represents
> fraction of
> the queries sampled, because right now both the GUC
> description and the
> documentation say it's in percent but that's not really true
> as percent
> is 0 to 100.
>
>
> Agreed. v5 attached fixes that.
>
>
> Great, I will test it once more (just because when I don't bugs
> suddenly appear out of nowhere) and mark it ready for committer.
>
>
> Coming back to the previous discussions about random() - AFAICT this
> patch will introduce the random() call always (in explain_ExecutorStart):
>
> +if (auto_explain_log_min_duration >= 0 && nesting_level == 0)
> +current_query_sampled = (random() < auto_explain_sample_ratio *
> +MAX_RANDOM_VALUE);
>
No it doesn't as the documented way to turn off auto_explain is to set
auto_explain_log_min_duration to -1 which is also the default.
In any case the code for that would have to be something like
if (auto_explain_sample_ratio == 0) current_query_sampled = false
else if <the original if>
Not sure if I consider that cleaner but it would definitely remove the
call to random() in case user has set auto_explain_log_min_duration to
something else than -1 and "turned off" the auto_explain by setting
auto_explain_sample_ratio to 0.
-- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training &
Services