pgsql: Fix failure to account for memory used by tuplestore_putvalues()
От | Tom Lane |
---|---|
Тема | pgsql: Fix failure to account for memory used by tuplestore_putvalues() |
Дата | |
Msg-id | E1QWuTn-0001zT-Fi@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix failure to account for memory used by tuplestore_putvalues(). This oversight could result in a tuplestore using much more than the intended amount of memory. It would only happen in a code path that loaded a tuplestore via tuplestore_putvalues(), and many of those won't emit huge amounts of data; but cases such as holdable cursors and plpgsql's RETURN NEXT command could have the problem. The fix ensures that the tuplestore will switch to write-to-disk mode when it overruns work_mem. The potential overrun was finite, because we would still count the space used by the tuple pointer array, so the tuplestore code would eventually flip into write-to-disk mode anyway. When storing wide tuples we would go far past the expected work_mem usage before that happened; but this may account for the lack of prior reports. Back-patch to 8.4, where tuplestore_putvalues was introduced. Per bug #6061 from Yann Delorme. Branch ------ REL9_1_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/3cfecae3a34853c631eeb75671c6b82638e8e0aa Modified Files -------------- src/backend/utils/sort/tuplestore.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
В списке pgsql-committers по дате отправления: