Teach convert() and friends to avoid copying when possible.

Nathan Bossart <nathan@postgresql.org>

Commit: b14b1eb4da4c97afec24cf8956e842b98ebb2a51
Author: Nathan Bossart <nathan@postgresql.org>
Date: 2023-12-04T17:55:18Z
Releases: 17.0
Teach convert() and friends to avoid copying when possible.

Presently, pg_convert() allocates a new bytea and copies the result
regardless of whether any conversion actually happened.  This
commit adjusts this function to return the source pointer as-is if
no conversion occurred.  This optimization isn't expected to make a
tremendous difference, but it still seems worthwhile to avoid
unnecessary memory allocations.

Author: Yurii Rashkovskii
Reviewed-by: Bertrand Drouvot
Discussion: https://postgr.es/m/CA%2BRLCQyknBPSWXRBQGOi6aYEcdQ9RpH9Kch4GjoeY8dQ3D%2Bvhw%40mail.gmail.com

Files

PathChange+/−
src/backend/utils/mb/mbutils.c modified +6 −6

Discussion