Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kgViG-0005uS-Tg for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Nov 2020 16:26:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kgViF-00008V-Lj for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Nov 2020 16:26:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kgViF-00007p-9X for pgsql-hackers@lists.postgresql.org; Sat, 21 Nov 2020 16:26:11 +0000 Received: from mail-il1-x141.google.com ([2607:f8b0:4864:20::141]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kgVi7-0002VQ-RA for pgsql-hackers@postgresql.org; Sat, 21 Nov 2020 16:26:09 +0000 Received: by mail-il1-x141.google.com with SMTP id w8so11413430ilg.12 for ; Sat, 21 Nov 2020 08:26:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=7pyIQpztTHnG4imuda/qWXk28BWKFdqhTGRZGjMy/j0=; b=OdxMjcwF9IEtzcFQtdX8kgLifM4S4OloPesjMY/Hc60P3BS6ou1y+XLgprBAe6kz5Y 7wMCHb/VXdmuQ7XYsLUuAW/8TrLdzUoCFoEiMry5i8k45k3KhDa7aKjuRF12Gzoe8vWV 5Ia+CTIyW8T54OFyGTnpVIDUSkIw28uS6hS3HcsPuGRn7tEYzyUIl0Voc13ds4T6CrKv g4taQ0To971PXHQJCehn2evhkT6NxI0+CU/Jnjlxv+PUg28BVKYDoxTNfSH/Mpr0vzCi MuOVQ2NOW3wqK1fTIpZbEckUUdemQfedqvZoRDJRfZXDfD9ULxCobC20WumpVVKhZ/0o WOyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=7pyIQpztTHnG4imuda/qWXk28BWKFdqhTGRZGjMy/j0=; b=dA0XUVdhWGIAFalvJKGCB988q4R9wcEMZkHCxXt4TBIqTEpfsiuxhtevoCTzEgyztf Hjvn0qCuili+I4M7J0fiJOr/t8mDju0F4GFKdjtDk9iRfhmMP9jJuxg5uXFanpKwnhoY AMiWLiOa6GGD9DaItnTJPMa2ee/JgJm1Mka4js0KnFFDidbrLchI9tqxJ/pwWNzr4bg6 IZ88SMA5jD/KA2W3PE9IWx6pWSY+m0yCDMZDy6kTC5PGAyynsgLaEuFxhvAqM78XCkw7 wuUssCZKgiA95FzxK/YlS4ZIVwHlDhm3Pdn+IU2eHBwZ8MRin9QbcODYG4ROU5lASkwo LFCQ== X-Gm-Message-State: AOAM531qDjflYEXW188W1jYeJmpRctTm69ui40P6xXIyk9kyN9uefarP 1RrhoQfJ7ZE1oSJnZeQWINTPXg== X-Google-Smtp-Source: ABdhPJx3vEsh2ra6IzbOmWkqDFrOFG4+hGxNj9ly/Pz1vjw6FybXefO1qtMqTC/NnhdcJ9phrenKgA== X-Received: by 2002:a92:7109:: with SMTP id m9mr31028908ilc.232.1605975962798; Sat, 21 Nov 2020 08:26:02 -0800 (PST) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id h15sm824407iow.13.2020.11.21.08.26.01 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 21 Nov 2020 08:26:01 -0800 (PST) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id 0A6478007F7; Sat, 21 Nov 2020 10:26:00 -0600 (CST) Date: Sat, 21 Nov 2020 10:26:00 -0600 From: Justin Pryzby To: Peter Eisentraut Cc: David Rowley , Tom Lane , pgsql-hackers@postgresql.org, Andres Freund Subject: Re: jit and explain nontext Message-ID: <20201121162600.GN24784@telsasoft.com> References: <20201014193859.GS9241@telsasoft.com> <3643530.1602724513@sss.pgh.pa.us> <20201015014326.GU9241@telsasoft.com> <20201017192134.GD9241@telsasoft.com> <20201120161622.GI24784@telsasoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On Sat, Nov 21, 2020 at 08:39:11AM +0100, Peter Eisentraut wrote: > On 2020-11-20 17:16, Justin Pryzby wrote: > > It matters if it was planned with jit but executed without jit. > > > > postgres=# DEALLOCATE p; SET jit=on; SET jit_above_cost=0; prepare p as select from generate_series(1,9); explain(format yaml) execute p; SET jit=off; explain(format yaml) execute p; > > > > Patched shows this for both explains: > > JIT: + > > Functions: 3 + > > > > Unpatched shows only in the first case. > > In this context, I don't see the point of this change. If you set jit=off > explicitly, then there is no need to clutter the EXPLAIN output with a bunch > of zeroes about JIT. I think the idea is that someone should be able to parse the YAML/XML/other output by writing something like a['JIT']['Functions'] rather than something like a.get('JIT',{}).get('Functions',0) The standard seems to be that parameters that can change during execution should change the *values* in the non-text output, but the *keys* should not disappear just because (for example) parallel workers weren't available, or someone (else) turned off jit. We had discussion about this earlier in the year: https://www.postgresql.org/message-id/20200728033622.GC20393@telsasoft.com (Since it's machine-readable output, Key: 0 is Consistency and Completeness, not Clutter.) -- Justin