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 1v9prE-009IR9-LE for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Oct 2025 19:11:20 +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 1v9prC-004O7x-Bx for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Oct 2025 19:11:17 +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 1v9prC-004O7F-21 for pgsql-hackers@lists.postgresql.org; Fri, 17 Oct 2025 19:11:17 +0000 Received: from mail-io1-xd36.google.com ([2607:f8b0:4864:20::d36]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v9pr8-002lm9-2y for pgsql-hackers@postgresql.org; Fri, 17 Oct 2025 19:11:16 +0000 Received: by mail-io1-xd36.google.com with SMTP id ca18e2360f4ac-93e7468e84bso89049039f.2 for ; Fri, 17 Oct 2025 12:11:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760728273; x=1761333073; darn=postgresql.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=jQnKUZekNFLJIbuVlCgayvw+AjgoLXGjO0XXlcAWmko=; b=nkbFszw/9Ism0fTN0rxlcNf2bh+HC8cycamZ/YNrLlF74GTVaPlXPd3rl+djIWf7cn mcRTNKo+pGzZmRYYbY+I4oScf+v+O1A0O3uiivqdNBGr7lDOih4IHGuhLi2orrcgsG6a YsnRHwcCjOZNcjpoR80+9pGE4RqREGGAraYEavCa0dA+zy/gHrtlMZWUU5cEJJnALo18 7/RsJCP5VDMzh87WDu5uaQBxWdEKxB/u0mIpVBlh+WCEzqlZBDAWCpEG9+OM5Fwz8bpB Uh+8TPH7k44I4k7QSba5zbjglESRwcrkD+bmVB+28uPm4tclhq5CcBdGLUi7JPP/VGKg KnNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760728273; x=1761333073; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jQnKUZekNFLJIbuVlCgayvw+AjgoLXGjO0XXlcAWmko=; b=UdXgIaBAaUDm5Hajg7syR5qb0kdYkv+J1oO+NmqppGevyTyebtClrVxKxbNfxuSjoB 8alSGYAhvmePa6I1KfzsyRFryItEbk+f+QDwuO6qxR1zSqZs3/dVlKplMDej8/A6KC8N PqdW1bqiZNCCsE/f6dlMJ88IeXjjh4ucrSBodQnwCp+0W0LpqpymIhz0C7g5LhfENnXj CQg+hEgndVK1P6KOri5jwnwYm4SsDdOV6aL1TSa1wdanLfZ2PQAxjPxP9W3d0nnmf+xW uvWIuRA4hvlMLVaXq3Bp3F51C/fImN9DWv7KBckAV3FMRPynXsJlTkcsQt9KDVXICTfz CsJg== X-Gm-Message-State: AOJu0YzXqIoL8ECTs8AGbyHAxTpaJzfejI88CtyvopAqcYIuK8ejvaor ideUu30BNRgGcW6vmYLl4+Gd2Vp5pWKmGe0AoaSKrSVkbf51GOJn1HIU X-Gm-Gg: ASbGnctogv+9RlK/d46qwTRXidJyWFzkmkEZUU92R/ZRXQriNSH6H9bkGofxepjJljK r22k8GylmEowexgeBqx+hYl+T4ymUQMORp7PkI1FRWcNNMno0iIfVGXFcjohxtR4CEsaW1KNCxR IbUnl/Hy6gC0gwCfYvdHv1Kj9o79dNWJ0FYt2jo6WZZ+/d/+X8LV61oad+Pl1e8/GhIklPPGvRM Qgnq6kCwewFTAYMASxQyNIUkRBYinjp4aChtZWsaiWISkJSY7a709f9cuW9bLu/pzxmG/trpQu1 FwfQAfEzHISh9sInARaRB7rzB7fC2Sueu7+YO6fEpvrIf+fng28fUOR+95thaPDxm8w1axStvKP YPY1cmRsFZxbxvdh5jDgA4SwZRphQe4+FQ3OJ71710LlKgrJh8AyT8I0V0uDocrKj17XCrJ1dPA nvkGVMG4wC3NAK1W401u4ZrIjWSoo5DZibXgz4NyxCCHiCgDLp7ApMJ+CvNt2KwXddrz8kgqYx1 yj24BmiLaggDVk= X-Google-Smtp-Source: AGHT+IE9Pg+D5j5p5WuFi93hPOanXqffgMR7po05fsFdoSlebETLWSlCM42EE8XwG14VnDtiAWMkHQ== X-Received: by 2002:a05:6602:1509:b0:93e:802d:2e5a with SMTP id ca18e2360f4ac-93e802d3366mr399095139f.6.1760728272954; Fri, 17 Oct 2025 12:11:12 -0700 (PDT) Received: from nathan (162-195-168-172.lightspeed.stlsmo.sbcglobal.net. [162.195.168.172]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-5a8a964a8a8sm165828173.29.2025.10.17.12.11.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 12:11:12 -0700 (PDT) Date: Fri, 17 Oct 2025 14:11:10 -0500 From: Nathan Bossart To: Tom Lane Cc: pgsql-hackers@postgresql.org, david@justatheory.com, Andrew Dunstan Subject: Re: abi-compliance-check failure due to recent changes to pg_{clear,restore}_{attribute,relation}_stats() Message-ID: References: <1713509.1760721320@sss.pgh.pa.us> <1723302.1760726712@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ElAiJVQmFZUs29PJ" Content-Disposition: inline In-Reply-To: <1723302.1760726712@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --ElAiJVQmFZUs29PJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Oct 17, 2025 at 02:45:12PM -0400, Tom Lane wrote: > Nathan Bossart writes: >> On Fri, Oct 17, 2025 at 01:15:20PM -0400, Tom Lane wrote: >>> FWIW, I favor the approach of having an in-tree, per-branch file >>> containing the commit hash of a commit that is the current ABI >>> reference for that branch. > >> I'm new to the topic, but IMHO the per-branch file approach is by far the >> best approach. Not only is it much more flexible, but we could even use it >> as a centralized list of ABI breaks for a given branch with justification >> for each. I can't think of any strong advantages of keeping this stuff in >> git metadata. git itself uses a file for blame.ignoreRevsFile... > > Good idea. We'd have to allow comments in the file, but that's > probably a good thing anyway. I've attached a first try. You'll notice that I have borrowed heavily from .git-blame-ignore-revs. Some other things that might be worthwhile: * Add commentary about when this file is needed (i.e., after the .0). * Add instructions for creating file on new stable branch to RELEASE_CHANGES. * Adjust format for readability. It is a bit comment-heavy at the moment. Anything else? I suppose this idea is entirely dependent on the maintainers of the abi-compliance-check code to adapt to it, so we'll need buy-in from them, too. -- nathan --ElAiJVQmFZUs29PJ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=v1-0001-Add-.abi-compliance-history-file.patch From 4564f78bb861e2862cc037a95b517c38b38d06b6 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Fri, 17 Oct 2025 14:03:50 -0500 Subject: [PATCH v1 1/1] Add .abi-compliance-history file. --- .abi-compliance-history | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .abi-compliance-history diff --git a/.abi-compliance-history b/.abi-compliance-history new file mode 100644 index 00000000000..0148d0fcda4 --- /dev/null +++ b/.abi-compliance-history @@ -0,0 +1,19 @@ +# This file lists commits on the REL_18_STABLE branch that break ABI +# compatibility in ways that have been deemed acceptable (e.g., removing an +# extern function with no third-party uses). The primary intent of this file +# is to placate the ABI compliance checks on the buildfarm, but it also serves +# as a central location to document the justification for each. +# +# Add new entries by adding the output of the following to the top of the file: +# +# $ git log --pretty=format:"%H # %cd%n# %s" $ABIBREAKGITHASH -1 --date=iso +# +# Be sure to include additional context in a comment below the entry. + +c8af5019bee5c57502db830f8005a01cba60fee0 # 2025-10-15 12:47:33 -0500 +# Fix lookups in pg_{clear,restore}_{attribute,relation}_stats(). +# +# This commit replaced two functions related to lookups/privilege checks for +# the new stats stuff in v18 with RangeVarGetRelidExtended(). These functions +# were not intended for use elsewhere, exist in exactly one release (18.0), and +# do not have any known third-party callers. -- 2.39.5 (Apple Git-154) --ElAiJVQmFZUs29PJ--