Fix performance problem when building a lossy tidbitmap.
As pointed out by Sergey Koposov, repeated invocations of tbm_lossify can
make building a large tidbitmap into an O(N^2) operation. To fix, make
sure we remove more than the minimum amount of information per call, and
add a fallback path to behave sanely if we're unable to fit the bitmap
within the requested amount of memory.
This has been wrong since the tidbitmap code was written, so back-patch
to all supported branches.
src/backend/nodes/tidbitmap.c | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
pgsql-committers by date
|Next:||From: Bruce Momjian||Date: 2011-08-20 22:22:30|
|Subject: pgsql: Have thread_test create its test files in the currentdirectory, |
|Previous:||From: Bruce Momjian||Date: 2011-08-19 23:31:47|
|Subject: pgsql: Fix copyright.pl to properly us 'tie' function.|