summaryrefslogtreecommitdiff
path: root/ext/pgsql/php_pgsql.h
blob: 0397ab9a9ec7b7b4278ba7b5fd260a6cdd302db3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*
   +----------------------------------------------------------------------+
   | PHP HTML Embedded Scripting Language Version 3.0                     |
   +----------------------------------------------------------------------+
   | Copyright (c) 1997,1998 PHP Development Team (See Credits file)      |
   +----------------------------------------------------------------------+
   | This program is free software; you can redistribute it and/or modify |
   | it under the terms of one of the following licenses:                 |
   |                                                                      |
   |  A) the GNU General Public License as published by the Free Software |
   |     Foundation; either version 2 of the License, or (at your option) |
   |     any later version.                                               |
   |                                                                      |
   |  B) the PHP License as published by the PHP Development Team and     |
   |     included in the distribution in the file: LICENSE                |
   |                                                                      |
   | This program is distributed in the hope that it will be useful,      |
   | but WITHOUT ANY WARRANTY; without even the implied warranty of       |
   | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        |
   | GNU General Public License for more details.                         |
   |                                                                      |
   | You should have received a copy of both licenses referred to here.   |
   | If you did not, or have any questions about PHP licensing, please    |
   | contact core@php.net.                                                |
   +----------------------------------------------------------------------+
   | Authors: Jouni Ahto                                                  |
   +----------------------------------------------------------------------+
 */
 
/* $Id$ */

#ifndef _PHP_PGSQL_H
#define _PHP_PGSQL_H

#if COMPILE_DL
#undef HAVE_PGSQL
#define HAVE_PGSQL 1
#endif

#if HAVE_PGSQL

extern php3_module_entry pgsql_module_entry;
#define pgsql_module_ptr &pgsql_module_entry


#include <libpq-fe.h>

#if (WIN32||WINNT)
#define INV_WRITE            0x00020000
#define INV_READ             0x00040000
#else
#include <libpq/libpq-fs.h>
#endif

#if WIN32||WINNT
#define PHP_PGSQL_API __declspec(dllexport)
#else
#define PHP_PGSQL_API
#endif

extern PHP_MINIT_FUNCTION(pgsql);;
extern int php3_rinit_pgsql(INIT_FUNC_ARGS);
PHP_FUNCTION(pgsql_connect);
PHP_FUNCTION(pgsql_pconnect);
PHP_FUNCTION(pgsql_close);
PHP_FUNCTION(pgsql_dbname);
PHP_FUNCTION(pgsql_error_message);
PHP_FUNCTION(pgsql_options);
PHP_FUNCTION(pgsql_port);
PHP_FUNCTION(pgsql_tty);
PHP_FUNCTION(pgsql_host);
PHP_FUNCTION(pgsql_exec);
PHP_FUNCTION(pgsql_num_rows);
PHP_FUNCTION(pgsql_num_fields);
PHP_FUNCTION(pgsql_cmdtuples);
PHP_FUNCTION(pgsql_field_name);
PHP_FUNCTION(pgsql_field_size);
PHP_FUNCTION(pgsql_field_type);
PHP_FUNCTION(pgsql_field_number);
PHP_FUNCTION(pgsql_result);
PHP_FUNCTION(pgsql_fetch_row);
PHP_FUNCTION(pgsql_fetch_array);
PHP_FUNCTION(pgsql_fetch_object);
PHP_FUNCTION(pgsql_data_length);
PHP_FUNCTION(pgsql_data_isnull);
PHP_FUNCTION(pgsql_free_result);
PHP_FUNCTION(pgsql_last_oid);
PHP_FUNCTION(pgsql_lo_create);
PHP_FUNCTION(pgsql_lo_unlink);
PHP_FUNCTION(pgsql_lo_open);
PHP_FUNCTION(pgsql_lo_close);
PHP_FUNCTION(pgsql_lo_read);
PHP_FUNCTION(pgsql_lo_write);
PHP_FUNCTION(pgsql_lo_readall);

void php3_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent);
int php3_pgsql_get_default_link(INTERNAL_FUNCTION_PARAMETERS);
void php3_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type);
void php3_pgsql_get_result_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type);
char *get_field_name(PGconn *pgsql, Oid oid, HashTable *list);
void php3_pgsql_get_field_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type);
void php3_pgsql_data_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type);


typedef struct pgLofp {
        PGconn *conn;
	int lofd;
} pgLofp;

typedef struct _php3_pgsql_result_handle {
	PGconn *conn;
	PGresult *result;
} pgsql_result_handle;

typedef struct {
	long default_link;
	long num_links,num_persistent;
	long max_links,max_persistent;
	long allow_persistent;
	int le_lofp,le_string;
} php_pgsql_globals;

/* extern pgsql_module php3_pgsql_module; */

#ifdef ZTS
# define PGLS_D	php_pgsql_globals *pgsql_globals
# define PGLS_DC	, PGLS_D
# define PGLS_C	pgsql_globals
# define PGLS_CC , PGLS_C
# define PGG(v) (pgsql_globals->v)
# define PGLS_FETCH()	php_pgsql_globals *pgsql_globals = ts_resource(pgsql_globals_id)
#else
# define PGLS_D
# define PGLS_DC
# define PGLS_C
# define PGLS_CC
# define PGG(v) (pgsql_globals.v)
# define PGLS_FETCH()
extern PHP_PGSQL_API php_pgsql_globals pgsql_globals;
#endif

#else

#define pgsql_module_ptr NULL

#endif

#define phpext_pgsql_ptr pgsql_module_ptr

#endif /* _PHP_PGSQL_H */