Fix SPI error cleanup and memory leak Since the SPI stack has been moved from TopTransactionContext to TopMemoryContext, setting _SPI_stack to NULL in AtEOXact_SPI() leaks memory. In fact, we don't need to do that anymore: We just leave the allocated stack around for the next SPI use. Also, refactor the SPI cleanup so that it is run both at transaction end and when returning to the main loop on an exception. The latter is necessary when a procedure calls a COMMIT or ROLLBACK command that itself causes an error. Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/30c66e77be1d890c3cca766259c0bec80bcac1b5 Modified Files -------------- src/backend/executor/spi.c | 30 ++++++++++++++++-------------- src/backend/tcop/postgres.c | 2 ++ src/include/executor/spi.h | 1 + 3 files changed, 19 insertions(+), 14 deletions(-)
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера