mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
Fix null-pointer crash in postgres_fdw's conversion_error_callback.
Commit c7b7311f6
adjusted conversion_error_callback to always use
information from the query's rangetable, to avoid doing catalog lookups
in an already-failed transaction. However, as a result of the utterly
inadequate documentation for make_tuple_from_result_row, I failed to
realize that fsstate could be NULL in some contexts. That led to a
crash if we got a conversion error in such a context. Fix by falling
back to the previous coding when fsstate is NULL. Improve the
commentary, too.
Per report from Andrey Borodin. Back-patch to 9.6, like the previous
patch.
Discussion: https://postgr.es/m/08916396-55E4-4D68-AB3A-BD6066F9E5C0@yandex-team.ru
This commit is contained in:
@ -4110,6 +4110,9 @@ CONTEXT: whole-row reference to foreign table "ftx"
|
||||
SELECT sum(c2), array_agg(c8) FROM ft1 GROUP BY c8; -- ERROR
|
||||
ERROR: invalid input syntax for type integer: "foo"
|
||||
CONTEXT: processing expression at position 2 in select list
|
||||
ANALYZE ft1; -- ERROR
|
||||
ERROR: invalid input syntax for type integer: "foo"
|
||||
CONTEXT: column "c8" of foreign table "ft1"
|
||||
ALTER FOREIGN TABLE ft1 ALTER COLUMN c8 TYPE user_enum;
|
||||
-- ===================================================================
|
||||
-- subtransaction
|
||||
|
Reference in New Issue
Block a user