From aa755f4f7bb4337488e01cb78a8546c1da0dd82f Mon Sep 17 00:00:00 2001
From: Lukas Fittl <lukas@fittl.com>
Date: Mon, 24 Sep 2018 09:58:01 -0700
Subject: [PATCH] auto_explain: Include JIT output if applicable

This matches auto_explain behaviour with that of a regular EXPLAIN, where
JIT information is shown in cases where JIT was actually used in the
query execution.
---
 contrib/auto_explain/auto_explain.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index 76f293cbf4..0c0eb3fb9e 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -16,6 +16,7 @@

 #include "commands/explain.h"
 #include "executor/instrument.h"
+#include "jit/jit.h"
 #include "utils/guc.h"

 PG_MODULE_MAGIC;
@@ -361,6 +362,9 @@ explain_ExecutorEnd(QueryDesc *queryDesc)
 			ExplainPrintPlan(es, queryDesc);
 			if (es->analyze && auto_explain_log_triggers)
 				ExplainPrintTriggers(es, queryDesc);
+			if (queryDesc->estate->es_jit && es->costs &&
+				queryDesc->estate->es_jit->created_functions > 0)
+				ExplainPrintJIT(es, queryDesc);
 			ExplainEndOutput(es);

 			/* Remove last line break */
--
2.19.0
