*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.10 1996/11/09 10:39:54 scrappy Exp $
+ * $Id: libpq-fe.h,v 1.18 1997/03/12 21:23:16 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
extern "C" {
#endif
+#include <stdio.h>
/* ----------------
* include stuff common to fe and be
* ----------------
*/
-/* #include "libpq/libpq.h" */
+#include "postgres_ext.h"
#include "libpq/pqcomm.h"
#include "lib/dllist.h"
typedef struct pgresAttDesc {
char* name; /* type name */
Oid adtid; /* type id */
- int2 adtsize; /* type size */
+ short adtsize; /* type size */
} PGresAttDesc;
/* use char* for Attribute values,
int be_pid; /* process id of backend */
} PGnotify;
+typedef struct pgLobjfuncs {
+ Oid fn_lo_open; /* OID of backend function lo_open */
+ Oid fn_lo_close; /* OID of backend function lo_close */
+ Oid fn_lo_creat; /* OID of backend function lo_creat */
+ Oid fn_lo_unlink; /* OID of backend function lo_unlink */
+ Oid fn_lo_lseek; /* OID of backend function lo_lseek */
+ Oid fn_lo_tell; /* OID of backend function lo_tell */
+ Oid fn_lo_read; /* OID of backend function LOread */
+ Oid fn_lo_write; /* OID of backend function LOwrite */
+} PGlobjfuncs;
+
/* PGconn encapsulates a connection to the backend */
typedef struct pg_conn{
char *pghost; /* the machine on which the server is running */
int asyncNotifyWaiting;
Dllist* notifyList;
char *pguser; /* Postgres username of user who is connected */
+ char *pgpass;
+ char *pgauth;
+ PGlobjfuncs *lobjfuncs; /* Backend function OID's for large object access */
} PGconn;
#define CMDSTATUS_LEN 40
PGconn* conn;
} PGresult;
+typedef char pqbool;
+ /* We can't use the conventional "bool", because we are designed to be
+ included in a user's program, and user may already have that type
+ defined. Pqbool, on the other hand, is unlikely to be used.
+ */
+
struct _PQprintOpt {
- bool header; /* print output field headings and row count */
- bool align; /* fill align the fields */
- bool standard; /* old brain dead format */
- bool html3; /* output html tables */
- bool expanded; /* expand tables */
- bool pager; /* use pager for output if needed */
+ pqbool header; /* print output field headings and row count */
+ pqbool align; /* fill align the fields */
+ pqbool standard; /* old brain dead format */
+ pqbool html3; /* output html tables */
+ pqbool expanded; /* expand tables */
+ pqbool pager; /* use pager for output if needed */
char *fieldSep; /* field separator */
char *tableOpt; /* insert to HTML <table ...> */
char *caption; /* HTML <caption> */
/* === in fe-connect.c === */
/* make a new client connection to the backend */
extern PGconn* PQconnectdb(const char* conninfo);
-extern PQconninfoOption *PQconndefaults();
+extern PQconninfoOption *PQconndefaults(void);
extern PGconn* PQsetdb(const char* pghost, const char* pgport, const char* pgoptions,
const char* pgtty, const char* dbName);
/* close the current connection and free the PGconn data structure */
extern char* PQfname(PGresult *res, int field_num);
extern int PQfnumber(PGresult *res, const char* field_name);
extern Oid PQftype(PGresult *res, int field_num);
-extern int2 PQfsize(PGresult *res, int field_num);
+extern short PQfsize(PGresult *res, int field_num);
extern char* PQcmdStatus(PGresult *res);
extern const char* PQoidStatus(PGresult *res);
extern char* PQgetvalue(PGresult *res, int tup_num, int field_num);
extern int pqGetInt(int* result, int bytes, FILE* stream, FILE *debug );
/* put a n-byte integer into the stream */
/* returns 0 if successful */
-extern int pqPutInt(int n, int bytes, FILE* stream, FILE *debug );
+extern int pqPutInt(const int n, int bytes, FILE* stream, FILE *debug );
extern void pqFlush(FILE* stream, FILE* debug);
/* === in fe-lobj.c === */
#define palloc malloc
#define pfree free
-#if defined(sparc)
+#if defined(sunos4)
extern char *sys_errlist[];
#define strerror(A) (sys_errlist[(A)])
-#endif /* sparc */
+#endif /* sunos4 */
#ifdef __cplusplus
};