postgrespro.git / summary / log / commit / refs
commit 3feb6ace7cfe8edbf6db702de06dc9295f307a8e
Author: Michael Paquier <michael@paquier.xyz>
Date: Thu Nov 07 02:13:31 2019 +0000
Check after errors of SPI_execute() in xml.c
SPI gets used to build a list of relation OIDs for XML object
generation, and one code path building a list uses SPI_execute() without
looking at errors it produces. So fix that.
Author: Mark Dilger
Reviewed-by: Michael Paquier, Pavel Stehule
Discussion: https://postgr.es/m/17d30445-4862-7917-170f-84328dcd292d@gmail.com
src/backend/utils/adt/xml.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 3a493dd6bf..3bc1716431 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -2461,8 +2461,12 @@ query_to_oid_list(const char *query)
{
uint64 i;
List *list = NIL;
+ int spi_result;
- SPI_execute(query, true, 0);
+ spi_result = SPI_execute(query, true, 0);
+ if (spi_result != SPI_OK_SELECT)
+ elog(ERROR, "SPI_execute returned %s for %s",
+ SPI_result_code_string(spi_result), query);
for (i = 0; i < SPI_processed; i++)
{
[parent: 6e3e6cc0e884]