Mark pageinspect's disk-accessing functions as parallel restricted.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Nov 2022 20:37:10 +0000 (15:37 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Nov 2022 20:37:10 +0000 (15:37 -0500)
commitaeaaf520f409cf314f97c811d2713c99858f035d
treedd8cd751ffc66b4f55f75d99da75b02abf0ca4c7
parent51b5834cd53f0bd068729043b55f7da3ca6bb15f
Mark pageinspect's disk-accessing functions as parallel restricted.

These functions have been marked parallel safe, but the buildfarm's
response to commit e2933a6e1 exposed the flaw in that thinking:
if you try to use them on a temporary table, and they run inside
a parallel worker, they'll fail with "cannot access temporary tables
during a parallel operation".

Fix that by marking them parallel restricted instead.  Maybe someday
we'll have a better answer and can reverse this decision.

Back-patch to v15.  To go back further, we'd have to devise variant
versions of pre-1.10 pageinspect versions.  Given the lack of field
complaints, it doesn't seem worth the trouble.  We'll just deem
this case unsupported pre-v15.  (If anyone does complain, it might
be good enough to update the markings manually in their DBs.)

Discussion: https://postgr.es/m/E1ox94a-000EHu-VH@gemulon.postgresql.org
contrib/pageinspect/Makefile
contrib/pageinspect/meson.build
contrib/pageinspect/pageinspect--1.10--1.11.sql [new file with mode: 0644]
contrib/pageinspect/pageinspect.control