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 }
    | element CTE-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 }
    | element Sort-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 }



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to