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.96) (envelope-from ) id 1vRJpM-00BA37-0e for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Dec 2025 00:37:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vRJpK-005xUA-37 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Dec 2025 00:37:39 +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.96) (envelope-from ) id 1vRJpK-005xU2-29 for pgsql-hackers@lists.postgresql.org; Fri, 05 Dec 2025 00:37:38 +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.96) (envelope-from ) id 1vRJpI-003C88-2p for pgsql-hackers@lists.postgresql.org; Fri, 05 Dec 2025 00:37:38 +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 5B50bW3p1341065; Thu, 4 Dec 2025 19:37:32 -0500 From: Tom Lane To: Michael Paquier cc: Corey Huinker , jian he , Tomas Vondra , pgsql-hackers@lists.postgresql.org Subject: Re: Extended Statistics set/restore/clear functions. In-reply-to: References: Comments: In-reply-to Michael Paquier message dated "Wed, 26 Nov 2025 11:06:10 +0900" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <1341063.1764895052.1@sss.pgh.pa.us> Content-Transfer-Encoding: quoted-printable Date: Thu, 04 Dec 2025 19:37:32 -0500 Message-ID: <1341064.1764895052@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Michael Paquier writes: > Okay. I have gone other these two and after an extra round of > polishing, mainly around comments (some suggested by Chao, actually), > style, a fix for the test with valid UTF8 sequences failing in > non-UTF8 databases, plus a few more tests that were missing, I have > applied the two patches for the input functions. I notice that since e1405aa5e went in, a number of older buildfarm animals are issuing warnings about it: In file included from pg_dependencies.c:21:0: pg_dependencies.c: In function "dependencies_scalar": ../../../../src/include/nodes/miscnodes.h:54:15: warning: the comparison w= ill always evaluate as "true" for the address of "escontext" will never be= NULL [-Waddress] ((escontext) !=3D NULL && IsA(escontext, ErrorSaveContext) && \\ ^ pg_dependencies.c:497:8: note: in expansion of macro "SOFT_ERROR_OCCURRED" if (SOFT_ERROR_OCCURRED(&escontext)) ^ ../../../../src/include/nodes/miscnodes.h:54:15: warning: the comparison w= ill always evaluate as "true" for the address of "escontext" will never be= NULL [-Waddress] ((escontext) !=3D NULL && IsA(escontext, ErrorSaveContext) && \\ ^ pg_dependencies.c:542:8: note: in expansion of macro "SOFT_ERROR_OCCURRED" if (SOFT_ERROR_OCCURRED(&escontext)) ^ ../../../../src/include/nodes/miscnodes.h:54:15: warning: the comparison w= ill always evaluate as "true" for the address of "escontext" will never be= NULL [-Waddress] ((escontext) !=3D NULL && IsA(escontext, ErrorSaveContext) && \\ ^ pg_dependencies.c:572:8: note: in expansion of macro "SOFT_ERROR_OCCURRED" if (SOFT_ERROR_OCCURRED(&escontext)) ^ In file included from pg_ndistinct.c:21:0: pg_ndistinct.c: In function "ndistinct_scalar": ../../../../src/include/nodes/miscnodes.h:54:15: warning: the comparison w= ill always evaluate as "true" for the address of "escontext" will never be= NULL [-Waddress] ((escontext) !=3D NULL && IsA(escontext, ErrorSaveContext) && \\ ^ pg_ndistinct.c:438:8: note: in expansion of macro "SOFT_ERROR_OCCURRED" if (SOFT_ERROR_OCCURRED(&escontext)) ^ ../../../../src/include/nodes/miscnodes.h:54:15: warning: the comparison w= ill always evaluate as "true" for the address of "escontext" will never be= NULL [-Waddress] ((escontext) !=3D NULL && IsA(escontext, ErrorSaveContext) && \\ ^ pg_ndistinct.c:488:9: note: in expansion of macro "SOFT_ERROR_OCCURRED" if (!SOFT_ERROR_OCCURRED(&escontext)) ^ The above is from rhinoceros, but about half a dozen other animals are reporting the same. They are all running very old gcc versions, mostly from RHEL7 or CentOS 7. This of course arises because the source code is passing the address of a local ErrorSaveContext variable to that macro. We don't have any other instances of that coding pattern AFAICS, so I wonder if that was really the most adapted way to do it. Looking at the code, it seems to be turning around and stuffing a different error message into a passed-in ErrorSaveContext, which feels a little weird. It may be that there's not a better way, in which case I'll probably just teach my buildfarm-warning-scraper script to ignore these warnings, as it's already doing for some other warnings from these same animals (-Wmissing-braces mostly). But I thought I'd raise a question about it. Also, I don't think these errdetail messages meet our style guidelines: errdetail("Invalid \"%s\" value.", PG_DEPENDENCIES= _KEY_ATTRIBUTES)); They're supposed to be complete sentences. regards, tom lane