Re: explain root element for auto-explain

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: explain root element for auto-explain
Date: 2009-08-20 15:35:54
Message-ID: 4A8D6D5A.9070701@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 }
| 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 }

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2009-08-20 16:03:27 Re: explain root element for auto-explain
Previous Message Kevin Grittner 2009-08-20 15:31:40 Linux start script updates