gbt_var_node_cp_len() contained logic to ensure that its choice of a common prefix length didn't truncate away part of a multibyte character. However, that was really dead code, because we have not allowed truncation of text-string data types sinceef770cbb6, and it seems unlikely that that behavior could ever get resurrected. The code is still reachable via gbt_var_penalty, but for that usage it hardly matters if we break in the middle of a multibyte character: we're just calculating a small correction factor that is arguably bunkum anyway in non-C locales. Hence, delete said code. That actually removes all need for gbtree_vinfo.eml, which allows const-ification of the gbtree_vinfo structs in which we were changing it, which removes one headache for future attempts to thread-ify the backend. (Curiously, all this infrastructure was itself added byef770cbb6. Not sure why Teodor didn't see the contradiction.) Author: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Discussion: https://postgr.es/m/AH*AvQCYKhQGVvPWi1GiU4oY.8.1781609375063.Hmail.3020001251@tju.edu.cn
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/.