update.
[chise/xemacs-chise.git.1] / src / postgresql.h
1 /*
2   postgresql.h -- Emacs Lisp binding to libpq.so
3   Copyright (C) 2000 Electrotechnical Laboratory, JAPAN.
4   Licensed to the Free Software Foundation.
5
6   Author:  SL Baur <steve@xemacs.org>
7   Maintainer:  SL Baur <steve@xemacs.org>
8
9 Please send patches to this file to me first before submitting them to
10 xemacs-patches.
11 */
12
13 #ifndef INCLUDED_postgresql_h_
14 #define INCLUDED_postgresql_h_ 1
15
16 #include LIBPQ_FE_H_FILE /* main PostgreSQL header file */
17
18 #define BLCKSZ 8192 /* size of a default Postgres disk block */
19 /*
20   This file contains the GCC bug workaround code for the private
21   LRECORD types.
22 */
23
24 /* PGconn is an opaque object and we need to be able to store them in
25    Lisp code because libpq supports multiple connections.
26 */
27 struct Lisp_PGconn
28 {
29   struct lcrecord_header header;
30   PGconn *pgconn;
31 };
32 typedef struct Lisp_PGconn Lisp_PGconn;
33
34 DECLARE_LRECORD (pgconn, Lisp_PGconn);
35
36 #define XPGCONN(x) XRECORD (x, pgconn, Lisp_PGconn)
37 #define XSETPGCONN(x, p) XSETRECORD (x, p, pgconn)
38 #define PGCONNP(x) RECORDP (x, pgconn)
39 #define CHECK_PGCONN(x) CHECK_RECORD (x, pgconn)
40 #define CONCHECK_PGCONN(x) CONCHECK_RECORD (x, pgconn)
41
42 /****/
43
44 /* PGresult is an opaque object and we need to be able to store them in
45    Lisp code.
46 */
47 struct Lisp_PGresult
48 {
49   struct lcrecord_header header;
50   PGresult *pgresult;
51 };
52 typedef struct Lisp_PGresult Lisp_PGresult;
53
54 DECLARE_LRECORD (pgresult, Lisp_PGresult);
55
56 #define XPGRESULT(x) XRECORD (x, pgresult, Lisp_PGresult)
57 #define XSETPGRESULT(x, p) XSETRECORD (x, p, pgresult)
58 #define PGRESULTP(x) RECORDP (x, pgresult)
59 #define CHECK_PGRESULT(x) CHECK_RECORD (x, pgresult)
60 #define CONCHECK_PGRESULT(x) CONCHECK_RECORD (x, pgresult)
61
62 #endif /* INCLUDED_postgresql_h_ */