Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8OEY-003tC7-Qs for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 18:24:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t8OEW-00H6HD-6o for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 18:24:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8OEV-00H6H5-Ss for pgsql-hackers@lists.postgresql.org; Tue, 05 Nov 2024 18:24:52 +0000 Received: from mail-vk1-xa30.google.com ([2607:f8b0:4864:20::a30]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t8OES-000NDI-G9 for pgsql-hackers@postgresql.org; Tue, 05 Nov 2024 18:24:51 +0000 Received: by mail-vk1-xa30.google.com with SMTP id 71dfb90a1353d-50d32d82bd8so1846039e0c.1 for ; Tue, 05 Nov 2024 10:24:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730831088; x=1731435888; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xEAX4qVY1L0Egug7vcM+rH7zDQzoDBZe3MxLkqAnz+o=; b=OH02h8kXYjh+V1RjeFBFsuPEl38L/WI7nODJC9ufelLMC0M0r3caJ69llZ/fIT/ZMX lnTLVwQUs3j2oP8DOIKIzD64qinFT00Jrkgw+sXG2yOSCbShf7TK0cJ5vBSZiJXnMbYl szNgkghIdtHM+sRDjt8oYI5GZlNJ86GTMwsobeLJdqN34SR1GCdXG5lTBA50NQ61o+sR 1Yyu6sZ59dqEkEqU7FinmIUPvVDWEYoKfLNFaSbKhkI9ZKRvBCo4i6B3WgduH5dT8fSA RiY/rQRGcilTUpnu9wFYemDZR7Noy0RXLkts2srZYoUfabTMO7w759Gf3Q+N/9xZz67r uRwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730831088; x=1731435888; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xEAX4qVY1L0Egug7vcM+rH7zDQzoDBZe3MxLkqAnz+o=; b=TVwDIOnaAZXjA7fD4cqRukT3Tj3tbxq8PQUQM3Z3qNwmDrjQhAdRVaC/5ifofZL6Ea TxkQBnB5eXlGPCOJw0x+LO2MNQ9g835zndGrTYDHg6RFFcwMYTG8DAGaIZpleuDBxyBe +F07ptYvYMC5Kq+T3U/xACIBL6hi5AkNCs2nR00ujEdUMI5Ossqax/LQXCbdFreCh4hh Tp/SNc9zSlb15nSn/F+QPuN2G17aQ9QZOj4g+CqHYSp1BDxbz9wChE+ianD33JAyJp7V fhGiTnEzu7ElpqW7Z3kR/l+A6gZko2gR4hIXJMKxqBr8eS+O1p5k/e9beV2MsJOw0OVN bWHw== X-Gm-Message-State: AOJu0Yx5Wq0NgGxVYB9D/cvzrJ9x+74YCm8vFpTT2qVsgoplz0E2q4C/ OE1kT1Tm6p7cUVd/g8twySNT9PHdDeBLWaxKMDrz+znaZdwZiqfqDQq3kceNRnBU/W5/FjxEtzP 6nzf1Vw14pTMk2S1q0an/pMZMBWIaTGMK X-Google-Smtp-Source: AGHT+IGDIWuw0UMNrnadNDSymkEOa+Wh+rYGMOWy3lB5M4O6/wbxPEmXJDdRkwEihVrrLW/LVSFCnk4HmqhOnQy4+hQ= X-Received: by 2002:a05:6122:3116:b0:50f:fe39:a508 with SMTP id 71dfb90a1353d-5106b1b8f95mr19857985e0c.11.1730831087979; Tue, 05 Nov 2024 10:24:47 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nikolay Samokhvalov Date: Tue, 5 Nov 2024 10:24:36 -0800 Message-ID: Subject: Re: Proposals for EXPLAIN: rename ANALYZE to EXECUTE and extend VERBOSE To: Robert Haas Cc: pgsql-hackers@postgresql.org Content-Type: multipart/alternative; boundary="0000000000002a54a806262e842a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002a54a806262e842a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Nov 5, 2024 at 10:19=E2=80=AFAM Robert Haas = wrote: > On Tue, Nov 5, 2024 at 1:02=E2=80=AFPM Nikolay Samokhvalov > wrote: > > hi, I have a proposal, resulted from numerous communications with > various folks, both very experienced and new Postgres users: > > > > 1) EXPLAIN ANALYZE Is sometimes very confusing (because there is > ANALYZE). Let's rename it to EXPLAIN EXECUTE? > > The trouble is that EXPLAIN EXECUTE already means something. > > robert.haas=3D# explain execute foo; > ERROR: prepared statement "foo" does not exist > > Granted, that would not make it impossible to make EXPLAIN (EXECUTE) a > synonym for EXPLAIN (ANALYZE), but IMHO it would be pretty confusing > if EXPLAIN EXECUTE and EXPLAIN (EXECUTE) did different things. > > > 2) VERBOSE doesn't include BUFFERS, and doesn't include SETTINGS; it > might be also confusing sometimes. Let's include them so VERBOSE would be > really verbose? > > I agree that the naming here isn't great, but I think making the > options non-orthogonal would probably be worse. > > > 3) small thing about grammar: allow omitting parentheses, so EXPLAIN > EXECUTE VERBOSE would work. > > Perhaps surprisingly, it turns out that this is not a small change. As > Tom mentions, this would have a pretty large blast radius. In fact, > the reason I wrote the patch to introduce parenthesized options for > EXPLAIN was precisely because the unparenthesized option syntax does > not scale nicely at all. > I appreciate all yours and Tom's very quick comments here! Item 3 is already solved, as it turned out. Let's focus on item 2. Is it really impossible to make VERBOSE really verbose? --0000000000002a54a806262e842a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Nov 5, 2024 at 10:19=E2=80=AFAM R= obert Haas <robertmhaas@gmail.c= om> wrote:
On Tue, Nov 5, 2024 at 1:02=E2=80=AFPM Nikolay= Samokhvalov
<samokhvalov@= gmail.com> wrote:
> hi, I have a proposal, resulted from numerous communications with vari= ous folks, both very experienced and new Postgres users:
>
> 1) EXPLAIN ANALYZE Is sometimes very confusing (because there is ANALY= ZE). Let's rename it to EXPLAIN EXECUTE?

The trouble is that EXPLAIN EXECUTE already means something.

robert.haas=3D# explain execute foo;
ERROR:=C2=A0 prepared statement "foo" does not exist

Granted, that would not make it impossible to make EXPLAIN (EXECUTE) a
synonym for EXPLAIN (ANALYZE), but IMHO it would be pretty confusing
if EXPLAIN EXECUTE and EXPLAIN (EXECUTE) did different things.

> 2) VERBOSE doesn't include BUFFERS, and doesn't include SETTIN= GS; it might be also confusing sometimes. Let's include them so VERBOSE= would be really verbose?

I agree that the naming here isn't great, but I think making the
options non-orthogonal would probably be worse.

> 3) small thing about grammar: allow omitting parentheses, so EXPLAIN E= XECUTE VERBOSE would work.

Perhaps surprisingly, it turns out that this is not a small change. As
Tom mentions, this would have a pretty large blast radius. In fact,
the reason I wrote the patch to introduce parenthesized options for
EXPLAIN was precisely because the unparenthesized option syntax does
not scale nicely at all.

I appreciate a= ll yours and Tom's very quick comments here!

I= tem 3 is already solved, as it turned out.

Let= 's focus on item 2. Is it really impossible to make VERBOSE really verb= ose?
--0000000000002a54a806262e842a--