aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-11-07 11:13:31 +0900
committerMichael Paquier <michael@paquier.xyz>2019-11-07 11:13:31 +0900
commit3feb6ace7cfe8edbf6db702de06dc9295f307a8e (patch)
tree2d6c6474f87170102a877fa850ef30281451a515 /src/backend/utils/adt/xml.c
parent6e3e6cc0e884a6091e1094dff29db430af08fb93 (diff)
downloadpostgresql-3feb6ace7cfe8edbf6db702de06dc9295f307a8e.tar.gz
postgresql-3feb6ace7cfe8edbf6db702de06dc9295f307a8e.zip
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
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-rw-r--r--src/backend/utils/adt/xml.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 3a493dd6bf7..3bc17164312 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++)
{