From: | Tomonari Katsumata <katsumata(dot)tomonari(at)po(dot)ntts(dot)co(dot)jp> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #10404: auto_explain for EXPLAIN ANLYZE. |
Date: | 2014-05-21 02:37:21 |
Message-ID: | 537C1161.40809@po.ntts.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi Tom,
Thank you for checking it.
(2014/05/20 20:51), Tom Lane wrote:
> katsumata(dot)tomonari(at)po(dot)ntts(dot)co(dot)jp writes:
>> [ auto_explain changes the user-visible behavior of EXPLAIN ]
>> Is this an intentional thing? or bug?
>
> Yeah, that's a bug. The code in explain.c is looking at whether it got
> timing results, not whether it asked for them ...
>
I made a patch for this bug.
Please see the attached patch.
According to my understanding,
explain.c flows like below.
ExplainOnePlan
- call ExecutorStart(explain_ExecutorStart)
- call ExecutorRun(explain_ExecutorRun)
- call ExecutorFinish(explain_ExecutorFinish)
- call ExplainPrintPlan *A*
- call ExecutorEnd(explain_ExecutorEnd) *B*
The query result is printed at *A*, and then
auto_explain log message is printed at *B*.
So I add a check in explain_ExecutorFinish if the query has
"EXPLAIN ANALYZE TIMING OFF" or not to supress timing output
at *A*.
And I add a check in explain_ExecutorEnd if the setting of
auto_explain need timing information or not.
To distinguish "EXPLAIN ANALYZE TIMING OFF" or not, I use
queryDesc->instrument_options has INSTRUMENT_ROWS flag or not.
And also to distinguish if auto_explain needs timing info or not,
I use queryDesc->instrument_options has INSTRUMENT_TIMING flag or not.
This works fine, but I'm not sure I should to use INSTRUMENT_ROWS flag
for this. Because it seems that the flags is used but not referenced
from anywhere in current code.
Will this flag be obsoleted?
regards,
--------------------
Tomonari Katsumata
Attachment | Content-Type | Size |
---|---|---|
fix-auto_explain-explain-analyze-timing-off.patch | text/x-patch | 785 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Tomonari Katsumata | 2014-05-21 02:55:35 | Re: BUG #10404: auto_explain for EXPLAIN ANLYZE. |
Previous Message | Devrim Gündüz | 2014-05-20 18:20:19 | Re: BUG #10408: yum repomd out of data for latest version of 9.2 |