Обсуждение: Fix for compiler warning triggered in WinGetFuncArgInPartition()

Поиск
Список
Период
Сортировка

Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Greg Burd
Дата:
Hello,

This is a minor change that avoids a "maybe uninitialized" warning that
I've been seeing since:

25a30bbd423 Add IGNORE NULLS/RESPECT NULLS option to Window functions.
src/backend/postgres_lib.a.p/executor_nodeWindowAgg.c.o../src/backend/executor/nodeWindowAgg.c:
In function
‘WinGetFuncArgInPartition’:../src/backend/executor/nodeWindowAgg.c:3809:33:
warning:‘notnull_relpos’ may be used uninitialized
[-Wmaybe-uninitialized] 3809 |         } while (notnull_offset <
notnull_relpos);      |
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~../src/backend/executor/nodeWindowAgg.c:3723:33:
note: ‘notnull_relpos’was declared here 3723 |         int
notnull_relpos;      |                                 ^~~~~~~~~~~~~~


To calm the compiler's nerves this patch moves the initialization of
notnull_relpos to later in the function.

best.

-greg

Вложения

Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Nathan Bossart
Дата:
On Thu, Oct 09, 2025 at 10:21:23AM -0400, Greg Burd wrote:
> ‘WinGetFuncArgInPartition’:../src/backend/executor/nodeWindowAgg.c:3809:33:
> warning:‘notnull_relpos’ may be used uninitialized
> [-Wmaybe-uninitialized] 3809 |         } while (notnull_offset <
> notnull_relpos);      |                  
> ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~../src/backend/executor/nodeWindowAgg.c:3723:33:
> note: ‘notnull_relpos’was declared here 3723 |         int               
> notnull_relpos;      |                                 ^~~~~~~~~~~~~~

Just curious, what compiler/version is this?  I skimmed the buildfarm a bit
but didn't find any such warnings.

-- 
nathan



Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Nathan Bossart
Дата:
On Thu, Oct 09, 2025 at 09:41:15AM -0500, Nathan Bossart wrote:
> On Thu, Oct 09, 2025 at 10:21:23AM -0400, Greg Burd wrote:
>> ‘WinGetFuncArgInPartition’:../src/backend/executor/nodeWindowAgg.c:3809:33:
>> warning:‘notnull_relpos’ may be used uninitialized
>> [-Wmaybe-uninitialized] 3809 |         } while (notnull_offset <
>> notnull_relpos);      |                  
>> ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~../src/backend/executor/nodeWindowAgg.c:3723:33:
>> note: ‘notnull_relpos’was declared here 3723 |         int               
>> notnull_relpos;      |                                 ^~~~~~~~~~~~~~
> 
> Just curious, what compiler/version is this?  I skimmed the buildfarm a bit
> but didn't find any such warnings.

Looks like Tom just fixed this: https://postgr.es/c/71540dc

-- 
nathan



Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Greg Burd
Дата:
On Oct 9 2025, at 10:45 am, Nathan Bossart <nathandbossart@gmail.com> wrote:

> On Thu, Oct 09, 2025 at 09:41:15AM -0500, Nathan Bossart wrote:
>> On Thu, Oct 09, 2025 at 10:21:23AM -0400, Greg Burd wrote:
>>> ‘WinGetFuncArgInPartition’:../src/backend/executor/nodeWindowAgg.c:3809:33:
>>> warning:‘notnull_relpos’ may be used uninitialized
>>> [-Wmaybe-uninitialized] 3809 |         } while (notnull_offset <
>>> notnull_relpos);      |
>>> ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~../src/backend/executor/nodeWindowAgg.c:3723:33:
>>> note: ‘notnull_relpos’was declared here 3723 |         int
>>>
>>> notnull_relpos;      |                                 ^~~~~~~~~~~~~~
>>
>> Just curious, what compiler/version is this?  I skimmed the buildfarm
>> a bit
>> but didn't find any such warnings.
>
> Looks like Tom just fixed this: https://postgr.es/c/71540dc

Scooped!  Thanks Tom. :)

regards.

-greg

> --
> nathan



Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Tom Lane
Дата:
Greg Burd <greg@burd.me> writes:
> To calm the compiler's nerves this patch moves the initialization of
> notnull_relpos to later in the function.

I was seeing the same warning for "forward" in the buildfarm,
so I moved all of these initializations down.  Otherwise,
looks like we independently invented the same fix ...

            regards, tom lane



Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Tom Lane
Дата:
Nathan Bossart <nathandbossart@gmail.com> writes:
> Just curious, what compiler/version is this?  I skimmed the buildfarm a bit
> but didn't find any such warnings.

My warning-scraping script found

 arowana       | 2025-10-07 04:51:16 | nodeWindowAgg.c:3723:8: warning: 'forward' may be used uninitialized in this
function[-Wmaybe-uninitialized] 
 arowana       | 2025-10-07 04:51:16 | nodeWindowAgg.c:3790:8: warning: 'notnull_relpos' may be used uninitialized in
thisfunction [-Wmaybe-uninitialized] 
 buri          | 2025-10-05 21:30:13 | nodeWindowAgg.c:3723:8: warning: 'forward' may be used uninitialized in this
function[-Wmaybe-uninitialized] 
 buri          | 2025-10-05 21:30:13 | nodeWindowAgg.c:3790:8: warning: 'notnull_relpos' may be used uninitialized in
thisfunction [-Wmaybe-uninitialized] 
 dhole         | 2025-10-05 07:34:51 | nodeWindowAgg.c:3723:8: warning: 'forward' may be used uninitialized in this
function[-Wmaybe-uninitialized] 
 dhole         | 2025-10-05 07:34:51 | nodeWindowAgg.c:3790:8: warning: 'notnull_relpos' may be used uninitialized in
thisfunction [-Wmaybe-uninitialized] 
 rhinoceros    | 2025-10-09 11:10:27 | nodeWindowAgg.c:3724:8: warning: 'forward' may be used uninitialized in this
function[-Wmaybe-uninitialized] 
 rhinoceros    | 2025-10-09 11:10:27 | nodeWindowAgg.c:3809:2: warning: 'notnull_relpos' may be used uninitialized in
thisfunction [-Wmaybe-uninitialized] 
 shelduck      | 2025-10-09 12:14:10 | nodeWindowAgg.c:3724:6: warning: 'forward' may be used uninitialized in this
function[-Wmaybe-uninitialized] 
 shelduck      | 2025-10-09 12:14:10 | nodeWindowAgg.c:3809:2: warning: 'notnull_relpos' may be used uninitialized in
thisfunction [-Wmaybe-uninitialized] 

These all seem to be RHEL7 derivatives running gcc 4.8.something.
Since Greg saw it only for notnull_relpos, I'm guessing he's
running something else.

            regards, tom lane



Re: Fix for compiler warning triggered in WinGetFuncArgInPartition()

От
Greg Burd
Дата:

On Oct 9 2025, at 11:28 am, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Nathan Bossart <nathandbossart@gmail.com> writes:
>> Just curious, what compiler/version is this?  I skimmed the buildfarm
>> a bit
>> but didn't find any such warnings.
> 
> My warning-scraping script found
> 
> arowana       | 2025-10-07 04:51:16 | nodeWindowAgg.c:3723:8: warning:
> 'forward' may be used uninitialized in this function [-Wmaybe-uninitialized]
> arowana       | 2025-10-07 04:51:16 | nodeWindowAgg.c:3790:8: warning:
> 'notnull_relpos' may be used uninitialized in this function [-Wmaybe-uninitialized]
> buri          | 2025-10-05 21:30:13 | nodeWindowAgg.c:3723:8: warning:
> 'forward' may be used uninitialized in this function [-Wmaybe-uninitialized]
> buri          | 2025-10-05 21:30:13 | nodeWindowAgg.c:3790:8: warning:
> 'notnull_relpos' may be used uninitialized in this function [-Wmaybe-uninitialized]
> dhole         | 2025-10-05 07:34:51 | nodeWindowAgg.c:3723:8: warning:
> 'forward' may be used uninitialized in this function [-Wmaybe-uninitialized]
> dhole         | 2025-10-05 07:34:51 | nodeWindowAgg.c:3790:8: warning:
> 'notnull_relpos' may be used uninitialized in this function [-Wmaybe-uninitialized]
> rhinoceros    | 2025-10-09 11:10:27 | nodeWindowAgg.c:3724:8: warning:
> 'forward' may be used uninitialized in this function [-Wmaybe-uninitialized]
> rhinoceros    | 2025-10-09 11:10:27 | nodeWindowAgg.c:3809:2: warning:
> 'notnull_relpos' may be used uninitialized in this function [-Wmaybe-uninitialized]
> shelduck      | 2025-10-09 12:14:10 | nodeWindowAgg.c:3724:6: warning:
> 'forward' may be used uninitialized in this function [-Wmaybe-uninitialized]
> shelduck      | 2025-10-09 12:14:10 | nodeWindowAgg.c:3809:2: warning:
> 'notnull_relpos' may be used uninitialized in this function [-Wmaybe-uninitialized]
> 
> These all seem to be RHEL7 derivatives running gcc 4.8.something.
> Since Greg saw it only for notnull_relpos, I'm guessing he's
> running something else.

GCC 14.2.1 on Fedora 42.  I wonder why I didn't see the warning for
'forward' too.

>             regards, tom lane

best.

-greg