#define PQ_SETNONBLOCKING(pg_link, flag) 0
#endif
-#define CHECK_DEFAULT_LINK(x) if ((x) == -1) { php_error_docref(NULL, E_WARNING, "No PostgreSQL link opened yet"); }
-#define FETCH_DEFAULT_LINK() PGG(default_link) ? (int)PGG(default_link)->handle : -1
+#define CHECK_DEFAULT_LINK(x) if ((x) == NULL) { php_error_docref(NULL, E_WARNING, "No PostgreSQL link opened yet"); }
+#define FETCH_DEFAULT_LINK() PGG(default_link)
#ifndef HAVE_PQFREEMEM
#define PQfreemem free
PQclear(pg_result);
}
}
- ZEND_REGISTER_RESOURCE(return_value, pgsql, le_plink);
+ RETVAL_RES(zend_register_resource(pgsql, le_plink));
} else { /* Non persistent connection */
zend_resource *index_ptr, new_index_ptr;
}
/* add it to the list */
- ZEND_REGISTER_RESOURCE(return_value, pgsql, le_link);
+ RETVAL_RES(zend_register_resource(pgsql, le_link));
/* add it to the hash */
new_index_ptr.ptr = (void *) Z_RES_P(return_value);
}
/* set notice processor */
if (! PGG(ignore_notices) && Z_TYPE_P(return_value) == IS_RESOURCE) {
- PQsetNoticeProcessor(pgsql, _php_pgsql_notice_handler, (void*)Z_RES_HANDLE_P(return_value));
+ PQsetNoticeProcessor(pgsql, _php_pgsql_notice_handler, (void*)(zend_uintptr_t)Z_RES_HANDLE_P(return_value));
}
php_pgsql_set_default_link(Z_RES_P(return_value));
PHP_FUNCTION(pg_connect_poll)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
int ret;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &pgsql_link) == FAILURE) {
return;
}
-
- if (pgsql_link == NULL) {
+
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
ret = PQconnectPoll(pgsql);
RETURN_LONG(ret);
PHP_FUNCTION(pg_close)
{
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ zend_resource *link;
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
if (zend_parse_parameters(argc, "|r", &pgsql_link) == FAILURE) {
}
if (argc == 0) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
- if (id==-1) { /* explicit resource number */
- zend_list_close(Z_RES_P(pgsql_link));
+ if (argc == 0) { /* explicit resource number */
+ zend_list_close(link);
}
- if (id!=-1
- || (pgsql_link && Z_RES_P(pgsql_link) == PGG(default_link))) {
- zend_list_close(PGG(default_link));
+ if (argc || (pgsql_link && Z_RES_P(pgsql_link) == PGG(default_link))) {
+ zend_list_close(link);
PGG(default_link) = NULL;
}
*/
static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
{
+ zend_resource *link;
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
char *msgbuf;
char *result;
}
if (argc == 0) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
switch(entry_type) {
case PHP_PG_DBNAME:
result = PQdb(pgsql);
Returns the value of a server parameter */
PHP_FUNCTION(pg_parameter_status)
{
- zval *pgsql_link;
- int id;
+ zval *pgsql_link = NULL;
+ zend_resource *link;
PGconn *pgsql;
char *param;
size_t len;
- if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "rs", &pgsql_link, ¶m, &len) == SUCCESS) {
- id = -1;
- } else if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", ¶m, &len) == SUCCESS) {
- pgsql_link = NULL;
- id = FETCH_DEFAULT_LINK();
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "rs", &pgsql_link, ¶m, &len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", ¶m, &len) == SUCCESS) {
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ RETURN_FALSE;
+ }
} else {
- RETURN_FALSE;
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
param = (char*)PQparameterStatus(pgsql, param);
if (param) {
RETURN_STRING(param);
PHP_FUNCTION(pg_ping)
{
zval *pgsql_link;
- int id;
PGconn *pgsql;
PGresult *res;
+ zend_resource *link;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "r", &pgsql_link) == SUCCESS) {
- id = -1;
+ link = Z_RES_P(pgsql_link);
} else {
- pgsql_link = NULL;
- id = FETCH_DEFAULT_LINK();
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
- if (pgsql_link == NULL && id == -1) {
+
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
/* ping connection */
res = PQexec(pgsql, "SELECT 1;");
PQclear(res);
{
zval *pgsql_link = NULL;
char *query;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
size_t query_len;
int leftover = 0;
+ zend_resource *link;
PGconn *pgsql;
PGresult *pgsql_result;
ExecStatusType status;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &query, &query_len) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &pgsql_link, &query, &query_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (PQ_SETNONBLOCKING(pgsql, 0)) {
php_error_docref(NULL, E_NOTICE,"Cannot set connection to blocking mode");
RETURN_FALSE;
pg_result->conn = pgsql;
pg_result->result = pgsql_result;
pg_result->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pg_result, le_result);
+ RETURN_RES(zend_register_resource(pg_result, le_result));
} else {
PQclear(pgsql_result);
RETURN_FALSE;
zval *pv_param_arr, *tmp;
char *query;
size_t query_len;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
int leftover = 0;
int num_params = 0;
char **params = NULL;
+ zend_resource *link;
PGconn *pgsql;
PGresult *pgsql_result;
ExecStatusType status;
if (zend_parse_parameters(argc, "sa", &query, &query_len, &pv_param_arr) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rsa", &pgsql_link, &query, &query_len, &pv_param_arr) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (PQ_SETNONBLOCKING(pgsql, 0)) {
php_error_docref(NULL, E_NOTICE,"Cannot set connection to blocking mode");
RETURN_FALSE;
pg_result->conn = pgsql;
pg_result->result = pgsql_result;
pg_result->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pg_result, le_result);
+ RETURN_RES(zend_register_resource(pg_result, le_result));
} else {
PQclear(pgsql_result);
RETURN_FALSE;
zval *pgsql_link = NULL;
char *query, *stmtname;
size_t query_len, stmtname_len;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
int leftover = 0;
PGconn *pgsql;
+ zend_resource *link;
PGresult *pgsql_result;
ExecStatusType status;
pgsql_result_handle *pg_result;
if (zend_parse_parameters(argc, "ss", &stmtname, &stmtname_len, &query, &query_len) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rss", &pgsql_link, &stmtname, &stmtname_len, &query, &query_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (PQ_SETNONBLOCKING(pgsql, 0)) {
php_error_docref(NULL, E_NOTICE,"Cannot set connection to blocking mode");
RETURN_FALSE;
pg_result->conn = pgsql;
pg_result->result = pgsql_result;
pg_result->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pg_result, le_result);
+ RETURN_RES(zend_register_resource(pg_result, le_result));
} else {
PQclear(pgsql_result);
RETURN_FALSE;
zval *pv_param_arr, *tmp;
char *stmtname;
size_t stmtname_len;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
int leftover = 0;
int num_params = 0;
char **params = NULL;
PGconn *pgsql;
+ zend_resource *link;
PGresult *pgsql_result;
ExecStatusType status;
pgsql_result_handle *pg_result;
if (zend_parse_parameters(argc, "sa/", &stmtname, &stmtname_len, &pv_param_arr)==FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rsa/", &pgsql_link, &stmtname, &stmtname_len, &pv_param_arr) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (PQ_SETNONBLOCKING(pgsql, 0)) {
php_error_docref(NULL, E_NOTICE,"Cannot set connection to blocking mode");
RETURN_FALSE;
pg_result->conn = pgsql;
pg_result->result = pgsql_result;
pg_result->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pg_result, le_result);
+ RETURN_RES(zend_register_resource(pg_result, le_result));
} else {
PQclear(pgsql_result);
RETURN_FALSE;
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
{
zval *pgsql_link = NULL;
PGconn *pg_link;
- int id = -1;
php_pgsql_notice *notice;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &pgsql_link) == FAILURE) {
return;
}
- if (pgsql_link == NULL) {
+ /* Just to check if user passed valid resoruce */
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- /* Just to check if user passed valid resoruce */
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if ((notice = zend_hash_index_find_ptr(&PGG(notices), (zend_ulong)Z_RES_HANDLE_P(pgsql_link))) == NULL) {
RETURN_FALSE;
}
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
if (fnum < 0 || fnum >= PQnfields(pg_result->result)) {
php_error_docref(NULL, E_WARNING, "Bad field offset specified");
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
+
pgsql_result = pg_result->result;
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
}
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
if (argc == 2) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
array_init(return_value);
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
if (row < 0 || row >= PQntuples(pg_result->result)) {
RETURN_FALSE;
}
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
if (argc == 2) {
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
- if (Z_RES_P(result) == NULL) {
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
RETURN_FALSE;
}
+
zend_list_close(Z_RES_P(result));
RETURN_TRUE;
}
return;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
+
pgsql_result = pg_result->result;
#ifdef HAVE_PQOIDVALUE
oid = PQoidValue(pgsql_result);
char *z_filename, *mode = "w";
size_t z_filename_len, mode_len;
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
FILE *fp = NULL;
php_stream *stream;
- id = FETCH_DEFAULT_LINK();
+ zend_resource *link;
if (zend_parse_parameters(argc, "s|sr", &z_filename, &z_filename_len, &mode, &mode_len, &pgsql_link) == FAILURE) {
return;
}
if (argc < 3) {
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
stream = php_stream_open_wrapper(z_filename, mode, REPORT_ERRORS, NULL);
if (!stream) {
PHP_FUNCTION(pg_untrace)
{
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
+ zend_resource *link;
if (zend_parse_parameters(argc, "|r", &pgsql_link) == FAILURE) {
return;
}
if (argc == 0) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
PQuntrace(pgsql);
RETURN_TRUE;
}
zval *pgsql_link = NULL, *oid = NULL;
PGconn *pgsql;
Oid pgsql_oid, wanted_oid = InvalidOid;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
+ zend_resource *link;
if (zend_parse_parameters(argc, "|zz", &pgsql_link, &oid) == FAILURE) {
return;
}
if (pgsql_link == NULL) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
- if (id == -1) {
- RETURN_FALSE;
- }
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (oid) {
#ifndef HAVE_PG_LO_CREATE
size_t oid_strlen;
PGconn *pgsql;
Oid oid;
- int id = -1;
+ zend_resource *link;
int argc = ZEND_NUM_ARGS();
/* accept string type since Oid type is unsigned int */
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"rl", &pgsql_link, &oid_long) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"s", &oid_string, &oid_strlen) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"l", &oid_long) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else {
php_error_docref(NULL, E_WARNING, "Requires 1 or 2 arguments");
RETURN_FALSE;
}
- if (pgsql_link == NULL && id == -1) {
+
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (lo_unlink(pgsql, oid) == -1) {
php_error_docref(NULL, E_WARNING, "Unable to delete PostgreSQL large object %u", oid);
RETURN_FALSE;
size_t oid_strlen, mode_strlen;
PGconn *pgsql;
Oid oid;
- int id = -1, pgsql_mode=0, pgsql_lofd;
+ int pgsql_mode=0, pgsql_lofd;
int create = 0;
pgLofp *pgsql_lofp;
int argc = ZEND_NUM_ARGS();
+ zend_resource *link;
/* accept string type since Oid is unsigned int */
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"rls", &pgsql_link, &oid_long, &mode_string, &mode_strlen) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"ss", &oid_string, &oid_strlen, &mode_string, &mode_strlen) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"ls", &oid_long, &mode_string, &mode_strlen) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else {
php_error_docref(NULL, E_WARNING, "Requires 1 or 2 arguments");
RETURN_FALSE;
}
- if (pgsql_link == NULL && id == -1) {
+
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
/* r/w/+ is little bit more PHP-like than INV_READ/INV_WRITE and a lot of
faster to type. Unfortunately, doesn't behave the same way as fopen()...
(Jouni)
} else {
pgsql_lofp->conn = pgsql;
pgsql_lofp->lofd = pgsql_lofd;
- ZEND_REGISTER_RESOURCE(return_value, pgsql_lofp, le_lofp);
+ RETURN_RES(zend_register_resource(pgsql_lofp, le_lofp));
}
}
} else {
} else {
pgsql_lofp->conn = pgsql;
pgsql_lofp->lofd = pgsql_lofd;
- ZEND_REGISTER_RESOURCE(return_value, pgsql_lofp, le_lofp);
+ RETURN_RES(zend_register_resource(pgsql_lofp, le_lofp));
}
}
/* }}} */
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_lofp, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_lofp), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
if (lo_close((PGconn *)pgsql->conn, pgsql->lofd) < 0) {
php_error_docref(NULL, E_WARNING, "Unable to close PostgreSQL large object descriptor %d", pgsql->lofd);
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
if (argc > 1) {
buf_len = len < 0 ? 0 : len;
len = str_len;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
if ((nbytes = lo_write((PGconn *)pgsql->conn, pgsql->lofd, str, len)) == -1) {
RETURN_FALSE;
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
tbytes = 0;
while ((nbytes = lo_read((PGconn *)pgsql->conn, pgsql->lofd, buf, PGSQL_LO_READ_BUF_SIZE))>0) {
{
zval *pgsql_link = NULL, *oid = NULL;
char *file_in;
- int id = -1;
size_t name_len;
int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
Oid returned_oid;
+ zend_resource *link;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"rp|z", &pgsql_link, &file_in, &name_len, &oid) == SUCCESS) {
- ;
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"p|z", &file_in, &name_len, &oid) == SUCCESS) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
/* old calling convention, deprecated since PHP 4.2 */
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"pr", &file_in, &name_len, &pgsql_link ) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Old API is used");
+ link = Z_RES_P(pgsql_link);
}
else {
WRONG_PARAM_COUNT;
RETURN_FALSE;
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (oid) {
#ifndef HAVE_PG_LO_IMPORT_WITH_OID
php_error_docref(NULL, E_NOTICE, "OID value passing not supported");
zval *pgsql_link = NULL;
char *file_out, *oid_string, *end_ptr;
size_t oid_strlen;
- int id = -1;
size_t name_len;
zend_long oid_long;
Oid oid;
PGconn *pgsql;
int argc = ZEND_NUM_ARGS();
+ zend_resource *link;
/* allow string to handle large OID value correctly */
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
RETURN_FALSE;
}
oid = (Oid)oid_long;
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"rss", &pgsql_link, &oid_string, &oid_strlen, &file_out, &name_len) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"lp", &oid_long, &file_out, &name_len) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"sp", &oid_string, &oid_strlen, &file_out, &name_len) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"spr", &oid_string, &oid_strlen, &file_out, &name_len, &pgsql_link) == SUCCESS) {
php_error_docref(NULL, E_NOTICE, "Wrong OID value passed");
RETURN_FALSE;
}
+ link = Z_RES_P(pgsql_link);
}
else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc,
"lpr", &oid_long, &file_out, &name_len, &pgsql_link) == SUCCESS) {
RETURN_FALSE;
}
oid = (Oid)oid_long;
+ link = Z_RES_P(pgsql_link);
}
else {
php_error_docref(NULL, E_WARNING, "Requires 2 or 3 arguments");
RETURN_FALSE;
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (lo_export(pgsql, oid, file_out) == -1) {
RETURN_FALSE;
}
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
#if HAVE_PG_LO64
if (PQserverVersion((PGconn *)pgsql->conn) >= 90300) {
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
#if HAVE_PG_LO64
if (PQserverVersion((PGconn *)pgsql->conn) >= 90300) {
return;
}
- ZEND_FETCH_RESOURCE(pgsql, pgLofp *, pgsql_id, -1, "PostgreSQL large object", le_lofp);
+ if ((pgsql = (pgLofp *)zend_fetch_resource(Z_RES_P(pgsql_id), "PostgreSQL large object", le_lofp)) == NULL) {
+ RETURN_FALSE;
+ }
#if HAVE_PG_LO64
if (PQserverVersion((PGconn *)pgsql->conn) >= 90300) {
{
zval *pgsql_link = NULL;
zend_long verbosity;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
+ zend_resource *link;
if (argc == 1) {
if (zend_parse_parameters(argc, "l", &verbosity) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rl", &pgsql_link, &verbosity) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
if (verbosity & (PQERRORS_TERSE|PQERRORS_DEFAULT|PQERRORS_VERBOSE)) {
RETURN_LONG(PQsetErrorVerbosity(pgsql, verbosity));
} else {
char *encoding;
size_t encoding_len;
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
+ zend_resource *link;
if (argc == 1) {
if (zend_parse_parameters(argc, "s", &encoding, &encoding_len) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rs", &pgsql_link, &encoding, &encoding_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
RETURN_LONG(PQsetClientEncoding(pgsql, encoding));
}
/* }}} */
PHP_FUNCTION(pg_client_encoding)
{
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
+ zend_resource *link;
if (zend_parse_parameters(argc, "|r", &pgsql_link) == FAILURE) {
return;
}
if (argc == 0) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
/* Just do the same as found in PostgreSQL sources... */
RETURN_STRING((char *) pg_encoding_to_char(PQclientEncoding(pgsql)));
PHP_FUNCTION(pg_end_copy)
{
zval *pgsql_link = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
PGconn *pgsql;
int result = 0;
+ zend_resource *link;
if (zend_parse_parameters(argc, "|r", &pgsql_link) == FAILURE) {
return;
}
if (argc == 0) {
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
+ } else {
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
result = PQendcopy(pgsql);
if (result!=0) {
char *query;
zval *pgsql_link = NULL;
size_t query_len;
- int id = -1;
PGconn *pgsql;
+ zend_resource *link;
int result = 0, argc = ZEND_NUM_ARGS();
if (argc == 1) {
if (zend_parse_parameters(argc, "s", &query, &query_len) == FAILURE) {
return;
}
- id = FETCH_DEFAULT_LINK();
- CHECK_DEFAULT_LINK(id);
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
} else {
if (zend_parse_parameters(argc, "rs", &pgsql_link, &query, &query_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
}
- if (pgsql_link == NULL && id == -1) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
result = PQputline(pgsql, query);
if (result==EOF) {
PHP_PQ_ERROR("Query failed: %s", pgsql);
char *table_name, *pg_delim = NULL, *pg_null_as = NULL;
size_t table_name_len, pg_delim_len, pg_null_as_len, free_pg_null = 0;
char *query;
- int id = -1;
PGconn *pgsql;
PGresult *pgsql_result;
ExecStatusType status;
pg_delim = "\t";
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (!pg_null_as) {
pg_null_as = estrdup("\\\\N");
size_t table_name_len, pg_delim_len, pg_null_as_len;
int pg_null_as_free = 0;
char *query;
- int id = -1;
PGconn *pgsql;
PGresult *pgsql_result;
ExecStatusType status;
pg_null_as_free = 1;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
spprintf(&query, 0, "COPY %s FROM STDIN DELIMITERS E'%c' WITH NULL AS E'%s'", table_name, *pg_delim, pg_null_as);
while ((pgsql_result = PQgetResult(pgsql))) {
{
zend_string *from = NULL, *to = NULL;
zval *pgsql_link;
+ zend_resource *link;
#ifdef HAVE_PQESCAPE_CONN
PGconn *pgsql;
#endif
- int id = -1;
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &from) == FAILURE) {
return;
}
- pgsql_link = NULL;
- id = FETCH_DEFAULT_LINK();
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
break;
default:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &pgsql_link, &from) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
break;
}
to = zend_string_alloc(from->len * 2, 0);
#ifdef HAVE_PQESCAPE_CONN
- if (pgsql_link != NULL || id != -1) {
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if (link) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
to->len = PQescapeStringConn(pgsql, to->val, from->val, from->len, NULL);
} else
#endif
char *from = NULL, *to = NULL;
size_t to_len;
size_t from_len;
- int id = -1;
#ifdef HAVE_PQESCAPE_BYTEA_CONN
PGconn *pgsql;
#endif
zval *pgsql_link;
+ zend_resource *link;
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &from, &from_len) == FAILURE) {
return;
}
- pgsql_link = NULL;
- id = FETCH_DEFAULT_LINK();
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
break;
default:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &pgsql_link, &from, &from_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
break;
}
#ifdef HAVE_PQESCAPE_BYTEA_CONN
- if (pgsql_link != NULL || id != -1) {
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if (link) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
to = (char *)PQescapeByteaConn(pgsql, (unsigned char *)from, (size_t)from_len, &to_len);
} else
#endif
zval *pgsql_link = NULL;
PGconn *pgsql;
size_t from_len;
- int id = -1;
char *tmp;
+ zend_resource *link;
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &from, &from_len) == FAILURE) {
return;
}
- pgsql_link = NULL;
- id = FETCH_DEFAULT_LINK();
+ link = FETCH_DEFAULT_LINK();
+ CHECK_DEFAULT_LINK(link);
break;
default:
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &pgsql_link, &from, &from_len) == FAILURE) {
return;
}
+ link = Z_RES_P(pgsql_link);
break;
}
- if (pgsql_link == NULL && id == -1) {
- php_error_docref(NULL, E_WARNING,"Cannot get default pgsql link");
+ if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
if (pgsql == NULL) {
php_error_docref(NULL, E_WARNING,"Cannot get pgsql link");
RETURN_FALSE;
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
if (!pgsql_result) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
if (!pgsql_result) {
PHP_FUNCTION(pg_connection_status)
{
zval *pgsql_link = NULL;
- int id = -1;
PGconn *pgsql;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "r",
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
RETURN_LONG(PQstatus(pgsql));
}
PHP_FUNCTION(pg_transaction_status)
{
zval *pgsql_link = NULL;
- int id = -1;
PGconn *pgsql;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "r",
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
RETURN_LONG(PQtransactionStatus(pgsql));
}
PHP_FUNCTION(pg_connection_reset)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "r",
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
PQreset(pgsql);
if (PQstatus(pgsql) == CONNECTION_BAD) {
static void php_pgsql_do_async(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
PGresult *pgsql_result;
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (PQ_SETNONBLOCKING(pgsql, 1)) {
php_error_docref(NULL, E_NOTICE, "Cannot set connection to nonblocking mode");
zval *pgsql_link;
char *query;
size_t len;
- int id = -1;
PGconn *pgsql;
int is_non_blocking;
int ret;
return;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
is_non_blocking = PQisnonblocking(pgsql);
char **params = NULL;
char *query;
size_t query_len;
- int id = -1;
PGconn *pgsql;
int is_non_blocking;
int ret;
return;
}
- if (pgsql_link == NULL) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
is_non_blocking = PQisnonblocking(pgsql);
if (is_non_blocking == 0 && PQ_SETNONBLOCKING(pgsql, 1) == -1) {
zval *pgsql_link;
char *query, *stmtname;
size_t stmtname_len, query_len;
- int id = -1;
PGconn *pgsql;
int is_non_blocking;
int ret;
return;
}
- if (pgsql_link == NULL) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
is_non_blocking = PQisnonblocking(pgsql);
if (is_non_blocking == 0 && PQ_SETNONBLOCKING(pgsql, 1) == -1) {
char **params = NULL;
char *stmtname;
size_t stmtname_len;
- int id = -1;
PGconn *pgsql;
int is_non_blocking;
int ret;
return;
}
- if (pgsql_link == NULL) {
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
is_non_blocking = PQisnonblocking(pgsql);
if (is_non_blocking == 0 && PQ_SETNONBLOCKING(pgsql, 1) == -1) {
PHP_FUNCTION(pg_get_result)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
PGresult *pgsql_result;
pgsql_result_handle *pg_result;
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = PQgetResult(pgsql);
if (!pgsql_result) {
pg_result->conn = pgsql;
pg_result->result = pgsql_result;
pg_result->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pg_result, le_result);
+ RETURN_RES(zend_register_resource(pg_result, le_result));
}
/* }}} */
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result);
+ if ((pg_result = (pgsql_result_handle *)zend_fetch_resource(Z_RES_P(result), "PostgreSQL result", le_result)) == NULL) {
+ RETURN_FALSE;
+ }
pgsql_result = pg_result->result;
if (result_type == PGSQL_STATUS_LONG) {
PHP_FUNCTION(pg_get_notify)
{
zval *pgsql_link;
- int id = -1;
zend_long result_type = PGSQL_ASSOC;
PGconn *pgsql;
PGnotify *pgsql_notify;
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (!(result_type & PGSQL_BOTH)) {
php_error_docref(NULL, E_WARNING, "Invalid result type");
PHP_FUNCTION(pg_get_pid)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "r",
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
RETURN_LONG(PQbackendPID(pgsql));
}
zval *pgsql_link;
php_stream *stream;
PGconn *pgsql;
- int id = -1;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &pgsql_link) == FAILURE) {
return;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
stream = php_stream_alloc(&php_stream_pgsql_fd_ops, pgsql, NULL, "r");
PHP_FUNCTION(pg_consume_input)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &pgsql_link) == FAILURE) {
return;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
RETURN_BOOL(PQconsumeInput(pgsql));
}
PHP_FUNCTION(pg_flush)
{
zval *pgsql_link;
- int id = -1;
PGconn *pgsql;
int ret;
int is_non_blocking;
return;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
is_non_blocking = PQisnonblocking(pgsql);
size_t table_name_len;
zend_bool extended=0;
PGconn *pgsql;
- int id = -1;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|b",
&pgsql_link, &table_name, &table_name_len, &extended) == FAILURE) {
return;
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pgsql = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
array_init(return_value);
if (php_pgsql_meta_data(pgsql, table_name, return_value, extended) == FAILURE) {
size_t table_name_len;
zend_ulong option = 0;
PGconn *pg_link;
- int id = -1;
if (zend_parse_parameters(ZEND_NUM_ARGS(),
"rsa|l", &pgsql_link, &table_name, &table_name_len, &values, &option) == FAILURE) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (php_pgsql_flush_query(pg_link)) {
php_error_docref(NULL, E_NOTICE, "Detected unhandled result(s) in connection");
ExecStatusType status;
pgsql_result_handle *pgsql_handle;
zend_string *sql = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rsa|l",
&pgsql_link, &table, &table_len, &values, &option) == FAILURE) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (php_pgsql_flush_query(pg_link)) {
php_error_docref(NULL, E_NOTICE, "Detected unhandled result(s) in connection");
pgsql_handle->conn = pg_link;
pgsql_handle->result = pg_result;
pgsql_handle->row = 0;
- ZEND_REGISTER_RESOURCE(return_value, pgsql_handle, le_result);
- return;
+ RETURN_RES(zend_register_resource(pgsql_handle, le_result));
} else {
PQclear(pg_result);
RETURN_FALSE;
zend_ulong option = PGSQL_DML_EXEC;
PGconn *pg_link;
zend_string *sql = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rsaa|l",
&pgsql_link, &table, &table_len, &values, &ids, &option) == FAILURE) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (php_pgsql_flush_query(pg_link)) {
php_error_docref(NULL, E_NOTICE, "Detected unhandled result(s) in connection");
zend_ulong option = PGSQL_DML_EXEC;
PGconn *pg_link;
zend_string *sql;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rsa|l",
&pgsql_link, &table, &table_len, &ids, &option) == FAILURE) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (php_pgsql_flush_query(pg_link)) {
php_error_docref(NULL, E_NOTICE, "Detected unhandled result(s) in connection");
zend_ulong option = PGSQL_DML_EXEC;
PGconn *pg_link;
zend_string *sql = NULL;
- int id = -1, argc = ZEND_NUM_ARGS();
+ int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rsa|l",
&pgsql_link, &table, &table_len, &ids, &option) == FAILURE) {
RETURN_FALSE;
}
- ZEND_FETCH_RESOURCE2(pg_link, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ if ((pg_link = (PGconn *)zend_fetch_resource2(Z_RES_P(pgsql_link), "PostgreSQL link", le_link, le_plink)) == NULL) {
+ RETURN_FALSE;
+ }
if (php_pgsql_flush_query(pg_link)) {
php_error_docref(NULL, E_NOTICE, "Detected unhandled result(s) in connection");