diff options
author | Michael Paquier <michael@paquier.xyz> | 2019-11-07 11:13:31 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2019-11-07 11:13:31 +0900 |
commit | 3feb6ace7cfe8edbf6db702de06dc9295f307a8e (patch) | |
tree | 2d6c6474f87170102a877fa850ef30281451a515 /src/backend/utils/adt/xml.c | |
parent | 6e3e6cc0e884a6091e1094dff29db430af08fb93 (diff) | |
download | postgresql-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.c | 6 |
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++) { |