Re: Query Plan Columns

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: "David E. Wheeler" <david@kineticode.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2010-11-05T20:36:34Z
Lists: pgsql-hackers

On 11/05/2010 04:27 PM, David E. Wheeler wrote:
> Fellow Hackers,
>
> I'm writing a function to turn an EXPLAIN plan into a table with columns. As such, I need to have a complete list of the various bits of each plan node and their types for the table. Here's what I've got so far:
>
>      "Node Type"           TEXT,
>      "Strategy"            TEXT,
>      "Startup Cost"        NUMERIC,
>      "Total Cost"          NUMERIC,
>      "Plan Rows"           INTEGER,
>      "Plan Width"          INTEGER,
>      "Actual Startup Time" NUMERIC,
>      "Actual Total Time"   NUMERIC,
>      "Actual Rows"         INTEGER,
>      "Actual Width"        INTEGER,
>      "Actual Loops"        INTEGER,
>      "Parent Relationship" TEXT
>      "Sort Key"            TEXT[],
>      "Sort Method"         TEXT,
>      "Sort-Space-Used"     TEXT,
>      "Sort-Space-Type"     TEXT,
>      "Join Type"           TEXT,
>      "Join Filter"         TEXT,
>      "Hash Cond"           TEXT,
>      "Relation Name"       NAME,
>      "Alias"               NAME,
>      "Scan Direction"      TEXT,
>      "Index Name"          NAME,
>      "Index Cond"          TEXT,
>      "Subplan Name"        TEXT,
>      "Function Name"       TEXT,
>      "Filter"              TEXT
>
> Questions:
>
> * Am I missing any?
> * Are the data types correct?
> * Is there some place in the source with a canonical list?


src/backend/commands/explain.c

Of course, there are containers too, which are not in your list at all. 
How do you intend to represent the tree-ish structure in a flat table?

cheers

andrew