Thread

  1. WIP: log query in auto-explain

    Andrew Dunstan <andrew@dunslane.net> — 2009-11-22T19:57:16Z

    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
    
  2. Re: WIP: log query in auto-explain

    Tom Lane <tgl@sss.pgh.pa.us> — 2009-11-22T20:48:08Z

    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
    
    
  3. Re: WIP: log query in auto-explain

    Andrew Dunstan <andrew@dunslane.net> — 2009-11-22T23:05:28Z

    
    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
    
    
  4. Re: WIP: log query in auto-explain

    Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp> — 2009-11-24T00:29:25Z

    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
    
    
    
    
  5. Re: WIP: log query in auto-explain

    Andrew Dunstan <andrew@dunslane.net> — 2009-11-24T03:06:06Z

    
    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">
          <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
    
    
    >   
    
    
  6. Re: WIP: log query in auto-explain

    Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp> — 2009-11-24T03:13:26Z

    Andrew Dunstan <andrew@dunslane.net> wrote:
    
    > I mean it should be in the Explain output:
    >     <explain xmlns="http://www.postgresql.org/2009/explain">
    >       <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