diff options
author | Michael Paquier | 2023-01-26 03:23:16 +0000 |
---|---|---|
committer | Michael Paquier | 2023-01-26 03:23:16 +0000 |
commit | 9d2d9728b8d546434aade4f9667a59666588edd6 (patch) | |
tree | f708188532e0d0cc85cbe5f03d892edce07478ee /contrib/auto_explain | |
parent | ffcf6f4cfca5a4ce2ac7ff7e8fa17541a5a9caea (diff) |
Make auto_explain print the query identifier in verbose mode
When auto_explain.log_verbose is on, auto_explain should print in the
logs plans equivalent to the EXPLAIN (VERBOSE). However, when
compute_query_id is on, query identifiers were not showing up, being
only handled by EXPLAIN (VERBOSE). This brings auto_explain on par with
EXPLAIN regarding that. Note that like EXPLAIN, auto_explain does not
show the query identifier when compute_query_id=regress.
The change is done so as the choice of printing the query identifier is
done in ExplainPrintPlan() rather than in ExplainOnePlan(), to avoid a
duplication of the logic dealing with the query ID. auto_explain is the
only in-core caller of ExplainPrintPlan().
While looking at the area, I have noticed that more consolidation
between EXPLAIN and auto_explain would be in order for the logging of
the plan duration and the buffer usage. This refactoring is left as a
future change.
Author: Atsushi Torikoshi
Reviewed-by: Justin Pryzby, Julien Rouhaud
Discussion: https://postgr.es/m/1ea21936981f161bccfce05765c03bee@oss.nttdata.com
Diffstat (limited to 'contrib/auto_explain')
-rw-r--r-- | contrib/auto_explain/t/001_auto_explain.pl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/auto_explain/t/001_auto_explain.pl b/contrib/auto_explain/t/001_auto_explain.pl index 0cf093c88e7..7873feb0447 100644 --- a/contrib/auto_explain/t/001_auto_explain.pl +++ b/contrib/auto_explain/t/001_auto_explain.pl @@ -106,6 +106,35 @@ unlike( qr/Query Parameters:/, "query parameters not logged when disabled, text mode"); +# Query Identifier. +# Logging enabled. +$log_contents = query_log( + $node, + "SELECT * FROM pg_class;", + { + "auto_explain.log_verbose" => "on", + "compute_query_id" => "on" + }); + +like( + $log_contents, + qr/Query Identifier:/, + "query identifier logged with compute_query_id=on, text mode"); + +# Logging disabled. +$log_contents = query_log( + $node, + "SELECT * FROM pg_class;", + { + "auto_explain.log_verbose" => "on", + "compute_query_id" => "regress" + }); + +unlike( + $log_contents, + qr/Query Identifier:/, + "query identifier not logged with compute_query_id=regress, text mode"); + # JSON format. $log_contents = query_log( $node, |