pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: David Fetter <david@fetter.org>
To: PostgreSQL Development <pgsql-hackers@postgresql.org>
Subject: New EXPLAIN option: ALL
Date: Tue, 7 May 2019 09:30:47 +0200
Message-ID: <20190507073046.GI28936@fetter.org> (raw)

Folks,

It can get a little tedious turning on (or off) all the boolean
options to EXPLAIN, so please find attached a shortcut.

Best,
David.
-- 
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

Attachments:

v1-0001-Add-an-ALL-option-to-EXPLAIN.patch (text/x-diff, 2.5K) download From 8de75e81eb7161c712e2af97b0619a69f33c6b91 Mon Sep 17 00:00:00 2001 From: David Fetter <david@fetter.org> Date: Tue, 7 May 2019 00:26:29 -0700 Subject: [PATCH v1] Add an ALL option to EXPLAIN To: hackers MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.21.0" This is a multi-part message in MIME format. --------------2.21.0 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit which starts all boolean options at once. diff --git a/doc/src/sgml/ref/explain.sgml b/doc/src/sgml/ref/explain.sgml index 385d10411f..ade3793c5f 100644 --- a/doc/src/sgml/ref/explain.sgml +++ b/doc/src/sgml/ref/explain.sgml @@ -43,6 +43,7 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] <replaceable class="parameter">statement</replac BUFFERS [ <replaceable class="parameter">boolean</replaceable> ] TIMING [ <replaceable class="parameter">boolean</replaceable> ] SUMMARY [ <replaceable class="parameter">boolean</replaceable> ] + ALL [ <replaceable class="parameter">boolean</replaceable> ] FORMAT { TEXT | XML | JSON | YAML } </synopsis> </refsynopsisdiv> @@ -224,6 +225,16 @@ ROLLBACK; </listitem> </varlistentry> + <varlistentry> + <term><literal>ALL</literal></term> + <listitem> + <para> + Include (or exclude) all of the above settings before examining the rest + of the options. It defaults to <literal>FALSE</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><literal>FORMAT</literal></term> <listitem> diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index a6c6de78f1..966f4566c7 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -151,6 +151,26 @@ ExplainQuery(ParseState *pstate, ExplainStmt *stmt, const char *queryString, bool summary_set = false; /* Parse options list. */ + /* First, see whether ALL is set */ + foreach(lc, stmt->options) + { + DefElem *opt = (DefElem *) lfirst(lc); + + if (strcmp(opt->defname, "all") == 0) + { + es->analyze = defGetBoolean(opt); + es->verbose = defGetBoolean(opt); + es->costs = defGetBoolean(opt); + es->buffers = defGetBoolean(opt); + es->settings = defGetBoolean(opt); + timing_set = true; + es->timing = defGetBoolean(opt); + summary_set = true; + es->timing = defGetBoolean(opt); + } + } + + /* If you add another boolean option here, remember to add it above, too */ foreach(lc, stmt->options) { DefElem *opt = (DefElem *) lfirst(lc); --------------2.21.0--

view thread (49+ messages)  latest in thread

Message-ID: <20190507073046.GI28936@fetter.org>
Permalink:  ../20190507073046.GI28936@fetter.org/
Also on:    postgresql.org/message-id/20190507073046.GI28936@fetter.org

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: david@fetter.org
  Subject: Re: New EXPLAIN option: ALL
  In-Reply-To: <20190507073046.GI28936@fetter.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox