Re: explain root element for auto-explain - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: explain root element for auto-explain
Date
Msg-id 4A8D6D5A.9070701@dunslane.net
Whole thread Raw
In response to Re: explain root element for auto-explain  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: explain root element for auto-explain  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I wrote:
>
>
> Andrew Dunstan wrote:
>> Bruce Momjian wrote:
>>> Are we going to publish an XML DTD for EXPLAIN, or have we already?
>>
>> Not a DTD, but I am working on an XML Schema (DTDs are a bit yesterday).
>>
>>
>
> Here is a RelaxNG spec which people might find a bit easier to read. 
> It has been autocreated by a little tool called trang, that I used on 
> a very large body of explain output that I produced by mangling the 
> regression tests (and, incidentally, crashing the server in the result 
> - I still have to chase that up).


Updated version with more complete information (regression crash was due 
to my bad script).

cheers

andrew


default namespace = "http://www.postgresql.org/2009/explain"

start =   element explain {     element Query {       Plan,       Triggers,       element Total-Runtime { xsd:decimal }
    }+  }
 
Plan = element Plan {   (element Actual-Loops { xsd:integer }    | element Actual-Rows { xsd:integer }    | element
Actual-Startup-Time{ xsd:decimal }    | element Actual-Total-Time { xsd:decimal }    | element Alias { text }    |
elementCTE-Name { text }    | element Command { text }    | element Filter { text }    | element Function-Name { text }
  | element Hash-Cond { text }    | element Index-Cond { text }    | element Index-Name { text }    | element
Join-Filter{ text }    | element Join-Type { text }    | element Merge-Cond { text }    | element Node-Type { text }
|element One-Time-Filter { text }    | element Output { Item* }    | element Parent-Relationship { text }    | element
Plan-Rows{ xsd:integer }    | element Plan-Width { xsd:integer }    | element Plans { Plan* }    | element Recheck-Cond
{text }    | element Relation-Name { text }    | element Scan-Direction { text }    | element Schema { text }    |
elementSort-Key { Item+ }    | element Sort-Method { text }    | element Sort-Space-Type { text }    | element
Sort-Space-Used{ xsd:integer }    | element Startup-Cost { xsd:decimal }    | element Strategy { text }    | element
Subplan-Name{ text }    | element Total-Cost { xsd:decimal },    | element TID-Cond { text }    )* }
 
Triggers = element Triggers {   element Trigger {     element Trigger-Name { text },     element Constraint-Name { text
}?,    element Relation { text },     element Time { xsd:decimal },     element Calls { xsd:integer }   }* }
 
Item = element Item { text }




pgsql-hackers by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Linux start script updates
Next
From: Tom Lane
Date:
Subject: Re: explain root element for auto-explain