xref: /php-src/ext/pgsql/pgsql_arginfo.h (revision 4f450b62)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: 84535fbc63b6fe9766088d884c89f5c4a4db0ddf */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_connect, 0, 1, PgSql\\Connection, MAY_BE_FALSE)
5 	ZEND_ARG_TYPE_INFO(0, connection_string, IS_STRING, 0)
6 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
7 ZEND_END_ARG_INFO()
8 
9 #define arginfo_pg_pconnect arginfo_pg_connect
10 
11 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_connect_poll, 0, 1, IS_LONG, 0)
12 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
13 ZEND_END_ARG_INFO()
14 
15 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_close, 0, 0, IS_TRUE, 0)
16 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, connection, PgSql\\Connection, 1, "null")
17 ZEND_END_ARG_INFO()
18 
19 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_dbname, 0, 0, IS_STRING, 0)
20 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, connection, PgSql\\Connection, 1, "null")
21 ZEND_END_ARG_INFO()
22 
23 #define arginfo_pg_last_error arginfo_pg_dbname
24 
25 #define arginfo_pg_errormessage arginfo_pg_dbname
26 
27 #define arginfo_pg_options arginfo_pg_dbname
28 
29 #define arginfo_pg_port arginfo_pg_dbname
30 
31 #define arginfo_pg_tty arginfo_pg_dbname
32 
33 #define arginfo_pg_host arginfo_pg_dbname
34 
35 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_version, 0, 0, IS_ARRAY, 0)
36 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, connection, PgSql\\Connection, 1, "null")
37 ZEND_END_ARG_INFO()
38 
39 #define arginfo_pg_jit arginfo_pg_version
40 
41 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_parameter_status, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
42 	ZEND_ARG_INFO(0, connection)
43 	ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
44 ZEND_END_ARG_INFO()
45 
46 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_ping, 0, 0, _IS_BOOL, 0)
47 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, connection, PgSql\\Connection, 1, "null")
48 ZEND_END_ARG_INFO()
49 
50 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_query, 0, 1, PgSql\\Result, MAY_BE_FALSE)
51 	ZEND_ARG_INFO(0, connection)
52 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
53 ZEND_END_ARG_INFO()
54 
55 #define arginfo_pg_exec arginfo_pg_query
56 
57 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_query_params, 0, 2, PgSql\\Result, MAY_BE_FALSE)
58 	ZEND_ARG_INFO(0, connection)
59 	ZEND_ARG_INFO(0, query)
60 	ZEND_ARG_TYPE_INFO(0, params, IS_ARRAY, 0)
61 ZEND_END_ARG_INFO()
62 
63 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_prepare, 0, 2, PgSql\\Result, MAY_BE_FALSE)
64 	ZEND_ARG_INFO(0, connection)
65 	ZEND_ARG_TYPE_INFO(0, statement_name, IS_STRING, 0)
66 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
67 ZEND_END_ARG_INFO()
68 
69 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_execute, 0, 2, PgSql\\Result, MAY_BE_FALSE)
70 	ZEND_ARG_INFO(0, connection)
71 	ZEND_ARG_INFO(0, statement_name)
72 	ZEND_ARG_TYPE_INFO(0, params, IS_ARRAY, 0)
73 ZEND_END_ARG_INFO()
74 
75 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_num_rows, 0, 1, IS_LONG, 0)
76 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
77 ZEND_END_ARG_INFO()
78 
79 #define arginfo_pg_numrows arginfo_pg_num_rows
80 
81 #define arginfo_pg_num_fields arginfo_pg_num_rows
82 
83 #define arginfo_pg_numfields arginfo_pg_num_rows
84 
85 #define arginfo_pg_affected_rows arginfo_pg_num_rows
86 
87 #define arginfo_pg_cmdtuples arginfo_pg_num_rows
88 
89 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_last_notice, 0, 1, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_BOOL)
90 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
91 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_NOTICE_LAST")
92 ZEND_END_ARG_INFO()
93 
94 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_field_table, 0, 2, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE)
95 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
96 	ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
97 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, oid_only, _IS_BOOL, 0, "false")
98 ZEND_END_ARG_INFO()
99 
100 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_field_name, 0, 2, IS_STRING, 0)
101 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
102 	ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
103 ZEND_END_ARG_INFO()
104 
105 #define arginfo_pg_fieldname arginfo_pg_field_name
106 
107 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_field_size, 0, 2, IS_LONG, 0)
108 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
109 	ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
110 ZEND_END_ARG_INFO()
111 
112 #define arginfo_pg_fieldsize arginfo_pg_field_size
113 
114 #define arginfo_pg_field_type arginfo_pg_field_name
115 
116 #define arginfo_pg_fieldtype arginfo_pg_field_name
117 
118 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_field_type_oid, 0, 2, MAY_BE_STRING|MAY_BE_LONG)
119 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
120 	ZEND_ARG_TYPE_INFO(0, field, IS_LONG, 0)
121 ZEND_END_ARG_INFO()
122 
123 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_field_num, 0, 2, IS_LONG, 0)
124 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
125 	ZEND_ARG_TYPE_INFO(0, field, IS_STRING, 0)
126 ZEND_END_ARG_INFO()
127 
128 #define arginfo_pg_fieldnum arginfo_pg_field_num
129 
130 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_fetch_result, 0, 2, MAY_BE_STRING|MAY_BE_FALSE|MAY_BE_NULL)
131 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
132 	ZEND_ARG_INFO(0, row)
133 	ZEND_ARG_TYPE_MASK(0, field, MAY_BE_STRING|MAY_BE_LONG, NULL)
134 ZEND_END_ARG_INFO()
135 
136 #define arginfo_pg_result arginfo_pg_fetch_result
137 
138 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_fetch_row, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
139 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
140 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, row, IS_LONG, 1, "null")
141 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_NUM")
142 ZEND_END_ARG_INFO()
143 
144 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_fetch_assoc, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
145 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
146 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, row, IS_LONG, 1, "null")
147 ZEND_END_ARG_INFO()
148 
149 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_fetch_array, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
150 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
151 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, row, IS_LONG, 1, "null")
152 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_BOTH")
153 ZEND_END_ARG_INFO()
154 
155 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_fetch_object, 0, 1, MAY_BE_OBJECT|MAY_BE_FALSE)
156 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
157 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, row, IS_LONG, 1, "null")
158 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 0, "\"stdClass\"")
159 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, constructor_args, IS_ARRAY, 0, "[]")
160 ZEND_END_ARG_INFO()
161 
162 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_fetch_all, 0, 1, IS_ARRAY, 0)
163 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
164 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_ASSOC")
165 ZEND_END_ARG_INFO()
166 
167 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_fetch_all_columns, 0, 1, IS_ARRAY, 0)
168 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
169 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, field, IS_LONG, 0, "0")
170 ZEND_END_ARG_INFO()
171 
172 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_result_seek, 0, 2, _IS_BOOL, 0)
173 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
174 	ZEND_ARG_TYPE_INFO(0, row, IS_LONG, 0)
175 ZEND_END_ARG_INFO()
176 
177 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_field_prtlen, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
178 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
179 	ZEND_ARG_INFO(0, row)
180 	ZEND_ARG_TYPE_MASK(0, field, MAY_BE_STRING|MAY_BE_LONG, NULL)
181 ZEND_END_ARG_INFO()
182 
183 #define arginfo_pg_fieldprtlen arginfo_pg_field_prtlen
184 
185 #define arginfo_pg_field_is_null arginfo_pg_field_prtlen
186 
187 #define arginfo_pg_fieldisnull arginfo_pg_field_prtlen
188 
189 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_free_result, 0, 1, _IS_BOOL, 0)
190 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
191 ZEND_END_ARG_INFO()
192 
193 #define arginfo_pg_freeresult arginfo_pg_free_result
194 
195 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_last_oid, 0, 1, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE)
196 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
197 ZEND_END_ARG_INFO()
198 
199 #define arginfo_pg_getlastoid arginfo_pg_last_oid
200 
201 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_trace, 0, 1, _IS_BOOL, 0)
202 	ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
203 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_STRING, 0, "\"w\"")
204 	ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, connection, PgSql\\Connection, 1, "null")
205 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, trace_mode, IS_LONG, 0, "0")
206 ZEND_END_ARG_INFO()
207 
208 #define arginfo_pg_untrace arginfo_pg_close
209 
210 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_lo_create, 0, 0, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE)
211 	ZEND_ARG_INFO(0, connection)
212 	ZEND_ARG_INFO(0, oid)
213 ZEND_END_ARG_INFO()
214 
215 #define arginfo_pg_locreate arginfo_pg_lo_create
216 
217 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_unlink, 0, 1, _IS_BOOL, 0)
218 	ZEND_ARG_INFO(0, connection)
219 	ZEND_ARG_INFO(0, oid)
220 ZEND_END_ARG_INFO()
221 
222 #define arginfo_pg_lounlink arginfo_pg_lo_unlink
223 
224 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_lo_open, 0, 1, PgSql\\Lob, MAY_BE_FALSE)
225 	ZEND_ARG_INFO(0, connection)
226 	ZEND_ARG_INFO(0, oid)
227 	ZEND_ARG_TYPE_INFO(0, mode, IS_STRING, 0)
228 ZEND_END_ARG_INFO()
229 
230 #define arginfo_pg_loopen arginfo_pg_lo_open
231 
232 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_close, 0, 1, _IS_BOOL, 0)
233 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
234 ZEND_END_ARG_INFO()
235 
236 #define arginfo_pg_loclose arginfo_pg_lo_close
237 
238 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_lo_read, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
239 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
240 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "8192")
241 ZEND_END_ARG_INFO()
242 
243 #define arginfo_pg_loread arginfo_pg_lo_read
244 
245 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_lo_write, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
246 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
247 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
248 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 1, "null")
249 ZEND_END_ARG_INFO()
250 
251 #define arginfo_pg_lowrite arginfo_pg_lo_write
252 
253 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_read_all, 0, 1, IS_LONG, 0)
254 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
255 ZEND_END_ARG_INFO()
256 
257 #define arginfo_pg_loreadall arginfo_pg_lo_read_all
258 
259 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_lo_import, 0, 1, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE)
260 	ZEND_ARG_INFO(0, connection)
261 	ZEND_ARG_INFO(0, filename)
262 	ZEND_ARG_INFO(0, oid)
263 ZEND_END_ARG_INFO()
264 
265 #define arginfo_pg_loimport arginfo_pg_lo_import
266 
267 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_export, 0, 1, _IS_BOOL, 0)
268 	ZEND_ARG_INFO(0, connection)
269 	ZEND_ARG_INFO(0, oid)
270 	ZEND_ARG_INFO(0, filename)
271 ZEND_END_ARG_INFO()
272 
273 #define arginfo_pg_loexport arginfo_pg_lo_export
274 
275 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_seek, 0, 2, _IS_BOOL, 0)
276 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
277 	ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
278 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, whence, IS_LONG, 0, "SEEK_CUR")
279 ZEND_END_ARG_INFO()
280 
281 #define arginfo_pg_lo_tell arginfo_pg_lo_read_all
282 
283 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_lo_truncate, 0, 2, _IS_BOOL, 0)
284 	ZEND_ARG_OBJ_INFO(0, lob, PgSql\\Lob, 0)
285 	ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
286 ZEND_END_ARG_INFO()
287 
288 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_set_error_verbosity, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
289 	ZEND_ARG_INFO(0, connection)
290 	ZEND_ARG_TYPE_INFO(0, verbosity, IS_LONG, 0)
291 ZEND_END_ARG_INFO()
292 
293 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_set_client_encoding, 0, 1, IS_LONG, 0)
294 	ZEND_ARG_INFO(0, connection)
295 	ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
296 ZEND_END_ARG_INFO()
297 
298 #define arginfo_pg_setclientencoding arginfo_pg_set_client_encoding
299 
300 #define arginfo_pg_client_encoding arginfo_pg_dbname
301 
302 #define arginfo_pg_clientencoding arginfo_pg_dbname
303 
304 #define arginfo_pg_end_copy arginfo_pg_ping
305 
306 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_put_line, 0, 1, _IS_BOOL, 0)
307 	ZEND_ARG_INFO(0, connection)
308 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
309 ZEND_END_ARG_INFO()
310 
311 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_copy_to, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
312 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
313 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
314 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, separator, IS_STRING, 0, "\"\\t\"")
315 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, null_as, IS_STRING, 0, "\"\\\\\\\\N\"")
316 ZEND_END_ARG_INFO()
317 
318 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_copy_from, 0, 3, _IS_BOOL, 0)
319 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
320 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
321 	ZEND_ARG_TYPE_INFO(0, rows, IS_ARRAY, 0)
322 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, separator, IS_STRING, 0, "\"\\t\"")
323 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, null_as, IS_STRING, 0, "\"\\\\\\\\N\"")
324 ZEND_END_ARG_INFO()
325 
326 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_escape_string, 0, 1, IS_STRING, 0)
327 	ZEND_ARG_INFO(0, connection)
328 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
329 ZEND_END_ARG_INFO()
330 
331 #define arginfo_pg_escape_bytea arginfo_pg_escape_string
332 
333 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_unescape_bytea, 0, 1, IS_STRING, 0)
334 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
335 ZEND_END_ARG_INFO()
336 
337 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_escape_literal, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
338 	ZEND_ARG_INFO(0, connection)
339 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
340 ZEND_END_ARG_INFO()
341 
342 #define arginfo_pg_escape_identifier arginfo_pg_escape_literal
343 
344 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_result_error, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
345 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
346 ZEND_END_ARG_INFO()
347 
348 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_result_error_field, 0, 2, MAY_BE_STRING|MAY_BE_FALSE|MAY_BE_NULL)
349 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
350 	ZEND_ARG_TYPE_INFO(0, field_code, IS_LONG, 0)
351 ZEND_END_ARG_INFO()
352 
353 #define arginfo_pg_connection_status arginfo_pg_connect_poll
354 
355 #define arginfo_pg_transaction_status arginfo_pg_connect_poll
356 
357 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_connection_reset, 0, 1, _IS_BOOL, 0)
358 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
359 ZEND_END_ARG_INFO()
360 
361 #define arginfo_pg_cancel_query arginfo_pg_connection_reset
362 
363 #define arginfo_pg_connection_busy arginfo_pg_connection_reset
364 
365 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_send_query, 0, 2, MAY_BE_LONG|MAY_BE_BOOL)
366 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
367 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
368 ZEND_END_ARG_INFO()
369 
370 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_send_query_params, 0, 3, MAY_BE_LONG|MAY_BE_BOOL)
371 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
372 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
373 	ZEND_ARG_TYPE_INFO(0, params, IS_ARRAY, 0)
374 ZEND_END_ARG_INFO()
375 
376 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_send_prepare, 0, 3, MAY_BE_LONG|MAY_BE_BOOL)
377 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
378 	ZEND_ARG_TYPE_INFO(0, statement_name, IS_STRING, 0)
379 	ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
380 ZEND_END_ARG_INFO()
381 
382 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_send_execute, 0, 3, MAY_BE_LONG|MAY_BE_BOOL)
383 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
384 	ZEND_ARG_TYPE_INFO(0, statement_name, IS_STRING, 0)
385 	ZEND_ARG_TYPE_INFO(0, params, IS_ARRAY, 0)
386 ZEND_END_ARG_INFO()
387 
388 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_get_result, 0, 1, PgSql\\Result, MAY_BE_FALSE)
389 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
390 ZEND_END_ARG_INFO()
391 
392 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_result_status, 0, 1, MAY_BE_STRING|MAY_BE_LONG)
393 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
394 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_STATUS_LONG")
395 ZEND_END_ARG_INFO()
396 
397 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_get_notify, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
398 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
399 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_ASSOC")
400 ZEND_END_ARG_INFO()
401 
402 #define arginfo_pg_get_pid arginfo_pg_connect_poll
403 
404 ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_socket, 0, 0, 1)
405 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
406 ZEND_END_ARG_INFO()
407 
408 #define arginfo_pg_consume_input arginfo_pg_connection_reset
409 
410 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_flush, 0, 1, MAY_BE_LONG|MAY_BE_BOOL)
411 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
412 ZEND_END_ARG_INFO()
413 
414 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_meta_data, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
415 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
416 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
417 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extended, _IS_BOOL, 0, "false")
418 ZEND_END_ARG_INFO()
419 
420 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_convert, 0, 3, MAY_BE_ARRAY|MAY_BE_FALSE)
421 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
422 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
423 	ZEND_ARG_TYPE_INFO(0, values, IS_ARRAY, 0)
424 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
425 ZEND_END_ARG_INFO()
426 
427 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_insert, 0, 3, PgSql\\Result, MAY_BE_STRING|MAY_BE_BOOL)
428 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
429 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
430 	ZEND_ARG_TYPE_INFO(0, values, IS_ARRAY, 0)
431 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "PGSQL_DML_EXEC")
432 ZEND_END_ARG_INFO()
433 
434 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_update, 0, 4, MAY_BE_STRING|MAY_BE_BOOL)
435 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
436 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
437 	ZEND_ARG_TYPE_INFO(0, values, IS_ARRAY, 0)
438 	ZEND_ARG_TYPE_INFO(0, conditions, IS_ARRAY, 0)
439 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "PGSQL_DML_EXEC")
440 ZEND_END_ARG_INFO()
441 
442 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_delete, 0, 3, MAY_BE_STRING|MAY_BE_BOOL)
443 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
444 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
445 	ZEND_ARG_TYPE_INFO(0, conditions, IS_ARRAY, 0)
446 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "PGSQL_DML_EXEC")
447 ZEND_END_ARG_INFO()
448 
449 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pg_select, 0, 2, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_FALSE)
450 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
451 	ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
452 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, conditions, IS_ARRAY, 0, "[]")
453 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "PGSQL_DML_EXEC")
454 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "PGSQL_ASSOC")
455 ZEND_END_ARG_INFO()
456 
457 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_set_error_context_visibility, 0, 2, IS_LONG, 0)
458 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
459 	ZEND_ARG_TYPE_INFO(0, visibility, IS_LONG, 0)
460 ZEND_END_ARG_INFO()
461 
462 #if defined(HAVE_PG_RESULT_MEMORY_SIZE)
463 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_result_memory_size, 0, 1, IS_LONG, 0)
464 	ZEND_ARG_OBJ_INFO(0, result, PgSql\\Result, 0)
465 ZEND_END_ARG_INFO()
466 #endif
467 
468 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_change_password, 0, 3, _IS_BOOL, 0)
469 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
470 	ZEND_ARG_TYPE_INFO(0, user, IS_STRING, 0)
471 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
472 ZEND_END_ARG_INFO()
473 
474 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_put_copy_data, 0, 2, IS_LONG, 0)
475 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
476 	ZEND_ARG_TYPE_INFO(0, cmd, IS_STRING, 0)
477 ZEND_END_ARG_INFO()
478 
479 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_put_copy_end, 0, 1, IS_LONG, 0)
480 	ZEND_ARG_OBJ_INFO(0, connection, PgSql\\Connection, 0)
481 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, error, IS_STRING, 1, "null")
482 ZEND_END_ARG_INFO()
483 
484 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_socket_poll, 0, 3, IS_LONG, 0)
485 	ZEND_ARG_INFO(0, socket)
486 	ZEND_ARG_TYPE_INFO(0, read, IS_LONG, 0)
487 	ZEND_ARG_TYPE_INFO(0, write, IS_LONG, 0)
488 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, timeout, IS_LONG, 0, "-1")
489 ZEND_END_ARG_INFO()
490 
491 #if defined(HAVE_PG_SET_CHUNKED_ROWS_SIZE)
492 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pg_set_chunked_rows_size, 0, 2, _IS_BOOL, 0)
493 	ZEND_ARG_OBJ_INFO(0, connection, Pgsql\\Connection, 0)
494 	ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
495 ZEND_END_ARG_INFO()
496 #endif
497 
498 ZEND_FUNCTION(pg_connect);
499 ZEND_FUNCTION(pg_pconnect);
500 ZEND_FUNCTION(pg_connect_poll);
501 ZEND_FUNCTION(pg_close);
502 ZEND_FUNCTION(pg_dbname);
503 ZEND_FUNCTION(pg_last_error);
504 ZEND_FUNCTION(pg_options);
505 ZEND_FUNCTION(pg_port);
506 ZEND_FUNCTION(pg_tty);
507 ZEND_FUNCTION(pg_host);
508 ZEND_FUNCTION(pg_version);
509 ZEND_FUNCTION(pg_jit);
510 ZEND_FUNCTION(pg_parameter_status);
511 ZEND_FUNCTION(pg_ping);
512 ZEND_FUNCTION(pg_query);
513 ZEND_FUNCTION(pg_query_params);
514 ZEND_FUNCTION(pg_prepare);
515 ZEND_FUNCTION(pg_execute);
516 ZEND_FUNCTION(pg_num_rows);
517 ZEND_FUNCTION(pg_num_fields);
518 ZEND_FUNCTION(pg_affected_rows);
519 ZEND_FUNCTION(pg_last_notice);
520 ZEND_FUNCTION(pg_field_table);
521 ZEND_FUNCTION(pg_field_name);
522 ZEND_FUNCTION(pg_field_size);
523 ZEND_FUNCTION(pg_field_type);
524 ZEND_FUNCTION(pg_field_type_oid);
525 ZEND_FUNCTION(pg_field_num);
526 ZEND_FUNCTION(pg_fetch_result);
527 ZEND_FUNCTION(pg_fetch_row);
528 ZEND_FUNCTION(pg_fetch_assoc);
529 ZEND_FUNCTION(pg_fetch_array);
530 ZEND_FUNCTION(pg_fetch_object);
531 ZEND_FUNCTION(pg_fetch_all);
532 ZEND_FUNCTION(pg_fetch_all_columns);
533 ZEND_FUNCTION(pg_result_seek);
534 ZEND_FUNCTION(pg_field_prtlen);
535 ZEND_FUNCTION(pg_fieldprtlen);
536 ZEND_FUNCTION(pg_field_is_null);
537 ZEND_FUNCTION(pg_fieldisnull);
538 ZEND_FUNCTION(pg_free_result);
539 ZEND_FUNCTION(pg_last_oid);
540 ZEND_FUNCTION(pg_trace);
541 ZEND_FUNCTION(pg_untrace);
542 ZEND_FUNCTION(pg_lo_create);
543 ZEND_FUNCTION(pg_lo_unlink);
544 ZEND_FUNCTION(pg_lo_open);
545 ZEND_FUNCTION(pg_lo_close);
546 ZEND_FUNCTION(pg_lo_read);
547 ZEND_FUNCTION(pg_lo_write);
548 ZEND_FUNCTION(pg_lo_read_all);
549 ZEND_FUNCTION(pg_lo_import);
550 ZEND_FUNCTION(pg_lo_export);
551 ZEND_FUNCTION(pg_lo_seek);
552 ZEND_FUNCTION(pg_lo_tell);
553 ZEND_FUNCTION(pg_lo_truncate);
554 ZEND_FUNCTION(pg_set_error_verbosity);
555 ZEND_FUNCTION(pg_set_client_encoding);
556 ZEND_FUNCTION(pg_client_encoding);
557 ZEND_FUNCTION(pg_end_copy);
558 ZEND_FUNCTION(pg_put_line);
559 ZEND_FUNCTION(pg_copy_to);
560 ZEND_FUNCTION(pg_copy_from);
561 ZEND_FUNCTION(pg_escape_string);
562 ZEND_FUNCTION(pg_escape_bytea);
563 ZEND_FUNCTION(pg_unescape_bytea);
564 ZEND_FUNCTION(pg_escape_literal);
565 ZEND_FUNCTION(pg_escape_identifier);
566 ZEND_FUNCTION(pg_result_error);
567 ZEND_FUNCTION(pg_result_error_field);
568 ZEND_FUNCTION(pg_connection_status);
569 ZEND_FUNCTION(pg_transaction_status);
570 ZEND_FUNCTION(pg_connection_reset);
571 ZEND_FUNCTION(pg_cancel_query);
572 ZEND_FUNCTION(pg_connection_busy);
573 ZEND_FUNCTION(pg_send_query);
574 ZEND_FUNCTION(pg_send_query_params);
575 ZEND_FUNCTION(pg_send_prepare);
576 ZEND_FUNCTION(pg_send_execute);
577 ZEND_FUNCTION(pg_get_result);
578 ZEND_FUNCTION(pg_result_status);
579 ZEND_FUNCTION(pg_get_notify);
580 ZEND_FUNCTION(pg_get_pid);
581 ZEND_FUNCTION(pg_socket);
582 ZEND_FUNCTION(pg_consume_input);
583 ZEND_FUNCTION(pg_flush);
584 ZEND_FUNCTION(pg_meta_data);
585 ZEND_FUNCTION(pg_convert);
586 ZEND_FUNCTION(pg_insert);
587 ZEND_FUNCTION(pg_update);
588 ZEND_FUNCTION(pg_delete);
589 ZEND_FUNCTION(pg_select);
590 ZEND_FUNCTION(pg_set_error_context_visibility);
591 #if defined(HAVE_PG_RESULT_MEMORY_SIZE)
592 ZEND_FUNCTION(pg_result_memory_size);
593 #endif
594 ZEND_FUNCTION(pg_change_password);
595 ZEND_FUNCTION(pg_put_copy_data);
596 ZEND_FUNCTION(pg_put_copy_end);
597 ZEND_FUNCTION(pg_socket_poll);
598 #if defined(HAVE_PG_SET_CHUNKED_ROWS_SIZE)
599 ZEND_FUNCTION(pg_set_chunked_rows_size);
600 #endif
601 
602 static const zend_function_entry ext_functions[] = {
603 	ZEND_FE(pg_connect, arginfo_pg_connect)
604 	ZEND_FE(pg_pconnect, arginfo_pg_pconnect)
605 	ZEND_FE(pg_connect_poll, arginfo_pg_connect_poll)
606 	ZEND_FE(pg_close, arginfo_pg_close)
607 	ZEND_FE(pg_dbname, arginfo_pg_dbname)
608 	ZEND_FE(pg_last_error, arginfo_pg_last_error)
609 	ZEND_RAW_FENTRY("pg_errormessage", zif_pg_last_error, arginfo_pg_errormessage, ZEND_ACC_DEPRECATED, NULL, NULL)
610 	ZEND_FE(pg_options, arginfo_pg_options)
611 	ZEND_FE(pg_port, arginfo_pg_port)
612 	ZEND_FE(pg_tty, arginfo_pg_tty)
613 	ZEND_FE(pg_host, arginfo_pg_host)
614 	ZEND_FE(pg_version, arginfo_pg_version)
615 	ZEND_FE(pg_jit, arginfo_pg_jit)
616 	ZEND_FE(pg_parameter_status, arginfo_pg_parameter_status)
617 	ZEND_FE(pg_ping, arginfo_pg_ping)
618 	ZEND_FE(pg_query, arginfo_pg_query)
619 	ZEND_RAW_FENTRY("pg_exec", zif_pg_query, arginfo_pg_exec, 0, NULL, NULL)
620 	ZEND_FE(pg_query_params, arginfo_pg_query_params)
621 	ZEND_FE(pg_prepare, arginfo_pg_prepare)
622 	ZEND_FE(pg_execute, arginfo_pg_execute)
623 	ZEND_FE(pg_num_rows, arginfo_pg_num_rows)
624 	ZEND_RAW_FENTRY("pg_numrows", zif_pg_num_rows, arginfo_pg_numrows, ZEND_ACC_DEPRECATED, NULL, NULL)
625 	ZEND_FE(pg_num_fields, arginfo_pg_num_fields)
626 	ZEND_RAW_FENTRY("pg_numfields", zif_pg_num_fields, arginfo_pg_numfields, ZEND_ACC_DEPRECATED, NULL, NULL)
627 	ZEND_FE(pg_affected_rows, arginfo_pg_affected_rows)
628 	ZEND_RAW_FENTRY("pg_cmdtuples", zif_pg_affected_rows, arginfo_pg_cmdtuples, ZEND_ACC_DEPRECATED, NULL, NULL)
629 	ZEND_FE(pg_last_notice, arginfo_pg_last_notice)
630 	ZEND_FE(pg_field_table, arginfo_pg_field_table)
631 	ZEND_FE(pg_field_name, arginfo_pg_field_name)
632 	ZEND_RAW_FENTRY("pg_fieldname", zif_pg_field_name, arginfo_pg_fieldname, ZEND_ACC_DEPRECATED, NULL, NULL)
633 	ZEND_FE(pg_field_size, arginfo_pg_field_size)
634 	ZEND_RAW_FENTRY("pg_fieldsize", zif_pg_field_size, arginfo_pg_fieldsize, ZEND_ACC_DEPRECATED, NULL, NULL)
635 	ZEND_FE(pg_field_type, arginfo_pg_field_type)
636 	ZEND_RAW_FENTRY("pg_fieldtype", zif_pg_field_type, arginfo_pg_fieldtype, ZEND_ACC_DEPRECATED, NULL, NULL)
637 	ZEND_FE(pg_field_type_oid, arginfo_pg_field_type_oid)
638 	ZEND_FE(pg_field_num, arginfo_pg_field_num)
639 	ZEND_RAW_FENTRY("pg_fieldnum", zif_pg_field_num, arginfo_pg_fieldnum, ZEND_ACC_DEPRECATED, NULL, NULL)
640 	ZEND_FE(pg_fetch_result, arginfo_pg_fetch_result)
641 	ZEND_RAW_FENTRY("pg_result", zif_pg_fetch_result, arginfo_pg_result, ZEND_ACC_DEPRECATED, NULL, NULL)
642 	ZEND_FE(pg_fetch_row, arginfo_pg_fetch_row)
643 	ZEND_FE(pg_fetch_assoc, arginfo_pg_fetch_assoc)
644 	ZEND_FE(pg_fetch_array, arginfo_pg_fetch_array)
645 	ZEND_FE(pg_fetch_object, arginfo_pg_fetch_object)
646 	ZEND_FE(pg_fetch_all, arginfo_pg_fetch_all)
647 	ZEND_FE(pg_fetch_all_columns, arginfo_pg_fetch_all_columns)
648 	ZEND_FE(pg_result_seek, arginfo_pg_result_seek)
649 	ZEND_FE(pg_field_prtlen, arginfo_pg_field_prtlen)
650 	ZEND_RAW_FENTRY("pg_fieldprtlen", zif_pg_fieldprtlen, arginfo_pg_fieldprtlen, ZEND_ACC_DEPRECATED, NULL, NULL)
651 	ZEND_FE(pg_field_is_null, arginfo_pg_field_is_null)
652 	ZEND_RAW_FENTRY("pg_fieldisnull", zif_pg_fieldisnull, arginfo_pg_fieldisnull, ZEND_ACC_DEPRECATED, NULL, NULL)
653 	ZEND_FE(pg_free_result, arginfo_pg_free_result)
654 	ZEND_RAW_FENTRY("pg_freeresult", zif_pg_free_result, arginfo_pg_freeresult, ZEND_ACC_DEPRECATED, NULL, NULL)
655 	ZEND_FE(pg_last_oid, arginfo_pg_last_oid)
656 	ZEND_RAW_FENTRY("pg_getlastoid", zif_pg_last_oid, arginfo_pg_getlastoid, ZEND_ACC_DEPRECATED, NULL, NULL)
657 	ZEND_FE(pg_trace, arginfo_pg_trace)
658 	ZEND_FE(pg_untrace, arginfo_pg_untrace)
659 	ZEND_FE(pg_lo_create, arginfo_pg_lo_create)
660 	ZEND_RAW_FENTRY("pg_locreate", zif_pg_lo_create, arginfo_pg_locreate, ZEND_ACC_DEPRECATED, NULL, NULL)
661 	ZEND_FE(pg_lo_unlink, arginfo_pg_lo_unlink)
662 	ZEND_RAW_FENTRY("pg_lounlink", zif_pg_lo_unlink, arginfo_pg_lounlink, ZEND_ACC_DEPRECATED, NULL, NULL)
663 	ZEND_FE(pg_lo_open, arginfo_pg_lo_open)
664 	ZEND_RAW_FENTRY("pg_loopen", zif_pg_lo_open, arginfo_pg_loopen, ZEND_ACC_DEPRECATED, NULL, NULL)
665 	ZEND_FE(pg_lo_close, arginfo_pg_lo_close)
666 	ZEND_RAW_FENTRY("pg_loclose", zif_pg_lo_close, arginfo_pg_loclose, ZEND_ACC_DEPRECATED, NULL, NULL)
667 	ZEND_FE(pg_lo_read, arginfo_pg_lo_read)
668 	ZEND_RAW_FENTRY("pg_loread", zif_pg_lo_read, arginfo_pg_loread, ZEND_ACC_DEPRECATED, NULL, NULL)
669 	ZEND_FE(pg_lo_write, arginfo_pg_lo_write)
670 	ZEND_RAW_FENTRY("pg_lowrite", zif_pg_lo_write, arginfo_pg_lowrite, ZEND_ACC_DEPRECATED, NULL, NULL)
671 	ZEND_FE(pg_lo_read_all, arginfo_pg_lo_read_all)
672 	ZEND_RAW_FENTRY("pg_loreadall", zif_pg_lo_read_all, arginfo_pg_loreadall, ZEND_ACC_DEPRECATED, NULL, NULL)
673 	ZEND_FE(pg_lo_import, arginfo_pg_lo_import)
674 	ZEND_RAW_FENTRY("pg_loimport", zif_pg_lo_import, arginfo_pg_loimport, ZEND_ACC_DEPRECATED, NULL, NULL)
675 	ZEND_FE(pg_lo_export, arginfo_pg_lo_export)
676 	ZEND_RAW_FENTRY("pg_loexport", zif_pg_lo_export, arginfo_pg_loexport, ZEND_ACC_DEPRECATED, NULL, NULL)
677 	ZEND_FE(pg_lo_seek, arginfo_pg_lo_seek)
678 	ZEND_FE(pg_lo_tell, arginfo_pg_lo_tell)
679 	ZEND_FE(pg_lo_truncate, arginfo_pg_lo_truncate)
680 	ZEND_FE(pg_set_error_verbosity, arginfo_pg_set_error_verbosity)
681 	ZEND_FE(pg_set_client_encoding, arginfo_pg_set_client_encoding)
682 	ZEND_RAW_FENTRY("pg_setclientencoding", zif_pg_set_client_encoding, arginfo_pg_setclientencoding, ZEND_ACC_DEPRECATED, NULL, NULL)
683 	ZEND_FE(pg_client_encoding, arginfo_pg_client_encoding)
684 	ZEND_RAW_FENTRY("pg_clientencoding", zif_pg_client_encoding, arginfo_pg_clientencoding, ZEND_ACC_DEPRECATED, NULL, NULL)
685 	ZEND_FE(pg_end_copy, arginfo_pg_end_copy)
686 	ZEND_FE(pg_put_line, arginfo_pg_put_line)
687 	ZEND_FE(pg_copy_to, arginfo_pg_copy_to)
688 	ZEND_FE(pg_copy_from, arginfo_pg_copy_from)
689 	ZEND_FE(pg_escape_string, arginfo_pg_escape_string)
690 	ZEND_FE(pg_escape_bytea, arginfo_pg_escape_bytea)
691 	ZEND_FE(pg_unescape_bytea, arginfo_pg_unescape_bytea)
692 	ZEND_FE(pg_escape_literal, arginfo_pg_escape_literal)
693 	ZEND_FE(pg_escape_identifier, arginfo_pg_escape_identifier)
694 	ZEND_FE(pg_result_error, arginfo_pg_result_error)
695 	ZEND_FE(pg_result_error_field, arginfo_pg_result_error_field)
696 	ZEND_FE(pg_connection_status, arginfo_pg_connection_status)
697 	ZEND_FE(pg_transaction_status, arginfo_pg_transaction_status)
698 	ZEND_FE(pg_connection_reset, arginfo_pg_connection_reset)
699 	ZEND_FE(pg_cancel_query, arginfo_pg_cancel_query)
700 	ZEND_FE(pg_connection_busy, arginfo_pg_connection_busy)
701 	ZEND_FE(pg_send_query, arginfo_pg_send_query)
702 	ZEND_FE(pg_send_query_params, arginfo_pg_send_query_params)
703 	ZEND_FE(pg_send_prepare, arginfo_pg_send_prepare)
704 	ZEND_FE(pg_send_execute, arginfo_pg_send_execute)
705 	ZEND_FE(pg_get_result, arginfo_pg_get_result)
706 	ZEND_FE(pg_result_status, arginfo_pg_result_status)
707 	ZEND_FE(pg_get_notify, arginfo_pg_get_notify)
708 	ZEND_FE(pg_get_pid, arginfo_pg_get_pid)
709 	ZEND_FE(pg_socket, arginfo_pg_socket)
710 	ZEND_FE(pg_consume_input, arginfo_pg_consume_input)
711 	ZEND_FE(pg_flush, arginfo_pg_flush)
712 	ZEND_FE(pg_meta_data, arginfo_pg_meta_data)
713 	ZEND_FE(pg_convert, arginfo_pg_convert)
714 	ZEND_FE(pg_insert, arginfo_pg_insert)
715 	ZEND_FE(pg_update, arginfo_pg_update)
716 	ZEND_FE(pg_delete, arginfo_pg_delete)
717 	ZEND_FE(pg_select, arginfo_pg_select)
718 	ZEND_FE(pg_set_error_context_visibility, arginfo_pg_set_error_context_visibility)
719 #if defined(HAVE_PG_RESULT_MEMORY_SIZE)
720 	ZEND_FE(pg_result_memory_size, arginfo_pg_result_memory_size)
721 #endif
722 	ZEND_FE(pg_change_password, arginfo_pg_change_password)
723 	ZEND_FE(pg_put_copy_data, arginfo_pg_put_copy_data)
724 	ZEND_FE(pg_put_copy_end, arginfo_pg_put_copy_end)
725 	ZEND_FE(pg_socket_poll, arginfo_pg_socket_poll)
726 #if defined(HAVE_PG_SET_CHUNKED_ROWS_SIZE)
727 	ZEND_FE(pg_set_chunked_rows_size, arginfo_pg_set_chunked_rows_size)
728 #endif
729 	ZEND_FE_END
730 };
731 
732 static const zend_function_entry class_PgSql_Connection_methods[] = {
733 	ZEND_FE_END
734 };
735 
736 static const zend_function_entry class_PgSql_Result_methods[] = {
737 	ZEND_FE_END
738 };
739 
740 static const zend_function_entry class_PgSql_Lob_methods[] = {
741 	ZEND_FE_END
742 };
743 
register_pgsql_symbols(int module_number)744 static void register_pgsql_symbols(int module_number)
745 {
746 	REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION", pgsql_libpq_version, CONST_PERSISTENT);
747 	REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION_STR", pgsql_libpq_version, CONST_PERSISTENT | CONST_DEPRECATED);
748 	REGISTER_LONG_CONSTANT("PGSQL_CONNECT_FORCE_NEW", PGSQL_CONNECT_FORCE_NEW, CONST_PERSISTENT);
749 	REGISTER_LONG_CONSTANT("PGSQL_CONNECT_ASYNC", PGSQL_CONNECT_ASYNC, CONST_PERSISTENT);
750 	REGISTER_LONG_CONSTANT("PGSQL_ASSOC", PGSQL_ASSOC, CONST_PERSISTENT);
751 	REGISTER_LONG_CONSTANT("PGSQL_NUM", PGSQL_NUM, CONST_PERSISTENT);
752 	REGISTER_LONG_CONSTANT("PGSQL_BOTH", PGSQL_BOTH, CONST_PERSISTENT);
753 	REGISTER_LONG_CONSTANT("PGSQL_NOTICE_LAST", PGSQL_NOTICE_LAST, CONST_PERSISTENT);
754 	REGISTER_LONG_CONSTANT("PGSQL_NOTICE_ALL", PGSQL_NOTICE_ALL, CONST_PERSISTENT);
755 	REGISTER_LONG_CONSTANT("PGSQL_NOTICE_CLEAR", PGSQL_NOTICE_CLEAR, CONST_PERSISTENT);
756 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_BAD", CONNECTION_BAD, CONST_PERSISTENT);
757 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_OK", CONNECTION_OK, CONST_PERSISTENT);
758 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_STARTED", CONNECTION_STARTED, CONST_PERSISTENT);
759 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_MADE", CONNECTION_MADE, CONST_PERSISTENT);
760 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AWAITING_RESPONSE", CONNECTION_AWAITING_RESPONSE, CONST_PERSISTENT);
761 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AUTH_OK", CONNECTION_AUTH_OK, CONST_PERSISTENT);
762 #if defined(CONNECTION_SSL_STARTUP)
763 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SSL_STARTUP", CONNECTION_SSL_STARTUP, CONST_PERSISTENT);
764 #endif
765 	REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SETENV", CONNECTION_SETENV, CONST_PERSISTENT);
766 	REGISTER_LONG_CONSTANT("PGSQL_POLLING_FAILED", PGRES_POLLING_FAILED, CONST_PERSISTENT);
767 	REGISTER_LONG_CONSTANT("PGSQL_POLLING_READING", PGRES_POLLING_READING, CONST_PERSISTENT);
768 	REGISTER_LONG_CONSTANT("PGSQL_POLLING_WRITING", PGRES_POLLING_WRITING, CONST_PERSISTENT);
769 	REGISTER_LONG_CONSTANT("PGSQL_POLLING_OK", PGRES_POLLING_OK, CONST_PERSISTENT);
770 	REGISTER_LONG_CONSTANT("PGSQL_POLLING_ACTIVE", PGRES_POLLING_ACTIVE, CONST_PERSISTENT);
771 	REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_IDLE", PQTRANS_IDLE, CONST_PERSISTENT);
772 	REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_ACTIVE", PQTRANS_ACTIVE, CONST_PERSISTENT);
773 	REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INTRANS", PQTRANS_INTRANS, CONST_PERSISTENT);
774 	REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INERROR", PQTRANS_INERROR, CONST_PERSISTENT);
775 	REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_UNKNOWN", PQTRANS_UNKNOWN, CONST_PERSISTENT);
776 	REGISTER_LONG_CONSTANT("PGSQL_ERRORS_TERSE", PQERRORS_TERSE, CONST_PERSISTENT);
777 	REGISTER_LONG_CONSTANT("PGSQL_ERRORS_DEFAULT", PQERRORS_DEFAULT, CONST_PERSISTENT);
778 	REGISTER_LONG_CONSTANT("PGSQL_ERRORS_VERBOSE", PQERRORS_VERBOSE, CONST_PERSISTENT);
779 #if defined(HAVE_PQERRORS_SQLSTATE)
780 	REGISTER_LONG_CONSTANT("PGSQL_ERRORS_SQLSTATE", PQERRORS_SQLSTATE, CONST_PERSISTENT);
781 #endif
782 #if !(defined(HAVE_PQERRORS_SQLSTATE))
783 	REGISTER_LONG_CONSTANT("PGSQL_ERRORS_SQLSTATE", PQERRORS_TERSE, CONST_PERSISTENT);
784 #endif
785 	REGISTER_LONG_CONSTANT("PGSQL_SEEK_SET", SEEK_SET, CONST_PERSISTENT);
786 	REGISTER_LONG_CONSTANT("PGSQL_SEEK_CUR", SEEK_CUR, CONST_PERSISTENT);
787 	REGISTER_LONG_CONSTANT("PGSQL_SEEK_END", SEEK_END, CONST_PERSISTENT);
788 	REGISTER_LONG_CONSTANT("PGSQL_STATUS_LONG", PGSQL_STATUS_LONG, CONST_PERSISTENT);
789 	REGISTER_LONG_CONSTANT("PGSQL_STATUS_STRING", PGSQL_STATUS_STRING, CONST_PERSISTENT);
790 	REGISTER_LONG_CONSTANT("PGSQL_EMPTY_QUERY", PGRES_EMPTY_QUERY, CONST_PERSISTENT);
791 	REGISTER_LONG_CONSTANT("PGSQL_COMMAND_OK", PGRES_COMMAND_OK, CONST_PERSISTENT);
792 	REGISTER_LONG_CONSTANT("PGSQL_TUPLES_OK", PGRES_TUPLES_OK, CONST_PERSISTENT);
793 #if defined(HAVE_PG_SET_CHUNKED_ROWS_SIZE)
794 	REGISTER_LONG_CONSTANT("PGSQL_TUPLES_CHUNK", PGRES_TUPLES_CHUNK, CONST_PERSISTENT);
795 #endif
796 	REGISTER_LONG_CONSTANT("PGSQL_COPY_OUT", PGRES_COPY_OUT, CONST_PERSISTENT);
797 	REGISTER_LONG_CONSTANT("PGSQL_COPY_IN", PGRES_COPY_IN, CONST_PERSISTENT);
798 	REGISTER_LONG_CONSTANT("PGSQL_BAD_RESPONSE", PGRES_BAD_RESPONSE, CONST_PERSISTENT);
799 	REGISTER_LONG_CONSTANT("PGSQL_NONFATAL_ERROR", PGRES_NONFATAL_ERROR, CONST_PERSISTENT);
800 	REGISTER_LONG_CONSTANT("PGSQL_FATAL_ERROR", PGRES_FATAL_ERROR, CONST_PERSISTENT);
801 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY", PG_DIAG_SEVERITY, CONST_PERSISTENT);
802 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SQLSTATE", PG_DIAG_SQLSTATE, CONST_PERSISTENT);
803 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_PRIMARY", PG_DIAG_MESSAGE_PRIMARY, CONST_PERSISTENT);
804 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_DETAIL", PG_DIAG_MESSAGE_DETAIL, CONST_PERSISTENT);
805 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_HINT", PG_DIAG_MESSAGE_HINT, CONST_PERSISTENT);
806 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_STATEMENT_POSITION", PG_DIAG_STATEMENT_POSITION, CONST_PERSISTENT);
807 #if defined(PG_DIAG_INTERNAL_POSITION)
808 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_POSITION", PG_DIAG_INTERNAL_POSITION, CONST_PERSISTENT);
809 #endif
810 #if defined(PG_DIAG_INTERNAL_QUERY)
811 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_QUERY", PG_DIAG_INTERNAL_QUERY, CONST_PERSISTENT);
812 #endif
813 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONTEXT", PG_DIAG_CONTEXT, CONST_PERSISTENT);
814 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FILE", PG_DIAG_SOURCE_FILE, CONST_PERSISTENT);
815 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_LINE", PG_DIAG_SOURCE_LINE, CONST_PERSISTENT);
816 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FUNCTION", PG_DIAG_SOURCE_FUNCTION, CONST_PERSISTENT);
817 #if defined(PG_DIAG_SCHEMA_NAME)
818 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SCHEMA_NAME", PG_DIAG_SCHEMA_NAME, CONST_PERSISTENT);
819 #endif
820 #if defined(PG_DIAG_TABLE_NAME)
821 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_TABLE_NAME", PG_DIAG_TABLE_NAME, CONST_PERSISTENT);
822 #endif
823 #if defined(PG_DIAG_COLUMN_NAME)
824 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_COLUMN_NAME", PG_DIAG_COLUMN_NAME, CONST_PERSISTENT);
825 #endif
826 #if defined(PG_DIAG_DATATYPE_NAME)
827 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_DATATYPE_NAME", PG_DIAG_DATATYPE_NAME, CONST_PERSISTENT);
828 #endif
829 #if defined(PG_DIAG_CONSTRAINT_NAME)
830 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONSTRAINT_NAME", PG_DIAG_CONSTRAINT_NAME, CONST_PERSISTENT);
831 #endif
832 #if defined(PG_DIAG_SEVERITY_NONLOCALIZED)
833 	REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY_NONLOCALIZED", PG_DIAG_SEVERITY_NONLOCALIZED, CONST_PERSISTENT);
834 #endif
835 	REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_DEFAULT", PGSQL_CONV_IGNORE_DEFAULT, CONST_PERSISTENT);
836 	REGISTER_LONG_CONSTANT("PGSQL_CONV_FORCE_NULL", PGSQL_CONV_FORCE_NULL, CONST_PERSISTENT);
837 	REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_NOT_NULL", PGSQL_CONV_IGNORE_NOT_NULL, CONST_PERSISTENT);
838 	REGISTER_LONG_CONSTANT("PGSQL_DML_ESCAPE", PGSQL_DML_ESCAPE, CONST_PERSISTENT);
839 	REGISTER_LONG_CONSTANT("PGSQL_DML_NO_CONV", PGSQL_DML_NO_CONV, CONST_PERSISTENT);
840 	REGISTER_LONG_CONSTANT("PGSQL_DML_EXEC", PGSQL_DML_EXEC, CONST_PERSISTENT);
841 	REGISTER_LONG_CONSTANT("PGSQL_DML_ASYNC", PGSQL_DML_ASYNC, CONST_PERSISTENT);
842 	REGISTER_LONG_CONSTANT("PGSQL_DML_STRING", PGSQL_DML_STRING, CONST_PERSISTENT);
843 #if defined(PQTRACE_SUPPPRESS_TIMESTAMPS)
844 	REGISTER_LONG_CONSTANT("PGSQL_TRACE_SUPPRESS_TIMESTAMPS", PQTRACE_SUPPRESS_TIMESTAMPS, CONST_PERSISTENT);
845 #endif
846 #if defined(PQTRACE_REGRESS_MODE)
847 	REGISTER_LONG_CONSTANT("PGSQL_TRACE_REGRESS_MODE", PQTRACE_REGRESS_MODE, CONST_PERSISTENT);
848 #endif
849 	REGISTER_LONG_CONSTANT("PGSQL_SHOW_CONTEXT_NEVER", PQSHOW_CONTEXT_NEVER, CONST_PERSISTENT);
850 	REGISTER_LONG_CONSTANT("PGSQL_SHOW_CONTEXT_ERRORS", PQSHOW_CONTEXT_ERRORS, CONST_PERSISTENT);
851 	REGISTER_LONG_CONSTANT("PGSQL_SHOW_CONTEXT_ALWAYS", PQSHOW_CONTEXT_ALWAYS, CONST_PERSISTENT);
852 
853 
854 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "pg_change_password", sizeof("pg_change_password") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
855 }
856 
register_class_PgSql_Connection(void)857 static zend_class_entry *register_class_PgSql_Connection(void)
858 {
859 	zend_class_entry ce, *class_entry;
860 
861 	INIT_NS_CLASS_ENTRY(ce, "PgSql", "Connection", class_PgSql_Connection_methods);
862 	class_entry = zend_register_internal_class_ex(&ce, NULL);
863 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
864 
865 	return class_entry;
866 }
867 
register_class_PgSql_Result(void)868 static zend_class_entry *register_class_PgSql_Result(void)
869 {
870 	zend_class_entry ce, *class_entry;
871 
872 	INIT_NS_CLASS_ENTRY(ce, "PgSql", "Result", class_PgSql_Result_methods);
873 	class_entry = zend_register_internal_class_ex(&ce, NULL);
874 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
875 
876 	return class_entry;
877 }
878 
register_class_PgSql_Lob(void)879 static zend_class_entry *register_class_PgSql_Lob(void)
880 {
881 	zend_class_entry ce, *class_entry;
882 
883 	INIT_NS_CLASS_ENTRY(ce, "PgSql", "Lob", class_PgSql_Lob_methods);
884 	class_entry = zend_register_internal_class_ex(&ce, NULL);
885 	class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
886 
887 	return class_entry;
888 }
889