Re: Improving EXPLAIN's display of SubPlan nodes
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: Aleksander Alekseev <aleksander@timescale.com>,
pgsql-hackers@lists.postgresql.org,
Chantal Keller <chantal.keller@universite-paris-saclay.fr>
Date: 2024-03-18T21:10:00Z
Lists: pgsql-hackers
Attachments
- v5-0001-Improve-EXPLAIN-s-display-of-SubPlan-nodes.patch (text/x-diff) patch v5-0001
Dean Rasheed <dean.a.rasheed@gmail.com> writes: > The get_rule_expr() code could perhaps be simplified a bit, getting > rid of the show_subplan_name variable and moving the recursive calls > to get_rule_expr() to after the switch statement -- if testexpr is > non-NULL, print it, else print the subplan name probably works for all > subplan types. Oooh, good idea. The symmetry wasn't apparent when we started, but it's there now, and the code does look nicer this way. > The "colN" notation has grown on me, especially when you look at > examples like those in partition_prune.out with a mix of Param types. OK, I've left it like that in the attached v5, but I'm still open to other opinions. >> The undecorated reference to (SubPlan 1) is fairly confusing, since >> it doesn't correspond to anything that will actually get output. >> I suggest that perhaps instead this should read >> Output: (SubPlan 1).col1, (SubPlan 1).col2, IGNORE(SubPlan 1), i.tableoid, i.ctid >> or >> Output: (SubPlan 1).col1, (SubPlan 1).col2, RESET(SubPlan 1), i.tableoid, i.ctid > I think "RESET()" or "RESCAN()" or something like that is better than > "INGORE()", because it indicates that it is actually doing something. > I don't really have a better idea. Perhaps not all uppercase though, > since that seems to go against the rest of the EXPLAIN output. Hm. I used "rescan(SubPlan)" in the attached, but it still looks a bit odd to my eye. I did some more work on the documentation too, to show the difference between hashed and not-hashed subplans. I feel like we're pretty close here, with the possible exception of how to show MULTIEXPR. regards, tom lane
Commits
-
Improve EXPLAIN's display of SubPlan nodes and output parameters.
- fd0398fcb099 17.0 landed