summaryrefslogtreecommitdiff
path: root/contrib/auto_explain
diff options
context:
space:
mode:
authorMichael Paquier2023-01-26 03:23:16 +0000
committerMichael Paquier2023-01-26 03:23:16 +0000
commit9d2d9728b8d546434aade4f9667a59666588edd6 (patch)
treef708188532e0d0cc85cbe5f03d892edce07478ee /contrib/auto_explain
parentffcf6f4cfca5a4ce2ac7ff7e8fa17541a5a9caea (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.pl29
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,