The system complains about buffer leaks when defining an operator with a commutator that has already been defined.
Apply this patch.
===================================================================
*** 1.10 1995/03/10 19:56:11
--- src/backend/catalog/pg_operator.c 1995/06/10 00:13:26
***************
*** 809,814 ****
--- 809,815 ----
setheapoverride(true);
(void) heap_replace(pg_operator_desc, &itemPointerData, tup);
setheapoverride(false);
+
}
}
heap_endscan(pg_operator_scan);
***************
*** 815,820 ****
--- 816,825 ----
heap_close(pg_operator_desc);
+ /* release the buffer properly */
+ if (BufferIsValid(buffer))
+ ReleaseBuffer(buffer);
+
return;
}
***************
*** 837,842 ****
--- 842,852 ----
values[ Anum_pg_operator_oprcom - 1 ] = (Datum)NULL;
replaces[ Anum_pg_operator_oprcom - 1 ] = ' ';
+
+ /* release the buffer properly */
+ if (BufferIsValid(buffer))
+ ReleaseBuffer(buffer);
+
}
/* check and update the negator, if necessary */
***************
*** 866,871 ****
--- 876,886 ----
(void) heap_replace(pg_operator_desc, &itemPointerData, tup);
setheapoverride(false);
}
+
+ /* release the buffer properly */
+ if (BufferIsValid(buffer))
+ ReleaseBuffer(buffer);
+
heap_endscan(pg_operator_scan);
heap_close(pg_operator_desc);