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 1lxWbT-0000kj-2i for pgsql-hackers@arkaria.postgresql.org; Sun, 27 Jun 2021 15:21:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lxWbS-0006Ma-0x for pgsql-hackers@arkaria.postgresql.org; Sun, 27 Jun 2021 15:21:46 +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 1lxWbR-0006MS-NL for pgsql-hackers@lists.postgresql.org; Sun, 27 Jun 2021 15:21:45 +0000 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lxWbJ-000142-F3 for pgsql-hackers@lists.postgresql.org; Sun, 27 Jun 2021 15:21:42 +0000 Received: by mail-pf1-x430.google.com with SMTP id y4so11863493pfi.9 for ; Sun, 27 Jun 2021 08:21:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=0qichSvuS2ypj+RSm1hQ/uM2llxDHhA9fFlbR3fnCUQ=; b=dSV4L/SiWnmYCuT3j4PpmiMn2Tu2U2iPTrCCVDk22r5jPlH3S8t5TeEEnXhfKByJ2B K6R4uUx+txVIPNbHgLH5+j7IcjZ6beQn7BKAB9r/kqKK8dd8iH6yo0ShOeQNJBLU87Kz u8d+m+rJPLTxdJqW2cbSDNaT9rxCTilMWQVNFTBqeBSAGBz1nwWmRsSwT/xLjNaUHYYA C07lXAuyrd7Af0+Wr1Mtx/E8+x2eKo4Fh16Nj3pDm7vhkZfmD8vIydeSiUJZI9MXhLKE /u8IGIB7ooy4pV30GYwO4w2bFkyjIqjk312vGZP3d0LiJ6kYwjchKMEaCtE/agFUpG9N ENYA== 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; bh=0qichSvuS2ypj+RSm1hQ/uM2llxDHhA9fFlbR3fnCUQ=; b=GYGNzTuRw+xsiRAV+F5BU0SEBbNZUc/Tij4DZZ2wmsjlC/9t5wLdZKN55rHSzriDn7 pkC7ig0Xh/PU0xoGraIKymJCbprT/V/mxlU+0zTCOb3HBoXPiUQ6WSMqGV0iDFCMIA98 oGOm5ShFNxC9QEfOqxUIglfER+Pnc9tQ/i4Un6kmwokKBUc7fGB3lSvBjBuEE69I1r+u Y8zJ/UO2u9miFLlisPFnJhm/Jnxu3L36R0GRNU9/xIEQYuvemB/IWZRqixz8wTdqZiGS v/IzK7Ke1VMDye0c+fqwcmQeC6WfmNdY7cBgFFLAS8yxZpWoD4S/wMPUY+DpZxwfLRmm bUjw== X-Gm-Message-State: AOAM532OzQdDfgZX7mBdMVf45QAtJab99Ep5BHa6C95TS9DxT6YUwLfD haAv0YKUcqzrSbReVI9y5dU= X-Google-Smtp-Source: ABdhPJzutrFJSTsVj43FQi3BnwksSd1agtPVtrfGUh5RRFscJPwbydiQ9e00Gv2x6qSRSh4wvHpEMg== X-Received: by 2002:aa7:829a:0:b029:2e9:e53:198d with SMTP id s26-20020aa7829a0000b02902e90e53198dmr20789078pfm.72.1624807296325; Sun, 27 Jun 2021 08:21:36 -0700 (PDT) Received: from nol (2001-b011-0001-721f-1649-3133-8a3e-8398.dynamic-ip6.hinet.net. [2001:b011:1:721f:1649:3133:8a3e:8398]) by smtp.gmail.com with ESMTPSA id y21sm1337761pfb.120.2021.06.27.08.21.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Jun 2021 08:21:35 -0700 (PDT) Date: Sun, 27 Jun 2021 23:21:37 +0800 From: Julien Rouhaud To: Tom Lane Cc: pgsql-hackers@lists.postgresql.org Subject: Re: Deparsing rewritten query Message-ID: <20210627152137.3rwfmfswwfrxmlsr@nol> References: <20210627041138.zklczwmu3ms4ufnk@nol> <3176554.1624804492@sss.pgh.pa.us> <20210627150343.zslwnw7g564f2zz4@nol> <8085.1624806845@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8085.1624806845@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, Jun 27, 2021 at 11:14:05AM -0400, Tom Lane wrote: > Julien Rouhaud writes: > > > Agreed. One the other hand having such a function in core may ensure that any > > significant change in those area will keep an API to retrieve the final query > > representation. > > My point is precisely that I'm unwilling to make such a promise. > > I do not buy that this capability is worth very much, given that > we've gotten along fine without it for twenty-plus years. If you > want to have it as an internal, might-change-at-any-time API, > that seems all right. I'm totally fine with a might-change-at-any-time API, but not with a might-disappear-at-anytime API. If exposing get_query_def() can become virtually useless in a few releases with no hope to get required in-core change for retrieving the final query representation, I agree this we can stop the discussion here.