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 1t8O9i-003sa8-Ob for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 18:19: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 1t8O9g-00H0Mq-6c for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 18:19:52 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8O9f-00H0Kp-Sm for pgsql-hackers@lists.postgresql.org; Tue, 05 Nov 2024 18:19:52 +0000 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t8O9d-000LND-IO for pgsql-hackers@postgresql.org; Tue, 05 Nov 2024 18:19:51 +0000 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-a99f646ff1bso802043266b.2 for ; Tue, 05 Nov 2024 10:19:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730830788; x=1731435588; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9Sb0w9yPFlV073X6u22ZMxK/e0uO0Edpx6OBJ/z207s=; b=IeY4VJLepJl6RGrRWFpIqe6ztbnAR/I9yh//GR1bRPKeTTWOcxSvidLUboBNclv5Tp 309WM8upo4m0KhnLRugq3e6/fmbjwLditn7z9UPaRnsXeCUswh6ygn2JS2Ki0klpPHmE HFQQrVTFfBoezR2MpYrEaS0WRLeYQfaFXi4cpdP7c+QRQtb6lZKukmpgCytr22LUZP5b How4cusZvS0T4FbWhguO7cdkIXuwZQeWX1977k7DVZv3mHuzMXasbBZpQs9PgsVeth4Q uUBPAr15UTabvSa5N15sqwtmER4oUNb/Iiap81FdZewud9M2XfY8nUwNi1qinzvkgpgz GLLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730830788; x=1731435588; h=content-transfer-encoding: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=9Sb0w9yPFlV073X6u22ZMxK/e0uO0Edpx6OBJ/z207s=; b=prccc7l+lrU4scHWRF6Jw1ur/r9wrdqbJfTUL02f4RM5x/TWIaL7lVDauatTIqrYNu bImw/T54Ku00rnz9JiAfi/yk3h6Rp4MutEh5i7S8tcKhCiqgrXAy2gszzcU9aL6VyrEZ ny9a6sjUZM52sK8eM6OVNKDvMoee3xfEGS5QGXceTijswV5crJ9QG1nKn7hs7kC2OXzH sfrCKNzLxfIVHwIrYK4dQfK2D7NGF47WNScI94fYOUy6aAl4+/CTXsQZdOAZC7DFHsZf FHoiJpEYYubXPFHuh9/HLEuIpEufryxnTEHTsVZtN92jjVBiuA5koF4Zffn8Y4wo33D3 8Yzw== X-Gm-Message-State: AOJu0YwqYgFzKKaPOlBEK8pCAg1G7eZ336icql1yUdJ7MlvIqoramFrH zfYtbF26tvG46yNX8jD7Ro8Ld9HNrjXwk/fCpyMsdmqaHd7QTAiC3WPqAbdvuAkk+QANJuM7OTo 7FbT2OanEJM8qVZR1TSsdXbpLaRc= X-Google-Smtp-Source: AGHT+IEBt0NV+ZjEBPwD6adfA9r13wGyJrMTPYIxKjedGuwLdb/O37Y1sncqeGBVnsnYrxWoQWKI/ZGDjtSJnXvbkrA= X-Received: by 2002:a17:907:3f17:b0:a9a:2e12:1a06 with SMTP id a640c23a62f3a-a9e3a6c7c1fmr2230695666b.51.1730830787793; Tue, 05 Nov 2024 10:19:47 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Robert Haas Date: Tue, 5 Nov 2024 13:19:36 -0500 Message-ID: Subject: Re: Proposals for EXPLAIN: rename ANALYZE to EXECUTE and extend VERBOSE To: Nikolay Samokhvalov Cc: pgsql-hackers@postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk 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 migh= t be also confusing sometimes. Let's include them so VERBOSE would be reall= y 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 EXEC= UTE 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. --=20 Robert Haas EDB: http://www.enterprisedb.com