diff options
| author | Thies C. Arntzen <thies@php.net> | 2001-04-04 21:51:58 +0000 |
|---|---|---|
| committer | Thies C. Arntzen <thies@php.net> | 2001-04-04 21:51:58 +0000 |
| commit | daf8ff05d5be275641b95c8d5e1df36298b9e164 (patch) | |
| tree | 69b4b1c869cd55ff5e126276621b92c1068228d6 | |
| parent | ee759fdf89f452c38a1c61c7be9e9376b55e61dc (diff) | |
| download | php-git-daf8ff05d5be275641b95c8d5e1df36298b9e164.tar.gz | |
MFH - make postgresql compiel against 6.5.x
| -rw-r--r-- | ext/pgsql/pgsql.c | 29 | ||||
| -rw-r--r-- | ext/pgsql/php_pgsql.h | 1 |
2 files changed, 21 insertions, 9 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 928abc1233..4da1b8e012 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -148,23 +148,25 @@ static void _close_pgsql_plink(zend_rsrc_list_entry *rsrc) PGG(num_links)--; } -static void _be_quiet(void * arg, const char * message) + +static void +_notice_handler(void *arg, const char *message) { + PGLS_FETCH(); + + if (! PGG(ignore_notices)) { + php_log_err(message); + } } + static int _rollback_transactions(zend_rsrc_list_entry *rsrc) { PGconn *link = (PGconn *)rsrc->ptr; - PQnoticeProcessor old_notice_hook; - - /* we set the PQsetNoticeProcessor to avoid the stupid - * "NOTICE: BEGIN: already a transaction in progress" - * message - */ - old_notice_hook = PQsetNoticeProcessor(link, _be_quiet, NULL); + PGG(ignore_notices) = 1; PQexec(link,"BEGIN;ROLLBACK;"); - PQsetNoticeProcessor(link, old_notice_hook, NULL); + PGG(ignore_notices) = 0; return 0; } @@ -194,6 +196,7 @@ PHP_INI_END() static void php_pgsql_init_globals(PGLS_D) { PGG(num_persistent) = 0; + PGG(ignore_notices) = 0; } PHP_MINIT_FUNCTION(pgsql) @@ -262,6 +265,8 @@ PHP_MINFO_FUNCTION(pgsql) DISPLAY_INI_ENTRIES(); } + + void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) { char *host=NULL,*port=NULL,*options=NULL,*tty=NULL,*dbname=NULL,*connstring=NULL; @@ -377,6 +382,8 @@ void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) RETURN_FALSE; } + PQsetNoticeProcessor(pgsql, _notice_handler, NULL); + /* hash it up */ new_le.type = le_plink; new_le.ptr = pgsql; @@ -405,6 +412,8 @@ void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) } } pgsql = (PGconn *) le->ptr; + + PQsetNoticeProcessor(pgsql, _notice_handler, NULL); } ZEND_REGISTER_RESOURCE(return_value, pgsql, le_plink); } else { @@ -451,6 +460,8 @@ void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent) RETURN_FALSE; } + PQsetNoticeProcessor(pgsql, _notice_handler, NULL); + /* add it to the list */ ZEND_REGISTER_RESOURCE(return_value, pgsql, le_link); diff --git a/ext/pgsql/php_pgsql.h b/ext/pgsql/php_pgsql.h index 191276b384..fed9741fd6 100644 --- a/ext/pgsql/php_pgsql.h +++ b/ext/pgsql/php_pgsql.h @@ -119,6 +119,7 @@ typedef struct { long max_links,max_persistent; long allow_persistent; int le_lofp,le_string; + int ignore_notices; } php_pgsql_globals; |
