Reported by:

Ginger Latta

Date:

Sat Jun 10 23:27:59 PDT 1995

Description

The system complains about buffer leaks when defining an operator with a commutator that has already been defined.

Fix

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);