]> granicus.if.org Git - postgresql/blobdiff - src/interfaces/libpq/libpq-fe.h
From: Dan McGuirk <mcguirk@indirect.com>
[postgresql] / src / interfaces / libpq / libpq-fe.h
index bbf8021c598923a5ea7e7c2a913c1a210a8d5d5b..c765661e71770e288dc48d70a9ad99c68b6d29de 100644 (file)
@@ -6,7 +6,7 @@
  *
  * 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"
 
@@ -75,7 +76,7 @@ typedef struct {
 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,
@@ -96,6 +97,17 @@ typedef struct pgNotify {
     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 */
@@ -113,6 +125,9 @@ typedef struct pg_conn{
   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
@@ -131,13 +146,19 @@ typedef struct pg_result{
   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> */
@@ -170,7 +191,7 @@ typedef struct _PQconninfoOption PQconninfoOption;
 /* ===  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 */
@@ -201,7 +222,7 @@ extern int PQnfields(PGresult *res);
 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);
@@ -254,7 +275,7 @@ extern int pqGetc(FILE* stream, FILE *debug);
 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 === */
@@ -285,10 +306,10 @@ typedef void *TUPLE;
 #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
 };