pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
6+ messages / 6 participants
[nested] [flat]

* pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
@ 2025-11-26 18:08 Jeff Davis <jdavis@postgresql.org>
  2025-11-28 18:00 ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Álvaro Herrera <alvherre@kurilemu.de>
  0 siblings, 1 reply; 6+ messages in thread

From: Jeff Davis @ 2025-11-26 18:08 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

Inline pg_ascii_tolower() and pg_ascii_toupper().

Discussion: https://postgr.es/m/450ceb6260cad30d7afdf155d991a9caafee7c0d.camel@j-davis.com
Reviewed-by: Chao Li <li.evan.chao@gmail.com>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ec4997a9d733e91b614d0c2f3e6445cc2905fd16

Modified Files
--------------
src/include/port.h      | 25 +++++++++++++++++++++++--
src/port/pgstrcasecmp.c | 26 --------------------------
2 files changed, 23 insertions(+), 28 deletions(-)



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
  2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
@ 2025-11-28 18:00 ` Álvaro Herrera <alvherre@kurilemu.de>
  2025-11-28 20:40   ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Tom Lane <tgl@sss.pgh.pa.us>
  0 siblings, 1 reply; 6+ messages in thread

From: Álvaro Herrera @ 2025-11-28 18:00 UTC (permalink / raw)
  To: Jeff Davis <jdavis@postgresql.org>; +Cc: pgsql-hackers@lists.postgresql.org

On 2025-Nov-26, Jeff Davis wrote:

> Inline pg_ascii_tolower() and pg_ascii_toupper().

I think this broke the CI on (some flavors of?) Windows.  In
https://cirrus-ci.com/task/6080935063453696
I got

[19:09:39.518] [1597/2357] Linking target src/backend/postgres.exe
[19:09:39.518] FAILED: [code=1] src/backend/postgres.exe 
[19:09:39.518] "cc" @src/backend/postgres.exe.rsp
[19:09:39.518] C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/backend/postgres_lib.a.p/commands_event_trigger.c.obj: in function `filter_list_to_array':
[19:09:39.518] c:\cirrus\build/../src/backend/commands/event_trigger.c:377:(.text+0x2a5): undefined reference to `pg_ascii_toupper'
[19:09:39.518] collect2.exe: error: ld returned 1 exit status
[19:09:39.520] [1598/2357] Compiling C object src/backend/snowball/dict_snowball.dll.p/libstemmer_stem_ISO_8859_1_indonesian.c.obj
[19:09:39.521] [1599/2357] Compiling C object src/backend/snowball/dict_snowball.dll.p/libstemmer_stem_ISO_8859_1_irish.c.obj
[19:09:39.616] [1600/2357] Compiling C object src/backend/snowball/dict_snowball.dll.p/libstemmer_stem_ISO_8859_1_english.c.obj
[19:09:39.648] [1601/2357] Compiling C object src/backend/replication/pgoutput/pgoutput.dll.p/pgoutput.c.obj
[19:09:39.760] [1602/2357] Compiling C object src/backend/snowball/dict_snowball.dll.p/libstemmer_stem_ISO_8859_1_german.c.obj
[19:09:39.762] ninja: build stopped: subcommand failed.


I'm surprised it didn't do anything to the buildfarm.  Are we lacking coverage?

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/





^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
  2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
  2025-11-28 18:00 ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Álvaro Herrera <alvherre@kurilemu.de>
@ 2025-11-28 20:40   ` Tom Lane <tgl@sss.pgh.pa.us>
  2025-11-29 01:54     ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Chao Li <li.evan.chao@gmail.com>
  2025-11-29 14:53     ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Andres Freund <andres@anarazel.de>
  0 siblings, 2 replies; 6+ messages in thread

From: Tom Lane @ 2025-11-28 20:40 UTC (permalink / raw)
  To: Álvaro Herrera <alvherre@kurilemu.de>; +Cc: Jeff Davis <jdavis@postgresql.org>; pgsql-hackers@lists.postgresql.org

=?utf-8?Q?=C3=81lvaro?= Herrera <alvherre@kurilemu.de> writes:
> On 2025-Nov-26, Jeff Davis wrote:
>> Inline pg_ascii_tolower() and pg_ascii_toupper().

> I think this broke the CI on (some flavors of?) Windows.  In
> https://cirrus-ci.com/task/6080935063453696
> I got

> [19:09:39.518] C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/backend/postgres_lib.a.p/commands_event_trigger.c.obj: in function `filter_list_to_array':
> [19:09:39.518] c:\cirrus\build/../src/backend/commands/event_trigger.c:377:(.text+0x2a5): undefined reference to `pg_ascii_toupper'

That's bizarre.  I checked recent cfbot rebuilds of some of my patches
and there's no problem, also just looking at port.h it's impossible
to see how this could happen.  Some weird compiled-code caching
misbehavior in CI, perhaps?

			regards, tom lane





^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
  2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
  2025-11-28 18:00 ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Álvaro Herrera <alvherre@kurilemu.de>
  2025-11-28 20:40   ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Tom Lane <tgl@sss.pgh.pa.us>
@ 2025-11-29 01:54     ` Chao Li <li.evan.chao@gmail.com>
  1 sibling, 0 replies; 6+ messages in thread

From: Chao Li @ 2025-11-29 01:54 UTC (permalink / raw)
  To: Tom Lane <tgl@sss.pgh.pa.us>; +Cc: Álvaro Herrera <alvherre@kurilemu.de>; Jeff Davis <jdavis@postgresql.org>; pgsql-hackers@lists.postgresql.org



> On Nov 29, 2025, at 04:40, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> 
> =?utf-8?Q?=C3=81lvaro?= Herrera <alvherre@kurilemu.de> writes:
>> On 2025-Nov-26, Jeff Davis wrote:
>>> Inline pg_ascii_tolower() and pg_ascii_toupper().
> 
>> I think this broke the CI on (some flavors of?) Windows.  In
>> https://cirrus-ci.com/task/6080935063453696
>> I got
> 
>> [19:09:39.518] C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/backend/postgres_lib.a.p/commands_event_trigger.c.obj: in function `filter_list_to_array':
>> [19:09:39.518] c:\cirrus\build/../src/backend/commands/event_trigger.c:377:(.text+0x2a5): undefined reference to `pg_ascii_toupper'
> 
> That's bizarre.  I checked recent cfbot rebuilds of some of my patches
> and there's no problem, also just looking at port.h it's impossible
> to see how this could happen.  Some weird compiled-code caching
> misbehavior in CI, perhaps?
> 
> regards, tom lane
> 
> 

ec4997a moved the two functions from pgstrcasecmp.c to port.h and made them inline, so maybe some old .o were not rebuilt and still need to link to the old functions.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/









^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
  2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
  2025-11-28 18:00 ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Álvaro Herrera <alvherre@kurilemu.de>
  2025-11-28 20:40   ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Tom Lane <tgl@sss.pgh.pa.us>
@ 2025-11-29 14:53     ` Andres Freund <andres@anarazel.de>
  2025-11-30 02:20       ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Thomas Munro <thomas.munro@gmail.com>
  1 sibling, 1 reply; 6+ messages in thread

From: Andres Freund @ 2025-11-29 14:53 UTC (permalink / raw)
  To: Tom Lane <tgl@sss.pgh.pa.us>; +Cc: Álvaro Herrera <alvherre@kurilemu.de>; Jeff Davis <jdavis@postgresql.org>; pgsql-hackers@lists.postgresql.org

Hi,

On 2025-11-28 15:40:19 -0500, Tom Lane wrote:
> =?utf-8?Q?=C3=81lvaro?= Herrera <alvherre@kurilemu.de> writes:
> > On 2025-Nov-26, Jeff Davis wrote:
> >> Inline pg_ascii_tolower() and pg_ascii_toupper().
> 
> > I think this broke the CI on (some flavors of?) Windows.  In
> > https://cirrus-ci.com/task/6080935063453696
> > I got
> 
> > [19:09:39.518] C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/backend/postgres_lib.a.p/commands_event_trigger.c.obj: in function `filter_list_to_array':
> > [19:09:39.518] c:\cirrus\build/../src/backend/commands/event_trigger.c:377:(.text+0x2a5): undefined reference to `pg_ascii_toupper'
> 
> That's bizarre.  I checked recent cfbot rebuilds of some of my patches
> and there's no problem, also just looking at port.h it's impossible
> to see how this could happen.  Some weird compiled-code caching
> misbehavior in CI, perhaps?

Yea, I suspect something with ccache is going wrong. We have before noticed
problems with ccache on mingw, where it somehow used .o files from the wrong
major versions, despite obviously the input files obviously not supposed to be
matching.  I don't know what could cause that...

For now I've cleared the task's cache, but that's clearly not a full fix...

Greetings,

Andres Freund





^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper().
  2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
  2025-11-28 18:00 ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Álvaro Herrera <alvherre@kurilemu.de>
  2025-11-28 20:40   ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Tom Lane <tgl@sss.pgh.pa.us>
  2025-11-29 14:53     ` Re: pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Andres Freund <andres@anarazel.de>
@ 2025-11-30 02:20       ` Thomas Munro <thomas.munro@gmail.com>
  0 siblings, 0 replies; 6+ messages in thread

From: Thomas Munro @ 2025-11-30 02:20 UTC (permalink / raw)
  To: Andres Freund <andres@anarazel.de>; +Cc: Tom Lane <tgl@sss.pgh.pa.us>; Álvaro Herrera <alvherre@kurilemu.de>; Jeff Davis <jdavis@postgresql.org>; pgsql-hackers@lists.postgresql.org

On Sun, Nov 30, 2025 at 3:53 AM Andres Freund <andres@anarazel.de> wrote:
> On 2025-11-28 15:40:19 -0500, Tom Lane wrote:
> > =?utf-8?Q?=C3=81lvaro?= Herrera <alvherre@kurilemu.de> writes:
> > > On 2025-Nov-26, Jeff Davis wrote:
> > >> Inline pg_ascii_tolower() and pg_ascii_toupper().
> >
> > > I think this broke the CI on (some flavors of?) Windows.  In
> > > https://cirrus-ci.com/task/6080935063453696
> > > I got
> >
> > > [19:09:39.518] C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/backend/postgres_lib.a.p/commands_event_trigger.c.obj: in function `filter_list_to_array':
> > > [19:09:39.518] c:\cirrus\build/../src/backend/commands/event_trigger.c:377:(.text+0x2a5): undefined reference to `pg_ascii_toupper'
> >
> > That's bizarre.  I checked recent cfbot rebuilds of some of my patches
> > and there's no problem, also just looking at port.h it's impossible
> > to see how this could happen.  Some weird compiled-code caching
> > misbehavior in CI, perhaps?
>
> Yea, I suspect something with ccache is going wrong. We have before noticed
> problems with ccache on mingw, where it somehow used .o files from the wrong
> major versions, despite obviously the input files obviously not supposed to be
> matching.  I don't know what could cause that...

To have compiled event_trigger.c without a warning about an undeclared
function and then generated an unresolvable symbol reference, I
suppose it must either have (1) failed to track the dependency on the
precompiled header (so ccache spat out a cached .o from before commit
ec4997a9 that it shouldn't have), or (2) failed to re-precompile the
header (so ccache spat out a cached .pch from before commit ec4997a9
that it shouldn't have and then this or some earlier build compiled a
broken .o)?  Hmm...





^ permalink  raw  reply  [nested|flat] 6+ messages in thread


end of thread, other threads:[~2025-11-30 02:20 UTC | newest]

Thread overview: 6+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-11-26 18:08 pgsql: Inline pg_ascii_tolower() and pg_ascii_toupper(). Jeff Davis <jdavis@postgresql.org>
2025-11-28 18:00 ` Álvaro Herrera <alvherre@kurilemu.de>
2025-11-28 20:40   ` Tom Lane <tgl@sss.pgh.pa.us>
2025-11-29 01:54     ` Chao Li <li.evan.chao@gmail.com>
2025-11-29 14:53     ` Andres Freund <andres@anarazel.de>
2025-11-30 02:20       ` Thomas Munro <thomas.munro@gmail.com>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox