From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Fix bogus provolatile/proparallel markings on a few built-in fun |
Date: | 2018-03-30 22:15:30 |
Message-ID: | E1f22J0-0001vd-IU@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix bogus provolatile/proparallel markings on a few built-in functions.
Richard Yen reported that pg_upgrade failed if the target cluster had
force_parallel_mode = on, because binary_upgrade_create_empty_extension()
is marked parallel restricted, allowing it to be executed in parallel
mode, which complains because it tries to acquire an XID.
In general, no function that might try to modify database data should
be considered parallel safe or restricted, since execution of it might
force XID acquisition. We found several other examples of this mistake.
Furthermore, functions that execute user-supplied SQL queries or query
fragments, or pull data from user-supplied cursors, had better be marked
both volatile and parallel unsafe, because we don't know what the supplied
query or cursor might try to do. There were several tsquery and XML
functions that had the wrong proparallel marking for this, and some of
them were even mislabeled as to volatility.
All these bugs are old, dating back to 9.6 for the proparallel mistakes
and much further for the provolatile mistakes. We can't force a
catversion bump in the back branches, but we can at least ensure that
installations initdb'd in future have the right values.
Thomas Munro and Tom Lane
Discussion: https://postgr.es/m/CAEepm=2sNDScSLTfyMYu32Q=ob98ZGW-vM_2oLxinzSABGQ6VA@mail.gmail.com
Branch
------
REL_10_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/283262cd9580ad5fe0ef624a6b9e9c4f9182cf73
Modified Files
--------------
src/include/catalog/pg_proc.h | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2018-03-30 23:03:53 | pgsql: Enhance pg_stat_wal_receiver view to display host and port of se |
Previous Message | Tom Lane | 2018-03-30 20:18:26 | pgsql: Ensure that WAL pages skipped by a forced WAL switch are zero-fi |