I have been working on a project (for GSOC) to retrieve
planner/optimizer details. As part of the project, I need machine
parsable output. So, I thought I would dust off a patch I found from
last year that Germán Caamaño submitted. I didn't see any further
activity there so I integrated it into 8.4 and added a DTD.
The output below is generated by using the added flag 'XML' to the
EXPLAIN command. The DTD probably wouldn't be needed for every output
instance and may need its own flag.
I am coming up to speed on the planner internals, but it seems like this
first EXPLAIN XML concept may have some use. Are there any strong
opinions about the XML hierarchy? Is it enough to simply wrap the text
output from EXPLAIN with XML tags?
-Tom Raney
QUERY PLAN
-------------------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE explain
[
<!ELEMENT explain (plan+) >
<!ELEMENT plan (table?, cost, qualifier?) >
<!ELEMENT table EMPTY >
<!ELEMENT cost EMPTY >
<!ELEMENT qualifier EMPTY >
<!ATTLIST explain
version CDATA #REQUIRED >
<!ATTLIST plan
name CDATA #REQUIRED
level CDATA #REQUIRED >
<!ATTLIST cost
startup CDATA #REQUIRED
total CDATA #REQUIRED
rows CDATA #REQUIRED
width CDATA #REQUIRED >
<!ATTLIST table
name CDATA #REQUIRED >
<!ATTLIST qualifier
type CDATA #REQUIRED
value CDATA #REQUIRED >
]>
<explain version="8.4devel">
<plan name="Seq Scan" level="0">
<table name="tenk1"/>
<cost startup="0.00" total="445.00" rows="10000" width="244" />
</plan>
</explain>
(32 rows)
Greg Smith wrote:
On Thu, 17 Apr 2008, Tom Lane wrote:
For debugging the planner work I'm about to do, I'm expecting it will be
useful to be able to get EXPLAIN to print the targetlist of each plan
node, not just the quals (conditions) as it's historically done.
I've heard that some of the academic users of PostgreSQL were hoping
to add features in this area in order to allow better using planner
internals for educational purposes. It would be nice if that were
available for such purposes without having to recompile.
--
* Greg Smith [EMAIL PROTECTED] http://www.gregsmith.com Baltimore, MD
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers