WIP: log query in auto-explain

Started by Andrew Dunstanover 16 years ago6 messageshackers
Jump to latest
#1Andrew Dunstan
andrew@dunslane.net

I put the attached together a while ago and neglected to send it.
Basically it includes the text of the query being explained in the
explain output.

I think it's more important to include the query text when using
auto_explain than in other explain uses, which is why I did it this way.
But I could be persuaded that we should always include it.

Thoughts? Comments?

cheers

andrew

Attachments:

auto-explain-query.patchtext/x-patch; name=auto-explain-query.patchDownload+30-9
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: WIP: log query in auto-explain

Andrew Dunstan <andrew@dunslane.net> writes:

I put the attached together a while ago and neglected to send it.
Basically it includes the text of the query being explained in the
explain output.

I'm pretty certain this will dump core in some contexts --- you should
not assume that sourceText is always available.

Should we be worried about security implications of displaying the query
text?

I think it's more important to include the query text when using
auto_explain than in other explain uses, which is why I did it this way.
But I could be persuaded that we should always include it.

I think this is just useless noise in every other case.

regards, tom lane

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: WIP: log query in auto-explain

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

I put the attached together a while ago and neglected to send it.
Basically it includes the text of the query being explained in the
explain output.

I'm pretty certain this will dump core in some contexts --- you should
not assume that sourceText is always available.

Ok, I guess I can insert a check that the sourceText is not null. I
wonder what we are supposed to take an explanation to mean if we can't
say what it is we're explaining.

Should we be worried about security implications of displaying the query
text?

If it is dangerous then surely so is the explanation.

cheers

andrew

#4ITAGAKI Takahiro
itagaki.takahiro@oss.ntt.co.jp
In reply to: Andrew Dunstan (#1)
Re: WIP: log query in auto-explain

Andrew Dunstan <andrew@dunslane.net> wrote:

Basically it includes the text of the query being explained in the
explain output.

I expected the query text is printed in "STATEMENT" section.
Do you mean the query should be merged into "LOG" section?
Are there any situation where "STATEMENT" section does not work?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

#5Andrew Dunstan
andrew@dunslane.net
In reply to: ITAGAKI Takahiro (#4)
Re: WIP: log query in auto-explain

Itagaki Takahiro wrote:

Andrew Dunstan <andrew@dunslane.net> wrote:

Basically it includes the text of the query being explained in the
explain output.

I expected the query text is printed in "STATEMENT" section.
Do you mean the query should be merged into "LOG" section?
Are there any situation where "STATEMENT" section does not work?

I mean it should be in the Explain output:

<explain xmlns="http://www.postgresql.org/2009/explain&quot;&gt;
<Query-Text>SELECT '' AS zero, BOOLTBL1.*
FROM BOOLTBL1
WHERE booleq(bool 'false', f1);</Query-Text>
<Plan>
<Node-Type>Seq Scan</Node-Type>
<Relation-Name>booltbl1</Relation-Name>
<Alias>booltbl1</Alias>
<Startup-Cost>0.00</Startup-Cost>
<Total-Cost>42.88</Total-Cost>
<Plan-Rows>877</Plan-Rows>
<Plan-Width>1</Plan-Width>
<Filter>booleq(false, f1)</Filter>
</Plan>
</explain>

This is especially important for structured output like XML and/or JSON.
A number of users (including me) badly want to be able to extract the
explain output from the log files with the query text included.

cheers

andrew

Show quoted text
#6ITAGAKI Takahiro
itagaki.takahiro@oss.ntt.co.jp
In reply to: Andrew Dunstan (#5)
Re: WIP: log query in auto-explain

Andrew Dunstan <andrew@dunslane.net> wrote:

I mean it should be in the Explain output:
<explain xmlns="http://www.postgresql.org/2009/explain&quot;&gt;
<Query-Text>SELECT '' AS zero, BOOLTBL1.*
A number of users (including me) badly want to be able to extract the
explain output from the log files with the query text included.

I see it's useful for non-text output format.
+1 for the extension.

Also please include the documentation fix because it contains
a sample output using STATEMENT section.

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center