find_variable() and its subroutines transiently scribble on the passed-in "name" string, even though we've declared that "const". The string is in fact temporary, so this is not very harmful, but it's confusing and will produce compiler warnings with late-model gcc. Rearrange the code so that instead of modifying the given string, we make temporary copies of the parts that we need separated out. (I used loc_alloc so that the copies are short-lived and don't need to be freed explicitly.) This code is poorly structured and confusing, to the point where my first attempt to fix it was wrong. It is also under-tested, allowing the broken v1 patch to nonetheless pass regression. I'll restrain myself from rewriting it completely, and just add some comments and more test cases. We will probably want to back-patch this once gcc 15.2 becomes more widespread, but for now just put it in master. Author: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/1324889.1764886170@sss.pgh.pa.us
PostgreSQL Database Management System
This directory contains the source code distribution of the PostgreSQL database management system.
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.
Copyright and license information can be found in the file COPYRIGHT.
General documentation about this version of PostgreSQL can be found at https://www.postgresql.org/docs/devel/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/devel/installation.html.
The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.