[COMMITTERS] pgsql: Fix datumSerialize infrastructure to not crash on non-varlenada

Поиск
Список
Период
Сортировка
От Tom Lane
Тема [COMMITTERS] pgsql: Fix datumSerialize infrastructure to not crash on non-varlenada
Дата
Msg-id E1dfDlm-0008B1-Kx@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix datumSerialize infrastructure to not crash on non-varlena data.

Commit 1efc7e538 did a poor job of emulating existing logic for touching
Datums that might be expanded-object pointers.  It didn't check for typlen
being -1 first, which meant it could crash on fixed-length pass-by-ref
values, and probably on cstring values as well.  It also didn't use
DatumGetPointer before VARATT_IS_EXTERNAL_EXPANDED, which while currently
harmless is not according to documentation nor prevailing style.

I also think the lack of any explanation as to why datumSerialize makes
these particular nonobvious choices is pretty awful, so fix that.

Per report from Jarred Ward.  Back-patch to 9.6 where this code came in.

Discussion: https://postgr.es/m/6F61E6D2-2F5E-4794-9479-A429BE1CEA4B@simple.com

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/fe578cbd4b4262496d44cb5cd110eae3c4aff48c

Modified Files
--------------
src/backend/utils/adt/datum.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: [COMMITTERS] pgsql: Reword some unclear comments
Следующее
От: Peter Eisentraut
Дата:
Сообщение: [COMMITTERS] pgsql: doc: Add missing pieces to logical replication protocol doc