Re: Extended Statistics set/restore/clear functions.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Tomas Vondra <tomas(at)vondra(dot)me>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Extended Statistics set/restore/clear functions.
Date: 2025-12-05 00:37:32
Message-ID: 1341064.1764895052@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Michael Paquier <michael(at)paquier(dot)xyz> 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 will always evaluate as "true" for the address of "escontext" will never be NULL [-Waddress]
((escontext) != 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 will always evaluate as "true" for the address of "escontext" will never be NULL [-Waddress]
((escontext) != 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 will always evaluate as "true" for the address of "escontext" will never be NULL [-Waddress]
((escontext) != 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 will always evaluate as "true" for the address of "escontext" will never be NULL [-Waddress]
((escontext) != 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 will always evaluate as "true" for the address of "escontext" will never be NULL [-Waddress]
((escontext) != 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2025-12-05 00:41:21 Re: BUG #19095: Test if function exit() is used fail when linked static
Previous Message Michael Paquier 2025-12-05 00:23:25 Re: PG version is not seen in pg_upgrade test log