EXPLAIN doesn't show sufficient info for wCTE cases

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: EXPLAIN doesn't show sufficient info for wCTE cases
Date: 2011-02-28 16:39:17
Message-ID: 9001.1298911157@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

EXPLAIN currently shows ModifyTable nodes as just "Insert", "Update",
or "Delete", without any indication of the target table. This was
more or less good enough when there could only be one such node per
query, but it's looking pretty inadequate to me as I play around
with data-modifying statements in WITH.

The obvious thing to do is show the target table much as we do for
table scan nodes, eg "Update on my_table". There is a deficiency
in that, which is that for inherited UPDATE/DELETE cases a single
ModifyTable node could have multiple target tables. But after
reflecting on it a bit, I think it would be good enough to show
the parent table name. The individual child plans will necessarily
include scans of the individual child tables, so you can figure
out which is which from that if you need to know.

Alternatively we could list all the target tables in a new node
attribute, eg

Update (costs...)
Target Tables: foo_parent, foo_child1, ...

But in the majority of cases this seems like a waste of precious
vertical space.

Thoughts?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2011-02-28 16:44:06 Re: EXPLAIN doesn't show sufficient info for wCTE cases
Previous Message Andrew Dunstan 2011-02-28 16:23:58 Re: Native XML