From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: In hstore_plpython, avoid crashing when return value isn't a map |
Date: | 2023-04-27 15:55:25 |
Message-ID: | E1ps3xs-005BeD-Ck@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
In hstore_plpython, avoid crashing when return value isn't a mapping.
Python 3 changed the behavior of PyMapping_Check(), breaking the
test in plpython_to_hstore() that verifies whether a function result
to be transformed is acceptable. A backwards-compatible fix is to
first verify that the object doesn't pass PySequence_Check().
Perhaps accidentally, our other uses of PyMapping_Check() already
follow uses of PySequence_Check(), so that no other bugs were
created by this change.
Per bug #17908 from Alexander Lakhin. Back-patch to all supported
branches.
Dmitry Dolgov and Tom Lane
Discussion: https://postgr.es/m/17908-3f19a125d56a11d6@postgresql.org
Branch
------
REL_13_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/de2dfa0538f4b2c75c5368c21cf4f187dc8bb501
Modified Files
--------------
contrib/hstore_plpython/expected/hstore_plpython.out | 11 +++++++++++
contrib/hstore_plpython/hstore_plpython.c | 8 +++++++-
contrib/hstore_plpython/sql/hstore_plpython.sql | 11 +++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2023-04-27 19:19:01 | pgsql: Fix wrong construct_array_builtin() call in GUCArrayDelete() |
Previous Message | Amit Kapila | 2023-04-27 09:06:06 | pgsql: Add a test to verify that subscription to the standby works. |