Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hO8Ka-0000ai-KT for pgsql-hackers@arkaria.postgresql.org; Tue, 07 May 2019 22:13:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hO8KZ-0001gm-91 for pgsql-hackers@arkaria.postgresql.org; Tue, 07 May 2019 22:12:59 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hO8KY-0001fi-Vl for pgsql-hackers@lists.postgresql.org; Tue, 07 May 2019 22:12:59 +0000 Received: from tamriel.snowman.net ([96.255.250.162]) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hO8KW-00033R-P2 for pgsql-hackers@postgresql.org; Tue, 07 May 2019 22:12:58 +0000 Received: by tamriel.snowman.net (Postfix, from userid 1000) id 25E4F5F79F; Tue, 7 May 2019 18:12:56 -0400 (EDT) Date: Tue, 7 May 2019 18:12:56 -0400 From: Stephen Frost To: Tom Lane Cc: Andres Freund , David Fetter , PostgreSQL Development Subject: Re: New EXPLAIN option: ALL Message-ID: <20190507221255.GO6197@tamriel.snowman.net> References: <20190507073046.GI28936@fetter.org> <20190507154147.l32a3erg4mbycj7u@alap3.anarazel.de> <20190507163411.GM28936@fetter.org> <20190507164430.a7tig676hjzdnyyd@alap3.anarazel.de> <20190507212355.GQ28936@fetter.org> <20190507215449.3a4yb5kkoloq7yyw@alap3.anarazel.de> <4638.1557266803@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="xwNy8398N4c2CfHX" Content-Disposition: inline In-Reply-To: <4638.1557266803@sss.pgh.pa.us> User-Agent: Mutt/1.5.24 (2015-08-30) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --xwNy8398N4c2CfHX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Greetings, * Tom Lane (tgl@sss.pgh.pa.us) wrote: > Andres Freund writes: > > As I said, I don't think ALL is a good idea under any name. Like it > > just makes no sense to have ANALYZE, SUMMARY, VERBOSE, BUFFERS, > > SETTINGS, FORMAT controlled by one option, unless you call it DWIM. It's > > several separate axis (query is executed or not (ANALYZE), verbosity > > (SUMMARY, VERBOSE), collecting additional information (BUFFERS, TIMING), > > output format). >=20 > FWIW, I find this line of argument fairly convincing. There may well > be a case for rethinking just how EXPLAIN's options behave, but "ALL" > doesn't seem like a good conceptual model. >=20 > One idea that comes to mind is that VERBOSE could be redefined as some > sort of package of primitive options, including all of the "additional > information" options, with the ability to turn individual ones off again > if you wanted. So for example (VERBOSE, BUFFERS OFF) would give you > everything except buffer stats. We'd need a separate flag/flags to > control what VERBOSE originally did, but that doesn't bother me --- > it's an opportunity for more clarity of definition, anyway. I'm generally in favor of doing something like what Tom is suggesting with VERBOSE, but I also feel like it should be the default for formats like JSON. If you're asking for the output in JSON, then we really should include everything that a flag like VERBOSE would contain because you're pretty clearly planning to copy/paste that output into something else to read it anyway. > I do feel that it's a good idea to keep ANALYZE separate. "Execute > the query or not" is a mighty fundamental thing. I've never liked > that name for the option though --- maybe we could deprecate it > in favor of EXECUTE? Let's not fool ourselves by saying we'd 'deprecate' it because that implies, at least to me, that there's some intention of later on removing it and people will potentially propose patches to do that, which we will then almost certainly spend hours arguing about with the result being that we don't actually remove it. I'm all in favor of adding an alias for analyze called 'execute', as that makes a lot more sense and then updating our documentation to use it, with 'analyze is accepted as an alias' as a footnote. Thanks, Stephen --xwNy8398N4c2CfHX Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCgAGBQJc0gLnAAoJEO1sijiDR2RVjFwP/RXVvEX+u3zvnz2hor4dkIU7 0aL1kqSiXtx0JCcJgogGzzl8Cdo/wxS2Lw4JQsrp3D6kg2t9fotslJc27pPBtPYI xl5y9KFnWtb7aQDZSsVGdnPhKbADDzox9VpTJGa3Kih266WVwr+S8zosssTnLWwk p1M8Fxi35nc5zvomN1yb/juvUdc2diYapvXDRbKId/U9lNgSVuEG/RqeViDoYFj4 eFhbJsbPNYgvGeXDow2UKYCMpxw/G1LQbYZYyWZLeNROrnp0Gdv2MNsMqPezn9RN 4wvsekjaxlErYUxa6RpLWj0gyaTnPlA8tDydhKgDxtLwo/PvnvrQYDvvuTP3qYPi 4kzOHkUtwbOPcGtOOv2PL9HtpK7YzlgSUA21viN0FKkqK3icrqg6AO1onvlAU/nV 6YDnJPmv3TXVvqMjo6EBKTggqMu/va1Vs+QdWicDM695cG2Kt248wAxf2yDXGBVc agqnaIofnOD8VBt7arXYfoOBHXMFFmh3GZ/XNZycdOHBXABoJzMtcoreS4YITmDF bRIPPtUAkpkL5aFknG7r1FvcOMvYYw9VSMg+kIt7fUR4KnjFEwBBOFk1jlqr4OD4 /kjd92hb2VgkRmvemLHceg7WOjTJFj2YyaQvo25Ju+yVkZjP4bjsc3G7O5MBPsdM p0/r8//Qdw/rfle2IpUA =xJcs -----END PGP SIGNATURE----- --xwNy8398N4c2CfHX--