pgsql: Fix crashes with currtid() and currtid2()
От | Michael Paquier |
---|---|
Тема | pgsql: Fix crashes with currtid() and currtid2() |
Дата | |
Msg-id | E1jfZM5-0002HQ-SH@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix crashes with currtid() and currtid2() A relation that has no storage initializes rd_tableam to NULL, which caused those two functions to crash because of a pointer dereference. Note that in 11 and older versions, this has always failed with a confusing error "could not open file". These two functions are used by the Postgres ODBC driver, which requires them only when connecting to a backend strictly older than 8.1. When connected to 8.2 or a newer version, the driver uses a RETURNING clause instead whose support has been added in 8.2, so it should be possible to just remove both functions in the future. This is left as an issue to address later. While on it, add more regression tests for those functions as we never really had coverage for them, and for aggregates of TIDs. Reported-by: Jaime Casanova, via sqlsmith Author: Michael Paquier Reviewed-by: Álvaro Herrera Discussion: https://postgr.es/m/CAJGNTeO93u-5APMga6WH41eTZ3Uee9f3s8dCpA-GSSqNs1b=Ug@mail.gmail.com Backpatch-through: 12 Branch ------ REL_12_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/95e389b3c2ea35ad60419f285fd5c1d0511142e7 Modified Files -------------- src/backend/utils/adt/tid.c | 11 ++++ src/test/regress/expected/tid.out | 106 +++++++++++++++++++++++++++++++++++++ src/test/regress/parallel_schedule | 2 +- src/test/regress/serial_schedule | 1 + src/test/regress/sql/tid.sql | 63 ++++++++++++++++++++++ 5 files changed, 182 insertions(+), 1 deletion(-)
В списке pgsql-committers по дате отправления: