Index: doc/src/sgml/libpq.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/libpq.sgml,v
retrieving revision 1.113
diff -c -c -r1.113 libpq.sgml
*** doc/src/sgml/libpq.sgml	20 Mar 2003 06:23:30 -0000	1.113
--- doc/src/sgml/libpq.sgml	22 Mar 2003 03:27:47 -0000
***************
*** 1151,1156 ****
--- 1151,1175 ----
    </para>
    </listitem>
    </varlistentry>
+ 
+   <varlistentry>
+   <term><function>PQfreemem</function></term>
+   <listitem>
+   <para>
+    Frees memory allocated by <application>libpq</>
+ <synopsis>
+ void PQfreemem(void *ptr);
+ </synopsis>
+ </para>
+ 
+ <para>
+    Frees memory allocated by <application>libpq</>, particularly
+    <function>PQescapeBytea</function> and <function>PQunescapeBytea</function>.
+    It is needed by Win32, which can not free memory across
+    DLL's, unless multithreaded DLL's (/MD in VC6) are used.
+   </para>
+   </listitem>
+   </varlistentry>
    </variablelist>
     
   </sect2>
Index: src/interfaces/libpq/fe-exec.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/fe-exec.c,v
retrieving revision 1.126
diff -c -c -r1.126 fe-exec.c
*** src/interfaces/libpq/fe-exec.c	10 Mar 2003 22:28:21 -0000	1.126
--- src/interfaces/libpq/fe-exec.c	22 Mar 2003 03:27:53 -0000
***************
*** 284,289 ****
--- 284,302 ----
  	return buffer;
  }
  
+ 
+ /*
+  *		PQfreemem - safely frees memory allocated
+  *
+  * Needed mostly by Win32, unless multithreaded DLL (/MD in VC6)
+  * Used for freeing memory from PQescapeByte()a/PQunescapeBytea()
+  */
+ void PQfreemem(void *ptr)
+ {
+ 	free(ptr);
+ }
+ 
+ 
  /* ----------------
   * Space management for PGresult.
   *
Index: src/interfaces/libpq/libpq-fe.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/libpq-fe.h,v
retrieving revision 1.89
diff -c -c -r1.89 libpq-fe.h
*** src/interfaces/libpq/libpq-fe.h	20 Mar 2003 06:23:30 -0000	1.89
--- src/interfaces/libpq/libpq-fe.h	22 Mar 2003 03:27:54 -0000
***************
*** 254,259 ****
--- 254,260 ----
  			  size_t *bytealen);
  extern unsigned char *PQunescapeBytea(const unsigned char *strtext,
  				size_t *retbuflen);
+ extern void PQfreemem(void *ptr);
  
  
  /* Simple synchronous query */
