Thread: pgsql: Do a conditional SPI_push/SPI_pop when replanning a query in
pgsql: Do a conditional SPI_push/SPI_pop when replanning a query in
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Do a conditional SPI_push/SPI_pop when replanning a query in RevalidateCachedPlan. This is to avoid a "SPI_ERROR_CONNECT" failure when the planner calls a SPI-using function and we are already inside one. The alternative fix is to expect callers of RevalidateCachedPlan to do this, which seems likely to result in additional hard-to-detect bugs of omission. Per reports from Frank van Vugt and Marek Lewczuk. Back-patch to 8.3. It's much harder to trigger the bug in 8.3, due to a smaller set of cases in which plans can be invalidated, but it could happen. (I think perhaps only a SI reset event could make 8.3 fail here, but that's certainly within the realm of possibility.) Tags: ---- REL8_4_STABLE Modified Files: -------------- pgsql/src/backend/utils/cache: plancache.c (r1.27 -> r1.27.2.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/plancache.c?r1=1.27&r2=1.27.2.1)