ExplainOneQuery_hook ignored for EXPLAIN EXECUTE
Hi,
I don't quite know what the hook in $subject was originally designed
for, but right now it has the problem that it's not invoked for EXPLAIN
EXECUTE. That's because ExplainExecuteQuery directly calls
ExplainOnePlan instead of ExplainOneQuery_hook.
Unfortunately that's not entirely trivial to fix, because the hook
accepts a Query, not a PlannedStmt.
Does anybody have a good way to fix this?
Greetings,
Andres Freund
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
I don't quite know what the hook in $subject was originally designed
for, but right now it has the problem that it's not invoked for EXPLAIN
EXECUTE. That's because ExplainExecuteQuery directly calls
ExplainOnePlan instead of ExplainOneQuery_hook.
Unfortunately that's not entirely trivial to fix, because the hook
accepts a Query, not a PlannedStmt.
AFAIR, the purpose of that hook was to let index advisor plugins have
control of the planning step in an EXPLAIN, so that they could do things
like injecting hypothetical indexes. There isn't any easy way to do
something similar in EXPLAIN EXECUTE because the plan comes out of the
plancache.
Why do you care? It's a pretty specialized hook.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 2016-11-13 17:20:05 -0500, Tom Lane wrote:
Andres Freund <andres@anarazel.de> writes:
I don't quite know what the hook in $subject was originally designed
for, but right now it has the problem that it's not invoked for EXPLAIN
EXECUTE. That's because ExplainExecuteQuery directly calls
ExplainOnePlan instead of ExplainOneQuery_hook.Unfortunately that's not entirely trivial to fix, because the hook
accepts a Query, not a PlannedStmt.AFAIR, the purpose of that hook was to let index advisor plugins have
control of the planning step in an EXPLAIN, so that they could do things
like injecting hypothetical indexes. There isn't any easy way to do
something similar in EXPLAIN EXECUTE because the plan comes out of the
plancache.
Why do you care? It's a pretty specialized hook.
Citus currently uses it to output additional information for distributed
queries. I suspect we'll instead, for now, have to intercept EXPLAIN as
a whole then :( (moving to custom plans unfortunately is still a bit off
unfortunately).
Andres
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
On 2016-11-13 17:20:05 -0500, Tom Lane wrote:
Why do you care? It's a pretty specialized hook.
Citus currently uses it to output additional information for distributed
queries. I suspect we'll instead, for now, have to intercept EXPLAIN as
a whole then :( (moving to custom plans unfortunately is still a bit off
unfortunately).
Seems like you might want a hook further down then, perhaps at
ExplainPrintPlan.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 13 November 2016 at 22:31, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Andres Freund <andres@anarazel.de> writes:
On 2016-11-13 17:20:05 -0500, Tom Lane wrote:
Why do you care? It's a pretty specialized hook.
Citus currently uses it to output additional information for distributed
queries. I suspect we'll instead, for now, have to intercept EXPLAIN as
a whole then :( (moving to custom plans unfortunately is still a bit off
unfortunately).Seems like you might want a hook further down then, perhaps at
ExplainPrintPlan.
Fwiw I've found myself wishing for the same hook. I would like to add
a feature for pg_stat_statements to make some easy way to look up the
queryid for a given query. It seems like having it annotate EXPLAIN
output would be ideal.
--
greg