6ed83d5famade it so tuplesorts could use a bump.c memory allocator for non-bounded sorts in order to save memory and increase performance. That commit didn't get the memory accounting correct for datum sorts and mistakenly passed 0 bytes to tuplesort_puttuple_common(). That was correct for byval types, but failed to take into account palloc'd memory for byref types. Fix by using datumGetSize() when using the bump allocator and by using GetMemoryChunkSpace() when not. Backpatch to v17, where6ed83d5fawas added. Author: Mario Karuza <mkaruza.pg@icloud.com> Reviewed-by: David Rowley <dgrowleyml@gmail.com> Reviewed-by: Joao Detomini <joao.detomini@enterprisedb.com> Discussion: https://postgr.es/m/e9f9f54337cd86a982837763958518cdbf08863c.camel%40icloud.com Backpatch-through: 17
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/17/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/17/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/.