Band-aid patch for Shraibman's 'out of free buffers' bug: disable the
authorTom Lane <[email protected]>
Sun, 23 Mar 2003 21:55:14 +0000 (21:55 +0000)
committerTom Lane <[email protected]>
Sun, 23 Mar 2003 21:55:14 +0000 (21:55 +0000)
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

index 85a001663ff73b60ac0f7547b0d66df932adb6a1..3eab63e74340c5a1ced7c92eacb240c594822800 100644 (file)
@@ -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))