cvs: php4(PHP_4_2_0) /ext/pgsql pgsql.c

From: Date: Sat, 30 Mar 2002 23:23:58 +0000
Subject: cvs: php4(PHP_4_2_0) /ext/pgsql pgsql.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-10788@lists.php.net to get a copy of this message
yohgaki Sat Mar 30 18:23:58 2002 EDT Modified files: (Branch: PHP_4_2_0) /php4/ext/pgsql pgsql.c Log: MFH. 6.5.3 libpq build fix. Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.150.2.2 php4/ext/pgsql/pgsql.c:1.150.2.3 --- php4/ext/pgsql/pgsql.c:1.150.2.2 Tue Mar 26 19:14:30 2002 +++ php4/ext/pgsql/pgsql.c Sat Mar 30 18:23:58 2002 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.150.2.2 2002/03/27 00:14:30 yohgaki Exp $ */ +/* $Id: pgsql.c,v 1.150.2.3 2002/03/30 23:23:58 yohgaki Exp $ */ #include <stdlib.h> @@ -48,6 +48,12 @@ #define PGSQL_ESCAPE_STRING 1 #define PGSQL_ESCAPE_BYTEA 2 +#if HAVE_PQSETNONBLOCKING +#define PQ_SETNONBLOCKING(pg_link, flag) PQsetnonblocking(pg_link, flag) +#else +#define PQ_SETNONBLOCKING(pg_link, flag) 0 +#endif + #define CHECK_DEFAULT_LINK(x) if (x == -1) { php_error(E_WARNING, "%s() no PostgreSQL link opened yet", get_active_function_name(TSRMLS_C)); } /* {{{ pgsql_functions[] @@ -253,13 +259,18 @@ return 0; link = (PGconn *) rsrc->ptr; + + if (PQ_SETNONBLOCKING(link, 0)) { + php_error(E_NOTICE,"PostgreSQL cannot set connection to blocking mode"); + return -1; + } - PQsetnonblocking(link, 0); while ((res = PQgetResult(link))) { PQclear(res); } PGG(ignore_notices) = 1; - PQexec(link,"BEGIN;ROLLBACK;"); + res = PQexec(link,"BEGIN;ROLLBACK;"); + PQclear(res); PGG(ignore_notices) = 0; return 0; @@ -336,9 +347,6 @@ REGISTER_LONG_CONSTANT("PGSQL_SEEK_CUR", SEEK_CUR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_SEEK_END", SEEK_END, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("PGSQL_ESCAPE_STRING", PGSQL_ESCAPE_STRING, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("PGSQL_ESCAPE_BYTEA", PGSQL_ESCAPE_BYTEA, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("PGSQL_EMPTY_QUERY", PGRES_EMPTY_QUERY, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_COMMAND_OK", PGRES_COMMAND_OK, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_TUPLES_OK", PGRES_TUPLES_OK, CONST_CS | CONST_PERSISTENT); @@ -849,7 +857,11 @@ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); convert_to_string_ex(query); - PQsetnonblocking(pgsql, 0); + if (PQ_SETNONBLOCKING(pgsql, 0)) { + php_error(E_NOTICE,"%s() cannot set connection to blocking mode", + get_active_function_name(TSRMLS_C)); + RETURN_FALSE; + } while ((pgsql_result = PQgetResult(pgsql))) { PQclear(pgsql_result); leftover = 1; @@ -1422,7 +1434,7 @@ ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, result, -1, "PostgreSQL result", le_result); pgsql_result = pg_result->result; -#if HAVE_PQOIDVALUE +#ifdef HAVE_PQOIDVALUE Z_LVAL_P(return_value) = (int) PQoidValue(pgsql_result); if (Z_LVAL_P(return_value) == InvalidOid) { RETURN_FALSE; @@ -2054,8 +2066,7 @@ #define pg_encoding_to_char(x) "SQL_ASCII" #endif - Z_STRVAL_P(return_value) - = (char *) pg_encoding_to_char(PQclientEncoding(pgsql)); + Z_STRVAL_P(return_value) = (char *) pg_encoding_to_char(PQclientEncoding(pgsql)); Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value)); Z_STRVAL_P(return_value) = (char *) estrdup(Z_STRVAL_P(return_value)); Z_TYPE_P(return_value) = IS_STRING; @@ -2359,7 +2370,7 @@ } /* }}} */ -#if HAVE_PQESCAPE +#ifdef HAVE_PQESCAPE /* {{{ proto string pg_escape_string(string data) Escape string for text/char type */ PHP_FUNCTION(pg_escape_string) @@ -2406,6 +2417,7 @@ zval *result; PGresult *pgsql_result; pgsql_result_handle *pg_result; + char *err = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &result) == FAILURE) { @@ -2416,9 +2428,10 @@ pgsql_result = pg_result->result; if (!pgsql_result) { - RETURN_FALSE; + RETURN_FALSE; } - RETURN_STRING(PQresultErrorMessage(pgsql_result),1); + err = (char *)PQresultErrorMessage(pgsql_result); + RETURN_STRING(err,1); } /* }}} */ @@ -2485,7 +2498,7 @@ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link, le_plink); - if (PQsetnonblocking(pgsql, 1)) { + if (PQ_SETNONBLOCKING(pgsql, 1)) { php_error(E_NOTICE,"%s() cannot set connection to nonblocking mode", get_active_function_name(TSRMLS_C)); RETURN_FALSE; @@ -2508,7 +2521,7 @@ get_active_function_name(TSRMLS_C)); break; } - if (PQsetnonblocking(pgsql, 0)) { + if (PQ_SETNONBLOCKING(pgsql, 0)) { php_error(E_NOTICE,"%s() cannot set connection to blocking mode", get_active_function_name(TSRMLS_C)); } @@ -2551,7 +2564,7 @@ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link, le_plink); - if (PQsetnonblocking(pgsql, 1)) { + if (PQ_SETNONBLOCKING(pgsql, 1)) { php_error(E_NOTICE,"%s() cannot set connection to nonblocking mode", get_active_function_name(TSRMLS_C)); RETURN_FALSE; @@ -2567,7 +2580,7 @@ if (!PQsendQuery(pgsql, query)) { RETURN_FALSE; } - if (PQsetnonblocking(pgsql, 0)) { + if (PQ_SETNONBLOCKING(pgsql, 0)) { php_error(E_NOTICE,"%s() cannot set connection to blocking mode", get_active_function_name(TSRMLS_C)); }

« previous php.cvs (#10788) next »