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 1ru0yE-001eap-VL for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Apr 2024 02:12:23 +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 1ru0yE-00FZfr-13 for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Apr 2024 02:12:22 +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 1ru0yD-00FZeS-NP for pgsql-hackers@lists.postgresql.org; Tue, 09 Apr 2024 02:12:21 +0000 Received: from sss.pgh.pa.us ([68.162.161.243]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ru0yB-001fYq-04 for pgsql-hackers@postgresql.org; Tue, 09 Apr 2024 02:12:21 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 4392CGkh3604470; Mon, 8 Apr 2024 22:12:16 -0400 From: Tom Lane To: Robert Haas cc: "pgsql-hackers@postgresql.org" Subject: Re: post-freeze damage control In-reply-to: References: Comments: In-reply-to Robert Haas message dated "Mon, 08 Apr 2024 15:47:34 -0400" MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-ID: <3604468.1712628736.1@sss.pgh.pa.us> Content-Transfer-Encoding: quoted-printable Date: Mon, 08 Apr 2024 22:12:16 -0400 Message-ID: <3604469.1712628736@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Robert Haas writes: > On Mon, Apr 8, 2024 at 10:42=E2=80=AFAM Heikki Linnakangas wrote: >> Can you elaborate, which patches you think were not ready? Let's make >> sure to capture any concrete concerns in the Open Items list. > Hi, > I'm moving this topic to a new thread for better visibility and less > admixture of concerns. I'd like to invite everyone here present to > opine on which patches we ought to be worried about. Here are a few > picks from me to start things off. My intention here is to convey "I > find these scary" rather than "these commits were irresponsible," so I > respectfully ask that you don't take the choice to list your patch > here as an attack, or the choice not to list your patch here as an > endorsement. I have another one that I'm not terribly happy about: Author: Alexander Korotkov Branch: master [72bd38cc9] 2024-04-08 01:27:52 +0300 Transform OR clauses to ANY expression I don't know that I'd call it scary exactly, but I do think it was premature. A week ago there was no consensus that it was ready to commit, but Alexander pushed it (or half of it, anyway) despite that. A few concrete concerns: * Yet another planner GUC. Do we really need or want that? * What the medical community would call off-label usage of query jumbling. I'm not sure this is even correct as-used, and for sure it's using that code for something never intended. Nor is the added code adequately (as in, at all) documented. * Patch refuses to group anything but Consts into the SAOP transformation. I realize that if you want to produce an array Const you need Const inputs, but I wonder why it wasn't considered to produce an ARRAY[] construct if there are available clauses with pseudo-constant (eg Param) comparison values. * I really, really dislike jamming this logic into prepqual.c, where it has no business being. I note that it was shoved into process_duplicate_ors without even the courtesy of expanding the header comment: * process_duplicate_ors * Given a list of exprs which are ORed together, try to apply * the inverse OR distributive law. Another reason to think this wasn't a very well chosen place is that the file's list of #include's went from 4 entries to 11. Somebody should have twigged to the idea that this was off-topic for prepqual.c. * OrClauseGroupKey is not a Node type, so why does it have a NodeTag? I wonder what value will appear in that field, and what will happen if the struct is passed to any code that expects real Nodes. I could probably find some other nits if I spent more time on it, but I think these are sufficient to show that this was not commit-ready. regards, tom lane