Re: Trigger information for auto_explain. - Mailing list pgsql-hackers

From Kyotaro HORIGUCHI
Subject Re: Trigger information for auto_explain.
Date
Msg-id 20140122.172827.04904943.horiguchi.kyotaro@lab.ntt.co.jp
Whole thread Raw
In response to Re: Trigger information for auto_explain.  (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>)
Responses Re: Trigger information for auto_explain.
List pgsql-hackers
Hello, I came back with doc patch and revised 0002 patch.

> > > I think documentation is the only thing that stops this patch to be
> > > commitable... can you add it?
> > 
> > Agreed.  I have pushed patch 0001 for now.
> 
> Thank you, I'll put it sooner.

I found the default setting for log_triggers was true in the last
patch while writing doc but it's better be false ragarding
backward compatibility. The 0002 patch attached has been changed
there.

- 0002_auto_explain_triggers_v2_20140122.patch
 default value for log_triggers from 'true' to 'false'. As added documents says.

- 0003_auto_explain_triggers_doc_v1_20140122.patch
 documentation.

regards,

-- 
Kyotaro Horiguchi
NTT Open Source Software Center
diff --git a/doc/src/sgml/auto-explain.sgml b/doc/src/sgml/auto-explain.sgml
index c9b8192..53f38cb 100644
--- a/doc/src/sgml/auto-explain.sgml
+++ b/doc/src/sgml/auto-explain.sgml
@@ -124,6 +124,24 @@ LOAD 'auto_explain';   <varlistentry>    <term>
+     <varname>auto_explain.log_triggers</varname> (<type>boolean</type>)
+    </term>
+    <indexterm>
+     <primary><varname>auto_explain.log_triggers</> configuration parameter</primary>
+    </indexterm>
+    <listitem>
+     <para>
+      <varname>auto_explain.log_triggers</varname> causes additional trigger
+      statistics output to be printed when an execution plan is logged. This
+      parameter is off by default. Only superusers can change this
+      setting. This parameter has no effect
+      unless <varname>auto_explain.log_analyze</> parameter is set.
+     </para>
+    </listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>     <varname>auto_explain.log_format</varname> (<type>enum</type>)    </term>    <indexterm>
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index af68479..2354327 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -25,6 +25,7 @@ static int    auto_explain_log_min_duration = -1; /* msec or -1 */static bool
auto_explain_log_analyze= false;static bool auto_explain_log_verbose = false;static bool auto_explain_log_buffers =
false;
+static bool auto_explain_log_triggers = false;static bool auto_explain_log_timing = false;static int
auto_explain_log_format= EXPLAIN_FORMAT_TEXT;static bool auto_explain_log_nested_statements = false;
 
@@ -113,6 +114,17 @@ _PG_init(void)                             NULL,                             NULL);
+    DefineCustomBoolVariable("auto_explain.log_triggers",
+                             "Collect trigger stats, avaialble when log_analyze.",
+                             NULL,
+                             &auto_explain_log_triggers,
+                             false,
+                             PGC_SUSET,
+                             0,
+                             NULL,
+                             NULL,
+                             NULL);
+    DefineCustomEnumVariable("auto_explain.log_format",                             "EXPLAIN format to be used for
planlogging.",                             NULL,
 
@@ -295,6 +307,8 @@ explain_ExecutorEnd(QueryDesc *queryDesc)            ExplainBeginOutput(&es);
ExplainQueryText(&es,queryDesc);            ExplainPrintPlan(&es, queryDesc);
 
+            if (es.analyze && auto_explain_log_triggers)
+                ExplainPrintTriggers(&es, queryDesc);            ExplainEndOutput(&es);            /* Remove last line
break*/ 

pgsql-hackers by date:

Previous
From: KONDO Mitsumasa
Date:
Subject: Re: Add min and max execute statement time in pg_stat_statement
Next
From: Heikki Linnakangas
Date:
Subject: Re: GIN improvements part 1: additional information