Keep PQfreeNotify() around for binary compatibility.
PQescapeString> performs this operation.
-The
-parameter
from> points to the first character of the string that
+The parameter
from> points to the first character of the string that
is to be escaped, and the
length> parameter counts the
number of characters in this string. (A terminating zero byte is
neither necessary nor counted.)
to> shall point to a
PQescapeBytea> returns an escaped version of the
-
from parameter binary string in memory allocated with
malloc()>.
+
from parameter binary string in memory
+ allocated with malloc()>, and must be freed using
+ PQfreemem()>.
The return string has all special characters replaced
so that they can be properly processed by the PostgreSQL string literal
parser, and the bytea input function. A terminating zero
such as might be returned by PQgetvalue when applied to a
bytea column. PQunescapeBytea converts
this string representation into its binary representation.
- It returns a pointer to a buffer allocated with malloc(), or null on error, and puts the size
- of the buffer in
to_length.
+ It returns a pointer to a buffer allocated with
+ malloc(), or null on error, and puts the size of
+ the buffer in
to_length. The memory must be
+ freed using PQfreemem()>.
+
Frees memory allocated by
libpq>, particularly
- PQescapeBytea and PQunescapeBytea.
+ PQescapeBytea,
+ PQunescapeBytea,
+ and PQnotifies.
It is needed by Win32, which can not free memory across
DLL's, unless multithreaded DLL's (/MD in VC6) are used.
} PGnotify;
After processing a PGnotify object returned by PQnotifies,
-be sure to free it with free() to avoid a memory leak.
+be sure to free it with PQfreemem().
fprintf(stderr,
"ASYNC NOTIFY of '%s' from backend pid '%d' received\n",
notify->relname, notify->be_pid);
- free(notify);
+ PQfreemem(notify);
}
}
*
* Copyright 2000 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.61 2003/03/20 15:39:52 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.62 2003/03/25 02:44:36 momjian Exp $
*/
#include "postgres_fe.h"
#include "common.h"
{
fprintf(pset.queryFout, gettext("Asynchronous NOTIFY '%s' from backend with pid %d received.\n"),
notify->relname, notify->be_pid);
- free(notify);
+ PQfreemem(notify);
fflush(pset.queryFout);
}
}
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.4 2003/03/20 15:56:50 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.5 2003/03/25 02:44:36 momjian Exp $ */
/*
* The aim is to get a simpler inteface to the database routines.
{
ECPGlog("ECPGexecute line %d: ASYNC NOTIFY of '%s' from backend pid '%d' received\n",
stmt->lineno, notify->relname, notify->be_pid);
- ECPGfree(notify);
+ PQfreemem(notify);
}
return status;
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.40 2003/02/01 00:22:12 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.41 2003/03/25 02:44:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
if (event->connid == NULL)
{
if (event->notify)
- PQfreeNotify(event->notify);
+ PQfreemem(event->notify);
return 1;
}
Tcl_Release((ClientData) event->connid);
if (event->notify)
- PQfreeNotify(event->notify);
+ PQfreemem(event->notify);
return 1;
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.127 2003/03/22 03:29:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.128 2003/03/25 02:44:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
return event;
}
-/*
- * PQfreeNotify - free's the memory associated with a PGnotify
- *
- * This function is needed on Windows when using libpq.dll and
- * for example libpgtcl.dll: All memory allocated inside a dll
- * should be freed in the context of the same dll.
- *
- */
-void
-PQfreeNotify(PGnotify *notify)
-{
- free(notify);
-}
-
/*
* PQgetline - gets a newline-terminated string from the backend.
*
{
return pqSendSome(conn);
}
+
+/*
+ * PQfreeNotify - free's the memory associated with a PGnotify
+ *
+ * This function is here only for binary backward compatibility.
+ * New code should use PQfreemem(). A macro will automatically map
+ * calls to PQfreemem. It should be removed in the future. bjm 2003-03-24
+ */
+
+#undef PQfreeNotify
+void PQfreeNotify(PGnotify *notify);
+
+void
+PQfreeNotify(PGnotify *notify)
+{
+ PQfreemem(notify);
+}
+
+
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.90 2003/03/22 03:29:06 momjian Exp $
+ * $Id: libpq-fe.h,v 1.91 2003/03/25 02:44:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* Simple synchronous query */
extern PGresult *PQexec(PGconn *conn, const char *query);
extern PGnotify *PQnotifies(PGconn *conn);
-extern void PQfreeNotify(PGnotify *notify);
+/* Exists for backward compatibility. bjm 2003-03-24 */
+#define PQfreeNotify(ptr) PQfreemem(ptr)
/* Interface for multiple-result or asynchronous queries */
extern int PQsendQuery(PGconn *conn, const char *query);
}
PyTuple_SET_ITEM(notify_result, 1, temp);
- free(notify);
+ PQfreemem(notify);
}
else
{
fprintf(stderr,
"ASYNC NOTIFY of '%s' from backend pid '%d' received\n",
notify->relname, notify->be_pid);
- free(notify);
+ PQfreemem(notify);
break;
}
PQclear(res);