cvs: php4 /ext/pgsql pgsql.c php_pgsql.h

From: Date: Tue, 13 Feb 2001 18:28:25 +0000
Subject: cvs: php4 /ext/pgsql pgsql.c php_pgsql.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-4009@lists.php.net to get a copy of this message
thies Tue Feb 13 10:28:25 2001 EDT Modified files: /php4/ext/pgsql pgsql.c php_pgsql.h Log: @- PostgreSQL now does a rollback at the end of a request on every @ persistent connection. This is done by doing an "empty" transaction @ on the connection (This was advised by someone from the PostgreSQL @ core-team). If you leave transactions open on your page you will see a @ "NOTICE: BEGIN: already a transaction in progress" message in your @ apache error_log. This message is created by the PostgreSQL libs - we can @ do nothing about it. (Thies) Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.86 php4/ext/pgsql/pgsql.c:1.87 --- php4/ext/pgsql/pgsql.c:1.86 Tue Feb 13 08:54:48 2001 +++ php4/ext/pgsql/pgsql.c Tue Feb 13 10:28:24 2001 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.86 2001/02/13 16:54:48 thies Exp $ */ +/* $Id: pgsql.c,v 1.87 2001/02/13 18:28:24 thies Exp $ */ #include <stdlib.h> @@ -93,7 +93,7 @@ PHP_MINIT(pgsql), PHP_MSHUTDOWN(pgsql), PHP_RINIT(pgsql), - NULL, + PHP_RSHUTDOWN(pgsql), PHP_MINFO(pgsql), STANDARD_MODULE_PROPERTIES }; @@ -145,7 +145,30 @@ PGG(num_links)--; } +static int _rollback_transactions(zend_rsrc_list_entry *rsrc) +{ + PGconn *link = (PGconn *)rsrc->ptr; + /* + PGresult *pg_result; + ExecStatusType status; + */ + + PQexec(link,"BEGIN;ROLLBACK;"); + + /* maybe do error handling later.... + pg_result = PQexec(link,"BEGIN;ROLLBACK;"); + + if (pg_result) { + status = PQresultStatus(pg_result); + } else { + status = (ExecStatusType) PQstatus(link); + } + */ + + return 0; +} + static void _free_ptr(zend_rsrc_list_entry *rsrc) { pgLofp *lofp = (pgLofp *)rsrc->ptr; @@ -213,7 +236,15 @@ return SUCCESS; } +PHP_RSHUTDOWN_FUNCTION(pgsql) +{ + zend_hash_apply(&EG(persistent_list),_rollback_transactions); + + return SUCCESS; +} + + PHP_MINFO_FUNCTION(pgsql) { char buf[32]; @@ -490,6 +521,8 @@ } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); + + printf("\npg_close %d\n",id); if (id==-1) { /* explicit resource number */ zend_list_delete(Z_RESVAL_PP(pgsql_link)); Index: php4/ext/pgsql/php_pgsql.h diff -u php4/ext/pgsql/php_pgsql.h:1.24 php4/ext/pgsql/php_pgsql.h:1.25 --- php4/ext/pgsql/php_pgsql.h:1.24 Thu Jan 18 14:17:05 2001 +++ php4/ext/pgsql/php_pgsql.h Tue Feb 13 10:28:24 2001 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pgsql.h,v 1.24 2001/01/18 22:17:05 derick Exp $ */ +/* $Id: php_pgsql.h,v 1.25 2001/02/13 18:28:24 thies Exp $ */ #ifndef PHP_PGSQL_H #define PHP_PGSQL_H @@ -48,6 +48,7 @@ PHP_MINIT_FUNCTION(pgsql); PHP_MSHUTDOWN_FUNCTION(pgsql); PHP_RINIT_FUNCTION(pgsql); +PHP_RSHUTDOWN_FUNCTION(pgsql); PHP_MINFO_FUNCTION(pgsql); PHP_FUNCTION(pg_connect); PHP_FUNCTION(pg_pconnect);

« previous php.cvs (#4009) next »