summaryrefslogtreecommitdiff
path: root/src/interfaces/libpgtcl
diff options
context:
space:
mode:
authorTom Lane2002-12-30 22:10:54 +0000
committerTom Lane2002-12-30 22:10:54 +0000
commit699782b69518e18c20211df315c49b8cd0dc9345 (patch)
tree6cdaf32e22691419846b9fdd42ac0867d7f3dd73 /src/interfaces/libpgtcl
parentd82794ee33a043ade43db6c7aaa299a2a153ade5 (diff)
Adjust Tcl-related code to compile cleanly with Tcl 8.4 (add const modifiers as
needed). Some desultory const-ification of SPI interface to support this.
Diffstat (limited to 'src/interfaces/libpgtcl')
-rw-r--r--src/interfaces/libpgtcl/pgtclCmds.c77
-rw-r--r--src/interfaces/libpgtcl/pgtclCmds.h90
-rw-r--r--src/interfaces/libpgtcl/pgtclId.c18
-rw-r--r--src/interfaces/libpgtcl/pgtclId.h15
4 files changed, 105 insertions, 95 deletions
diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c
index ff57d2c3653..97deada3734 100644
--- a/src/interfaces/libpgtcl/pgtclCmds.c
+++ b/src/interfaces/libpgtcl/pgtclCmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.70 2002/11/26 21:38:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.71 2002/12/30 22:10:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -23,7 +23,7 @@
/*
* Local function forward declarations
*/
-static int execute_put_values(Tcl_Interp *interp, char *array_varname,
+static int execute_put_values(Tcl_Interp *interp, CONST84 char *array_varname,
PGresult *result, int tupno);
@@ -241,7 +241,7 @@ tcl_value(char *value)
**********************************/
int
-Pg_conndefaults(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
+Pg_conndefaults(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PQconninfoOption *options = PQconndefaults();
PQconninfoOption *option;
@@ -287,13 +287,13 @@ Pg_conndefaults(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
**********************************/
int
-Pg_connect(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_connect(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
- char *pghost = NULL;
- char *pgtty = NULL;
- char *pgport = NULL;
- char *pgoptions = NULL;
- char *dbName;
+ const char *pghost = NULL;
+ const char *pgtty = NULL;
+ const char *pgport = NULL;
+ const char *pgoptions = NULL;
+ const char *dbName;
int i;
PGconn *conn;
@@ -397,7 +397,7 @@ Pg_connect(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
**********************************/
int
-Pg_disconnect(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_disconnect(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
Tcl_Channel conn_chan;
@@ -436,7 +436,7 @@ Pg_disconnect(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
**********************************/
int
-Pg_exec(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_exec(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
Pg_ConnectionId *connid;
PGconn *conn;
@@ -538,13 +538,13 @@ Pg_exec(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
**********************************/
int
-Pg_result(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_result(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGresult *result;
- char *opt;
+ const char *opt;
int i;
int tupno;
- char *arrVar;
+ CONST84 char *arrVar;
char nameBuffer[256];
const char *appendstr;
@@ -804,7 +804,7 @@ Pg_result_errReturn:
**********************************/
int
-Pg_execute(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_execute(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
Pg_ConnectionId *connid;
PGconn *conn;
@@ -813,8 +813,8 @@ Pg_execute(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
int tupno;
int ntup;
int loop_rc;
- char *oid_varname = NULL;
- char *array_varname = NULL;
+ CONST84 char *oid_varname = NULL;
+ CONST84 char *array_varname = NULL;
char buf[64];
char *usage = "Wrong # of arguments\n"
@@ -1025,7 +1025,7 @@ Pg_execute(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
column names, or into an array indexed by the column names.
**********************************/
static int
-execute_put_values(Tcl_Interp *interp, char *array_varname,
+execute_put_values(Tcl_Interp *interp, CONST84 char *array_varname,
PGresult *result, int tupno)
{
int i;
@@ -1071,7 +1071,7 @@ execute_put_values(Tcl_Interp *interp, char *array_varname,
**********************/
int
-Pg_lo_open(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_open(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int lobjId;
@@ -1141,7 +1141,7 @@ Pg_lo_open(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
**********************/
int
-Pg_lo_close(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_close(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int fd;
@@ -1230,7 +1230,7 @@ Pg_lo_read(ClientData cData, Tcl_Interp *interp, int objc,
#else
int
-Pg_lo_read(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_read(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int fd;
@@ -1328,7 +1328,7 @@ Pg_lo_write(ClientData cData, Tcl_Interp *interp, int objc,
#else
int
-Pg_lo_write(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_write(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
char *buf;
@@ -1376,11 +1376,11 @@ whence can be either
"SEEK_CUR", "SEEK_END", or "SEEK_SET"
***********************************/
int
-Pg_lo_lseek(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_lseek(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int fd;
- char *whenceStr;
+ const char *whenceStr;
int offset,
whence;
@@ -1429,7 +1429,7 @@ for now, we don't support any additional storage managers.
***********************************/
int
-Pg_lo_creat(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_creat(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
char *modeStr;
@@ -1447,7 +1447,7 @@ Pg_lo_creat(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
if (conn == (PGconn *) NULL)
return TCL_ERROR;
- modeStr = argv[2];
+ modeStr = strdup(argv[2]);
modeWord = strtok(modeStr, "|");
if (strcmp(modeWord, "INV_READ") == 0)
@@ -1459,6 +1459,7 @@ Pg_lo_creat(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
Tcl_AppendResult(interp,
"invalid mode argument to Pg_lo_creat\nmode argument must be some OR'd combination of INV_READ, and INV_WRITE",
0);
+ free(modeStr);
return TCL_ERROR;
}
@@ -1473,10 +1474,12 @@ Pg_lo_creat(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
Tcl_AppendResult(interp,
"invalid mode argument to Pg_lo_creat\nmode argument must be some OR'd combination of INV_READ, INV_WRITE",
0);
+ free(modeStr);
return TCL_ERROR;
}
}
sprintf(interp->result, "%d", lo_creat(conn, mode));
+ free(modeStr);
return TCL_OK;
}
@@ -1489,7 +1492,7 @@ Pg_lo_tell
***********************************/
int
-Pg_lo_tell(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_tell(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int fd;
@@ -1522,7 +1525,7 @@ Pg_lo_unlink
***********************************/
int
-Pg_lo_unlink(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_unlink(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
int lobjId;
@@ -1564,10 +1567,10 @@ Pg_lo_import
***********************************/
int
-Pg_lo_import(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_import(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
- char *filename;
+ const char *filename;
Oid lobjId;
if (argc != 3)
@@ -1607,10 +1610,10 @@ Pg_lo_export
***********************************/
int
-Pg_lo_export(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_lo_export(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
PGconn *conn;
- char *filename;
+ const char *filename;
Oid lobjId;
int retval;
@@ -1659,7 +1662,7 @@ Pg_lo_export(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
**********************************/
int
-Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
+Pg_select(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
Pg_ConnectionId *connid;
PGconn *conn;
@@ -1816,9 +1819,9 @@ Pg_listen
vwait or update can be used to enter the Tcl event loop.
***********************************/
int
-Pg_listen(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_listen(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
- char *origrelname;
+ const char *origrelname;
char *caserelname;
char *callback = NULL;
Pg_TclNotifies *notifies;
@@ -1860,7 +1863,7 @@ Pg_listen(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
else
{
/* Downcase it */
- char *rels = origrelname;
+ const char *rels = origrelname;
char *reld = caserelname;
while (*rels)
@@ -1997,7 +2000,7 @@ Pg_on_connection_loss
vwait or update can be used to enter the Tcl event loop.
***********************************/
int
-Pg_on_connection_loss(ClientData cData, Tcl_Interp *interp, int argc, char *argv[])
+Pg_on_connection_loss(ClientData cData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
char *callback = NULL;
Pg_TclNotifies *notifies;
diff --git a/src/interfaces/libpgtcl/pgtclCmds.h b/src/interfaces/libpgtcl/pgtclCmds.h
index 5cc802a6964..1e50cdcd94f 100644
--- a/src/interfaces/libpgtcl/pgtclCmds.h
+++ b/src/interfaces/libpgtcl/pgtclCmds.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pgtclCmds.h,v 1.28 2002/09/04 20:31:46 momjian Exp $
+ * $Id: pgtclCmds.h,v 1.29 2002/12/30 22:10:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -15,8 +15,14 @@
#define PGTCLCMDS_H
#include <tcl.h>
+
#include "libpq-fe.h"
+/* Hack to deal with Tcl 8.4 const-ification without losing compatibility */
+#ifndef CONST84
+#define CONST84
+#endif
+
#define RES_HARD_MAX 128
#define RES_START 16
@@ -86,54 +92,52 @@ typedef struct Pg_ConnectionId_s
/* **************************/
/* registered Tcl functions */
/* **************************/
-extern int Pg_conndefaults(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_connect(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_disconnect(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_exec(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_execute(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_select(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_result(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_open(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_close(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
+extern int Pg_conndefaults(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_connect(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_disconnect(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_exec(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_execute(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_select(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_result(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_open(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_close(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
#ifdef PGTCL_USE_TCLOBJ
-extern int Pg_lo_read(
- ClientData cData, Tcl_Interp *interp, int objc,
+extern int Pg_lo_read(ClientData cData, Tcl_Interp *interp, int objc,
Tcl_Obj *CONST objv[]);
-extern int Pg_lo_write(
- ClientData cData, Tcl_Interp *interp, int objc,
+extern int Pg_lo_write(ClientData cData, Tcl_Interp *interp, int objc,
Tcl_Obj *CONST objv[]);
#else
-extern int Pg_lo_read(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_write(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
+extern int Pg_lo_read(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_write(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
#endif
-extern int Pg_lo_lseek(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_creat(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_tell(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_unlink(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_import(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_lo_export(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_listen(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
-extern int Pg_on_connection_loss(
- ClientData cData, Tcl_Interp *interp, int argc, char *argv[]);
+extern int Pg_lo_lseek(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_creat(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_tell(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_unlink(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_import(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_lo_export(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_listen(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
+extern int Pg_on_connection_loss(ClientData cData, Tcl_Interp *interp,
+ int argc, CONST84 char *argv[]);
#endif /* PGTCLCMDS_H */
diff --git a/src/interfaces/libpgtcl/pgtclId.c b/src/interfaces/libpgtcl/pgtclId.c
index cc79339c6be..ecf1e362e80 100644
--- a/src/interfaces/libpgtcl/pgtclId.c
+++ b/src/interfaces/libpgtcl/pgtclId.c
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.37 2002/10/17 14:53:32 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclId.c,v 1.38 2002/12/30 22:10:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -218,7 +218,8 @@ PgSetConnectionId(Tcl_Interp *interp, PGconn *conn)
* Get back the connection from the Id
*/
PGconn *
-PgGetConnectionId(Tcl_Interp *interp, char *id, Pg_ConnectionId ** connid_p)
+PgGetConnectionId(Tcl_Interp *interp, CONST84 char *id,
+ Pg_ConnectionId ** connid_p)
{
Tcl_Channel conn_chan;
Pg_ConnectionId *connid;
@@ -326,7 +327,7 @@ PgDelConnectionId(DRIVER_DEL_PROTO)
* is probably just not clearing result handles like they should.
*/
int
-PgSetResultId(Tcl_Interp *interp, char *connid_c, PGresult *res)
+PgSetResultId(Tcl_Interp *interp, CONST84 char *connid_c, PGresult *res)
{
Tcl_Channel conn_chan;
Pg_ConnectionId *connid;
@@ -384,7 +385,7 @@ PgSetResultId(Tcl_Interp *interp, char *connid_c, PGresult *res)
}
static int
-getresid(Tcl_Interp *interp, char *id, Pg_ConnectionId ** connid_p)
+getresid(Tcl_Interp *interp, CONST84 char *id, Pg_ConnectionId ** connid_p)
{
Tcl_Channel conn_chan;
char *mark;
@@ -426,7 +427,7 @@ getresid(Tcl_Interp *interp, char *id, Pg_ConnectionId ** connid_p)
* Get back the result pointer from the Id
*/
PGresult *
-PgGetResultId(Tcl_Interp *interp, char *id)
+PgGetResultId(Tcl_Interp *interp, CONST84 char *id)
{
Pg_ConnectionId *connid;
int resid;
@@ -444,7 +445,7 @@ PgGetResultId(Tcl_Interp *interp, char *id)
* Remove a result Id from the hash tables
*/
void
-PgDelResultId(Tcl_Interp *interp, char *id)
+PgDelResultId(Tcl_Interp *interp, CONST84 char *id)
{
Pg_ConnectionId *connid;
int resid;
@@ -460,7 +461,7 @@ PgDelResultId(Tcl_Interp *interp, char *id)
* Get the connection Id from the result Id
*/
int
-PgGetConnByResultId(Tcl_Interp *interp, char *resid_c)
+PgGetConnByResultId(Tcl_Interp *interp, CONST84 char *resid_c)
{
char *mark;
Tcl_Channel conn_chan;
@@ -472,7 +473,8 @@ PgGetConnByResultId(Tcl_Interp *interp, char *resid_c)
*mark = '.';
if (conn_chan && Tcl_GetChannelType(conn_chan) == &Pg_ConnType)
{
- Tcl_SetResult(interp, Tcl_GetChannelName(conn_chan), TCL_VOLATILE);
+ Tcl_SetResult(interp, (char *) Tcl_GetChannelName(conn_chan),
+ TCL_VOLATILE);
return TCL_OK;
}
diff --git a/src/interfaces/libpgtcl/pgtclId.h b/src/interfaces/libpgtcl/pgtclId.h
index 4f5558561bf..102324f01d5 100644
--- a/src/interfaces/libpgtcl/pgtclId.h
+++ b/src/interfaces/libpgtcl/pgtclId.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pgtclId.h,v 1.21 2002/09/02 21:51:47 tgl Exp $
+ * $Id: pgtclId.h,v 1.22 2002/12/30 22:10:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,22 +27,23 @@ extern void PgSetConnectionId(Tcl_Interp *interp, PGconn *conn);
int bufSize, int *errorCodePtr
#else
/* Tcl 7.6 and beyond use this signature */
-#define DRIVER_OUTPUT_PROTO ClientData cData, char *buf, int bufSize, \
+#define DRIVER_OUTPUT_PROTO ClientData cData, CONST84 char *buf, int bufSize, \
int *errorCodePtr
#define DRIVER_INPUT_PROTO ClientData cData, char *buf, int bufSize, \
int *errorCodePtr
#define DRIVER_DEL_PROTO ClientData cData, Tcl_Interp *interp
#endif
-extern PGconn *PgGetConnectionId(Tcl_Interp *interp, char *id,
+extern PGconn *PgGetConnectionId(Tcl_Interp *interp, CONST84 char *id,
Pg_ConnectionId **);
extern int PgDelConnectionId(DRIVER_DEL_PROTO);
extern int PgOutputProc(DRIVER_OUTPUT_PROTO);
extern int PgInputProc(DRIVER_INPUT_PROTO);
-extern int PgSetResultId(Tcl_Interp *interp, char *connid, PGresult *res);
-extern PGresult *PgGetResultId(Tcl_Interp *interp, char *id);
-extern void PgDelResultId(Tcl_Interp *interp, char *id);
-extern int PgGetConnByResultId(Tcl_Interp *interp, char *resid);
+extern int PgSetResultId(Tcl_Interp *interp, CONST84 char *connid,
+ PGresult *res);
+extern PGresult *PgGetResultId(Tcl_Interp *interp, CONST84 char *id);
+extern void PgDelResultId(Tcl_Interp *interp, CONST84 char *id);
+extern int PgGetConnByResultId(Tcl_Interp *interp, CONST84 char *resid);
extern void PgStartNotifyEventSource(Pg_ConnectionId * connid);
extern void PgStopNotifyEventSource(Pg_ConnectionId * connid, bool allevents);
extern void PgNotifyTransferEvents(Pg_ConnectionId * connid);