Annotation of embedaddon/php/ext/pdo_pgsql/php_pdo_pgsql_int.h, revision 1.1.1.2
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 1997-2012 The PHP Group |
6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Edin Kadribasic <edink@emini.dk> |
16: | Ilia Alshanestsky <ilia@prohost.org> |
17: | Wez Furlong <wez@php.net> |
18: +----------------------------------------------------------------------+
19: */
20:
1.1.1.2 ! misho 21: /* $Id$ */
1.1 misho 22:
23: #ifndef PHP_PDO_PGSQL_INT_H
24: #define PHP_PDO_PGSQL_INT_H
25:
26: #include <libpq-fe.h>
27: #include <libpq/libpq-fs.h>
28: #include <php.h>
29:
30: #define PHP_PDO_PGSQL_CONNECTION_FAILURE_SQLSTATE "08006"
31:
32: typedef struct {
33: const char *file;
34: int line;
35: unsigned int errcode;
36: char *errmsg;
37: } pdo_pgsql_error_info;
38:
39: /* stuff we use in a pgsql database handle */
40: typedef struct {
41: PGconn *server;
42: unsigned attached:1;
43: unsigned _reserved:31;
44: pdo_pgsql_error_info einfo;
45: Oid pgoid;
46: #if HAVE_PQPREPARE
47: /* The following two variables have the same purpose. Unfortunately we need
48: to keep track of two different attributes having the same effect.
49: It might be worth to deprecate the driver specific one soon. */
50: int emulate_prepares;
51: int disable_native_prepares;
52: #endif
53: unsigned int stmt_counter;
54: } pdo_pgsql_db_handle;
55:
56: typedef struct {
57: char *def;
58: Oid pgsql_type;
59: long intval;
60: zend_bool boolval;
61: } pdo_pgsql_column;
62:
63: typedef struct {
64: pdo_pgsql_db_handle *H;
65: PGresult *result;
66: int current_row;
67: pdo_pgsql_column *cols;
68: char *cursor_name;
69: #if HAVE_PQPREPARE
70: char *stmt_name;
71: char *query;
72: char **param_values;
73: int *param_lengths;
74: int *param_formats;
75: Oid *param_types;
76: #endif
77: zend_bool is_prepared;
78: } pdo_pgsql_stmt;
79:
80: typedef struct {
81: Oid oid;
82: } pdo_pgsql_bound_param;
83:
84: extern pdo_driver_t pdo_pgsql_driver;
85:
86: extern int _pdo_pgsql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, int errcode, const char *sqlstate, const char *file, int line TSRMLS_DC);
87: #define pdo_pgsql_error(d,e,z) _pdo_pgsql_error(d, NULL, e, z, __FILE__, __LINE__ TSRMLS_CC)
88: #define pdo_pgsql_error_stmt(s,e,z) _pdo_pgsql_error(s->dbh, s, e, z, __FILE__, __LINE__ TSRMLS_CC)
89:
90: extern struct pdo_stmt_methods pgsql_stmt_methods;
91:
92: #define pdo_pgsql_sqlstate(r) PQresultErrorField(r, PG_DIAG_SQLSTATE)
93:
94: enum {
95: PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT = PDO_ATTR_DRIVER_SPECIFIC,
96: };
97:
98: struct pdo_pgsql_lob_self {
99: pdo_dbh_t *dbh;
100: PGconn *conn;
101: int lfd;
102: Oid oid;
103: };
104:
105: enum pdo_pgsql_specific_constants {
106: PGSQL_TRANSACTION_IDLE = PQTRANS_IDLE,
107: PGSQL_TRANSACTION_ACTIVE = PQTRANS_ACTIVE,
108: PGSQL_TRANSACTION_INTRANS = PQTRANS_INTRANS,
109: PGSQL_TRANSACTION_INERROR = PQTRANS_INERROR,
110: PGSQL_TRANSACTION_UNKNOWN = PQTRANS_UNKNOWN
111: };
112:
113: php_stream *pdo_pgsql_create_lob_stream(pdo_dbh_t *stmt, int lfd, Oid oid TSRMLS_DC);
114: extern php_stream_ops pdo_pgsql_lob_stream_ops;
115:
116: #endif /* PHP_PDO_PGSQL_INT_H */
117:
118: /*
119: * Local variables:
120: * tab-width: 4
121: * c-basic-offset: 4
122: * End:
123: * vim600: noet sw=4 ts=4 fdm=marker
124: * vim<600: noet sw=4 ts=4
125: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>