From 579adfd6542b20b5112a4f43945c5559cd8bc1eb Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 23 Mar 2003 21:55:14 +0000 Subject: [PATCH] Band-aid patch for Shraibman's 'out of free buffers' bug: disable the keys_are_unique optimization introduced in 7.3. A better fix will appear in 7.4, but I think back-patching it is too risky for the stable branch. --- src/backend/access/index/indexam.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c index 9852e7d0787..daed238a326 100644 --- a/src/backend/access/index/indexam.c +++ b/src/backend/access/index/indexam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.62.2.1 2003/01/08 19:41:57 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.62.2.2 2003/03/23 21:55:14 tgl Exp $ * * INTERFACE ROUTINES * index_open - open an index relation by relation OID @@ -415,7 +415,12 @@ index_getnext(IndexScanDesc scan, ScanDirection direction) * * Note that we hold the pin on the single tuple's buffer throughout * the scan once we are in this state. + * + * XXX disabled for 7.3.3 because it results in intra-query buffer leak + * when a multi-index indexscan is done. Full fix seems too risky to + * backpatch. */ +#ifdef NOT_USED if (scan->keys_are_unique && scan->got_tuple) { if (ScanDirectionIsForward(direction)) @@ -433,6 +438,7 @@ index_getnext(IndexScanDesc scan, ScanDirection direction) else return NULL; } +#endif /* Release any previously held pin */ if (BufferIsValid(scan->xs_cbuf)) -- 2.39.5