Ensure we allocate NAMEDATALEN bytes for names in Index Only Scans
authorDavid Rowley <drowley@postgresql.org>
Wed, 1 May 2024 01:21:21 +0000 (13:21 +1200)
committerDavid Rowley <drowley@postgresql.org>
Wed, 1 May 2024 01:21:21 +0000 (13:21 +1200)
commita63224be49b86fccbf1bf1809d516626bce7ba11
treeee80c74ffa3772fd108c67f719c8f20a2b2ca907
parent7562a9bd7100702ce7878a17f4aaac1df08a8e09
Ensure we allocate NAMEDATALEN bytes for names in Index Only Scans

As an optimization, we store "name" columns as cstrings in btree
indexes.

Here we modify it so that Index Only Scans convert these cstrings back
to names with NAMEDATALEN bytes rather than storing the cstring in the
tuple slot, as was happening previously.

Bug: #17855
Reported-by: Alexander Lakhin
Reviewed-by: Alexander Lakhin, Tom Lane
Discussion: https://postgr.es/m/17855-5f523e0f9769a566@postgresql.org
Backpatch-through: 12, all supported versions
src/backend/executor/nodeIndexonlyscan.c
src/include/catalog/pg_opclass.dat
src/include/nodes/execnodes.h
src/test/regress/expected/index_including.out
src/test/regress/sql/index_including.sql